Merge pull request #49983 from liyinan926/master

Automatic merge from submit-queue

Added field CollisionCount to StatefulSetStatus

**What this PR does / why we need it**:
This PR added a new field `CollisionCount` into `StatefulSetStatus`, similarly in terms of both name and semantics to the existing `CollisionCount` field in `DaemonSetStatus`.  The field will be used for collision avoidance when the `StatefulSet` controller creates name for the newest ControllerRevision, which will be done in another PR.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: #49909.

**Special notes for your reviewer**:
A second PR will include logic that actually uses the field for collision avoidance.

**Release note**:
```release-note
Added field CollisionCount to StatefulSetStatus in both apps/v1beta1 and apps/v1beta2
```
This commit is contained in:
Kubernetes Submit Queue 2017-08-10 19:35:15 -07:00 committed by GitHub
commit d72ffcd89f
25 changed files with 722 additions and 332 deletions

View File

@ -53477,6 +53477,11 @@
"replicas" "replicas"
], ],
"properties": { "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": "int64"
},
"currentReplicas": { "currentReplicas": {
"description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.",
"type": "integer", "type": "integer",
@ -54273,6 +54278,11 @@
"replicas" "replicas"
], ],
"properties": { "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": "int64"
},
"currentReplicas": { "currentReplicas": {
"description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.",
"type": "integer", "type": "integer",

View File

@ -6279,6 +6279,11 @@
"updateRevision": { "updateRevision": {
"type": "string", "type": "string",
"description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" "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": "int64",
"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."
} }
} }
}, },

View File

@ -7791,6 +7791,11 @@
"updateRevision": { "updateRevision": {
"type": "string", "type": "string",
"description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" "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": "int64",
"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."
} }
} }
}, },

View File

@ -5135,6 +5135,13 @@ Examples:<br>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td>
</tr> </tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody> </tbody>
</table> </table>

View File

@ -1581,6 +1581,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td>
</tr> </tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">collisionCount</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">integer (int64)</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody> </tbody>
</table> </table>

View File

@ -734,6 +734,9 @@ func appsFuncs(codecs runtimeserializer.CodecFactory) []interface{} {
if s.Status.ObservedGeneration == nil { if s.Status.ObservedGeneration == nil {
s.Status.ObservedGeneration = new(int64) s.Status.ObservedGeneration = new(int64)
} }
if s.Status.CollisionCount == nil {
s.Status.CollisionCount = new(int64)
}
}, },
} }
} }

View File

@ -187,6 +187,12 @@ type StatefulSetStatus struct {
// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence
// [replicas-updatedReplicas,replicas) // [replicas-updatedReplicas,replicas)
UpdateRevision string UpdateRevision string
// 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 *int64
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View File

@ -625,6 +625,7 @@ func autoConvert_v1beta1_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta1
out.UpdatedReplicas = in.UpdatedReplicas out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
return nil return nil
} }
@ -641,6 +642,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta1_StatefulSetStatus(in *apps.St
out.UpdatedReplicas = in.UpdatedReplicas out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
return nil return nil
} }

View File

@ -237,6 +237,10 @@ func Convert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *appsv1beta2
out.UpdatedReplicas = in.UpdatedReplicas out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision out.UpdateRevision = in.UpdateRevision
if in.CollisionCount != nil {
out.CollisionCount = new(int64)
*out.CollisionCount = *in.CollisionCount
}
return nil return nil
} }
@ -250,6 +254,10 @@ func Convert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.Statef
out.UpdatedReplicas = in.UpdatedReplicas out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision out.UpdateRevision = in.UpdateRevision
if in.CollisionCount != nil {
out.CollisionCount = new(int64)
*out.CollisionCount = *in.CollisionCount
}
return nil return nil
} }

View File

@ -862,6 +862,7 @@ func autoConvert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta2
out.UpdatedReplicas = in.UpdatedReplicas out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
return nil return nil
} }
@ -873,6 +874,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.St
out.UpdatedReplicas = in.UpdatedReplicas out.UpdatedReplicas = in.UpdatedReplicas
out.CurrentRevision = in.CurrentRevision out.CurrentRevision = in.CurrentRevision
out.UpdateRevision = in.UpdateRevision out.UpdateRevision = in.UpdateRevision
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
return nil return nil
} }

View File

@ -33,6 +33,7 @@ go_test(
"//pkg/apis/apps:go_default_library", "//pkg/apis/apps:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/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:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
], ],
) )

View File

@ -163,9 +163,39 @@ func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) fi
return allErrs return allErrs
} }
// ValidateStatefulSetStatus validates a StatefulSetStatus.
func ValidateStatefulSetStatus(status *apps.StatefulSetStatus, fieldPath *field.Path) field.ErrorList {
allErrs := field.ErrorList{}
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.Replicas), fieldPath.Child("replicas"))...)
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.ReadyReplicas), fieldPath.Child("readyReplicas"))...)
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentReplicas), fieldPath.Child("currentReplicas"))...)
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.UpdatedReplicas), fieldPath.Child("updatedReplicas"))...)
if status.ObservedGeneration != nil {
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.ObservedGeneration), fieldPath.Child("observedGeneration"))...)
}
if status.CollisionCount != nil {
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.CollisionCount), fieldPath.Child("collisionCount"))...)
}
msg := "cannot be greater than status.replicas"
if status.ReadyReplicas > status.Replicas {
allErrs = append(allErrs, field.Invalid(fieldPath.Child("readyReplicas"), status.ReadyReplicas, msg))
}
if status.CurrentReplicas > status.Replicas {
allErrs = append(allErrs, field.Invalid(fieldPath.Child("currentReplicas"), status.CurrentReplicas, msg))
}
if status.UpdatedReplicas > status.Replicas {
allErrs = append(allErrs, field.Invalid(fieldPath.Child("updatedReplicas"), status.UpdatedReplicas, msg))
}
return allErrs
}
// ValidateStatefulSetStatusUpdate tests if required fields in the StatefulSet are set. // ValidateStatefulSetStatusUpdate tests if required fields in the StatefulSet are set.
func ValidateStatefulSetStatusUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) field.ErrorList { func ValidateStatefulSetStatusUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) field.ErrorList {
allErrs := field.ErrorList{} allErrs := field.ErrorList{}
allErrs = append(allErrs, ValidateStatefulSetStatus(&statefulSet.Status, field.NewPath("status"))...)
allErrs = append(allErrs, apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata"))...) allErrs = append(allErrs, apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata"))...)
// TODO: Validate status. // TODO: Validate status.
return allErrs return allErrs

View File

@ -22,6 +22,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/apps"
) )
@ -300,6 +301,119 @@ func TestValidateStatefulSet(t *testing.T) {
} }
} }
func TestValidateStatefulSetStatus(t *testing.T) {
minusOne := int64(-1)
tests := []struct {
name string
replicas int32
readyReplicas int32
currentReplicas int32
updatedReplicas int32
observedGeneration *int64
collisionCount *int64
expectedErr bool
}{
{
name: "valid status",
replicas: 3,
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 1,
expectedErr: false,
},
{
name: "invalid replicas",
replicas: -1,
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 1,
expectedErr: true,
},
{
name: "invalid readyReplicas",
replicas: 3,
readyReplicas: -1,
currentReplicas: 2,
updatedReplicas: 1,
expectedErr: true,
},
{
name: "invalid currentReplicas",
replicas: 3,
readyReplicas: 3,
currentReplicas: -1,
updatedReplicas: 1,
expectedErr: true,
},
{
name: "invalid updatedReplicas",
replicas: 3,
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: -1,
expectedErr: true,
},
{
name: "invalid observedGeneration",
replicas: 3,
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 1,
observedGeneration: &minusOne,
expectedErr: true,
},
{
name: "invalid collisionCount",
replicas: 3,
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 1,
collisionCount: &minusOne,
expectedErr: true,
},
{
name: "readyReplicas greater than replicas",
replicas: 3,
readyReplicas: 4,
currentReplicas: 2,
updatedReplicas: 1,
expectedErr: true,
},
{
name: "currentReplicas greater than replicas",
replicas: 3,
readyReplicas: 3,
currentReplicas: 4,
updatedReplicas: 1,
expectedErr: true,
},
{
name: "updatedReplicas greater than replicas",
replicas: 3,
readyReplicas: 3,
currentReplicas: 2,
updatedReplicas: 4,
expectedErr: true,
},
}
for _, test := range tests {
status := apps.StatefulSetStatus{
Replicas: test.replicas,
ReadyReplicas: test.readyReplicas,
CurrentReplicas: test.currentReplicas,
UpdatedReplicas: test.updatedReplicas,
ObservedGeneration: test.observedGeneration,
CollisionCount: test.collisionCount,
}
errs := ValidateStatefulSetStatus(&status, field.NewPath("status"))
if hasErr := len(errs) > 0; hasErr != test.expectedErr {
t.Errorf("%s: expected error: %t, got error: %t\nerrors: %s", test.name, test.expectedErr, hasErr, errs.ToAggregate().Error())
}
}
}
func TestValidateStatefulSetUpdate(t *testing.T) { func TestValidateStatefulSetUpdate(t *testing.T) {
validLabels := map[string]string{"a": "b"} validLabels := map[string]string{"a": "b"}
validPodTemplate := api.PodTemplate{ validPodTemplate := api.PodTemplate{

View File

@ -273,6 +273,15 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {
**out = **in **out = **in
} }
} }
if in.CollisionCount != nil {
in, out := &in.CollisionCount, &out.CollisionCount
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
return return
} }

View File

@ -992,6 +992,11 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {
i++ i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))
i += copy(dAtA[i:], m.UpdateRevision) i += copy(dAtA[i:], m.UpdateRevision)
if m.CollisionCount != nil {
dAtA[i] = 0x48
i++
i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))
}
return i, nil return i, nil
} }
@ -1339,6 +1344,9 @@ func (m *StatefulSetStatus) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l)) n += 1 + l + sovGenerated(uint64(l))
l = len(m.UpdateRevision) l = len(m.UpdateRevision)
n += 1 + l + sovGenerated(uint64(l)) n += 1 + l + sovGenerated(uint64(l))
if m.CollisionCount != nil {
n += 1 + sovGenerated(uint64(*m.CollisionCount))
}
return n return n
} }
@ -1623,6 +1631,7 @@ func (this *StatefulSetStatus) String() string {
`UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`,
`CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`,
`UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`,
`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,
`}`, `}`,
}, "") }, "")
return s return s
@ -4574,6 +4583,26 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {
} }
m.UpdateRevision = string(dAtA[iNdEx:postIndex]) m.UpdateRevision = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex iNdEx = postIndex
case 9:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType)
}
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.CollisionCount = &v
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:]) skippy, err := skipGenerated(dAtA[iNdEx:])
@ -4817,119 +4846,119 @@ func init() {
} }
var fileDescriptorGenerated = []byte{ var fileDescriptorGenerated = []byte{
// 1816 bytes of a gzipped FileDescriptorProto // 1820 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6f, 0x1c, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6f, 0x1c, 0x49,
0x15, 0x77, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xc7, 0x71, 0xd9, 0xd8, 0xb3, 0x5e, 0x18, 0x5b, 0xcd, 0x15, 0x77, 0xcf, 0x87, 0x3d, 0x53, 0x5e, 0x8f, 0xe3, 0xb2, 0xb1, 0x67, 0xbd, 0x30, 0xb6, 0x86,
0x6a, 0xd7, 0xd9, 0x5d, 0xf7, 0x6c, 0xbc, 0xcb, 0x6a, 0x37, 0x91, 0x56, 0x78, 0xc6, 0x61, 0xd7, 0xd5, 0xae, 0xb3, 0xbb, 0xee, 0xd9, 0x78, 0x97, 0xd5, 0x26, 0x91, 0x22, 0x3c, 0xe3, 0x90, 0x38,
0x91, 0x8d, 0x9d, 0x1a, 0x3b, 0x88, 0x00, 0x52, 0x6a, 0x7a, 0x2a, 0xe3, 0x8e, 0xfb, 0x4b, 0xdd, 0xb2, 0xb1, 0x53, 0x63, 0x07, 0x11, 0x40, 0x4a, 0x4d, 0x4f, 0x65, 0xdc, 0x71, 0x7f, 0xa9, 0xbb,
0xd5, 0x43, 0x46, 0x5c, 0xf8, 0x03, 0x90, 0xc2, 0x99, 0xbf, 0x82, 0x23, 0x82, 0x1b, 0x27, 0x5f, 0x7a, 0xc8, 0x88, 0x0b, 0x77, 0x90, 0xc2, 0x99, 0xbf, 0x82, 0x23, 0x82, 0x1b, 0x27, 0x5f, 0x90,
0x10, 0x11, 0x17, 0x72, 0xb2, 0xc8, 0xe4, 0xca, 0x95, 0x4b, 0x24, 0x24, 0x54, 0xd5, 0xd5, 0xdf, 0x22, 0x2e, 0xe4, 0x64, 0x91, 0xc9, 0x95, 0x2b, 0x97, 0x48, 0x48, 0xa8, 0xaa, 0xab, 0xbf, 0xbb,
0xdd, 0xf6, 0x18, 0x09, 0x1f, 0xb8, 0x4d, 0xd7, 0x7b, 0xef, 0xf7, 0x5e, 0x55, 0xbd, 0x7a, 0xef, 0xed, 0x31, 0x12, 0x3e, 0x70, 0x9b, 0xae, 0xf7, 0xde, 0xef, 0xbd, 0xaa, 0x7a, 0xf5, 0xde, 0xef,
0xf7, 0x06, 0xfc, 0xf0, 0xec, 0x4b, 0x57, 0xd1, 0xac, 0xd6, 0x99, 0xd7, 0x23, 0x8e, 0x49, 0x28, 0x0d, 0xf8, 0xe1, 0xe9, 0xb7, 0x8e, 0xac, 0x9a, 0xad, 0x53, 0xb7, 0x47, 0x6c, 0x83, 0x50, 0xe2,
0x71, 0x5b, 0x43, 0x62, 0xf6, 0x2d, 0xa7, 0x25, 0x04, 0xd8, 0xd6, 0x5a, 0xd8, 0xb6, 0xdd, 0xd6, 0xb4, 0x86, 0xc4, 0xe8, 0x9b, 0x76, 0x4b, 0x08, 0xb0, 0xa5, 0xb6, 0xb0, 0x65, 0x39, 0xad, 0xe1,
0xf0, 0x4e, 0x8f, 0x50, 0x7c, 0xa7, 0x35, 0x20, 0x26, 0x71, 0x30, 0x25, 0x7d, 0xc5, 0x76, 0x2c, 0xad, 0x1e, 0xa1, 0xf8, 0x56, 0x6b, 0x40, 0x0c, 0x62, 0x63, 0x4a, 0xfa, 0xb2, 0x65, 0x9b, 0xd4,
0x6a, 0xc1, 0x55, 0x5f, 0x51, 0xc1, 0xb6, 0xa6, 0x30, 0x45, 0x45, 0x28, 0xae, 0x6d, 0x0d, 0x34, 0x84, 0x2b, 0x9e, 0xa2, 0x8c, 0x2d, 0x55, 0x66, 0x8a, 0xb2, 0x50, 0x5c, 0xdd, 0x1c, 0xa8, 0xf4,
0x7a, 0xea, 0xf5, 0x14, 0xd5, 0x32, 0x5a, 0x03, 0x6b, 0x60, 0xb5, 0xb8, 0x7e, 0xcf, 0x7b, 0xca, 0xc4, 0xed, 0xc9, 0x8a, 0xa9, 0xb7, 0x06, 0xe6, 0xc0, 0x6c, 0x71, 0xfd, 0x9e, 0xfb, 0x9c, 0x7f,
0xbf, 0xf8, 0x07, 0xff, 0xe5, 0xe3, 0xac, 0xc9, 0x31, 0x87, 0xaa, 0xe5, 0x90, 0xd6, 0x30, 0xe3, 0xf1, 0x0f, 0xfe, 0xcb, 0xc3, 0x59, 0x6d, 0x46, 0x1c, 0x2a, 0xa6, 0x4d, 0x5a, 0xc3, 0x94, 0xaf,
0x6b, 0xed, 0x76, 0x4c, 0xc7, 0xb6, 0x74, 0x4d, 0x1d, 0x15, 0x85, 0xb5, 0xf6, 0x79, 0xa4, 0x6a, 0xd5, 0x9b, 0x11, 0x1d, 0xcb, 0xd4, 0x54, 0x65, 0x94, 0x17, 0xd6, 0xea, 0xd7, 0xa1, 0xaa, 0x8e,
0x60, 0xf5, 0x54, 0x33, 0x89, 0x33, 0x6a, 0xd9, 0x67, 0x03, 0xb6, 0xe0, 0xb6, 0x0c, 0x42, 0x71, 0x95, 0x13, 0xd5, 0x20, 0xf6, 0xa8, 0x65, 0x9d, 0x0e, 0xd8, 0x82, 0xd3, 0xd2, 0x09, 0xc5, 0x59,
0x9e, 0x83, 0x56, 0x91, 0x95, 0xe3, 0x99, 0x54, 0x33, 0x48, 0xc6, 0xe0, 0x8b, 0xab, 0x0c, 0x5c, 0x0e, 0x5a, 0x79, 0x56, 0xb6, 0x6b, 0x50, 0x55, 0x27, 0x29, 0x83, 0x6f, 0x2e, 0x33, 0x70, 0x94,
0xf5, 0x94, 0x18, 0x38, 0x63, 0xf7, 0x59, 0x91, 0x9d, 0x47, 0x35, 0xbd, 0xa5, 0x99, 0xd4, 0xa5, 0x13, 0xa2, 0xe3, 0x94, 0xdd, 0x57, 0x79, 0x76, 0x2e, 0x55, 0xb5, 0x96, 0x6a, 0x50, 0x87, 0xda,
0x4e, 0xda, 0x48, 0xfe, 0x97, 0x04, 0x60, 0xc7, 0x32, 0xa9, 0x63, 0xe9, 0x3a, 0x71, 0x10, 0x19, 0x49, 0xa3, 0xe6, 0xbf, 0x24, 0x00, 0x3b, 0xa6, 0x41, 0x6d, 0x53, 0xd3, 0x88, 0x8d, 0xc8, 0x50,
0x6a, 0xae, 0x66, 0x99, 0xf0, 0x09, 0xa8, 0xb1, 0xfd, 0xf4, 0x31, 0xc5, 0x0d, 0x69, 0x43, 0xda, 0x75, 0x54, 0xd3, 0x80, 0xcf, 0x40, 0x85, 0xed, 0xa7, 0x8f, 0x29, 0xae, 0x4b, 0xeb, 0xd2, 0xc6,
0x9c, 0xdb, 0xfe, 0x54, 0x89, 0x2e, 0x25, 0x84, 0x57, 0xec, 0xb3, 0x01, 0x5b, 0x70, 0x15, 0xa6, 0xec, 0xd6, 0x97, 0x72, 0x78, 0x29, 0x01, 0xbc, 0x6c, 0x9d, 0x0e, 0xd8, 0x82, 0x23, 0x33, 0x6d,
0xad, 0x0c, 0xef, 0x28, 0x87, 0xbd, 0x67, 0x44, 0xa5, 0x07, 0x84, 0xe2, 0x36, 0x3c, 0xbf, 0x58, 0x79, 0x78, 0x4b, 0x3e, 0xe8, 0xbd, 0x20, 0x0a, 0xdd, 0x27, 0x14, 0xb7, 0xe1, 0xd9, 0xf9, 0xda,
0x9f, 0x1a, 0x5f, 0xac, 0x83, 0x68, 0x0d, 0x85, 0xa8, 0xf0, 0x10, 0x54, 0x38, 0x7a, 0x89, 0xa3, 0xd4, 0xf8, 0x7c, 0x0d, 0x84, 0x6b, 0x28, 0x40, 0x85, 0x07, 0xa0, 0xc4, 0xd1, 0x0b, 0x1c, 0x7d,
0x6f, 0x15, 0xa2, 0x8b, 0x4d, 0x2b, 0x08, 0xff, 0xf2, 0xfe, 0x73, 0x4a, 0x4c, 0x16, 0x5e, 0xfb, 0x33, 0x17, 0x5d, 0x6c, 0x5a, 0x46, 0xf8, 0x97, 0xf7, 0x5f, 0x52, 0x62, 0xb0, 0xf0, 0xda, 0x1f,
0x1d, 0x01, 0x5d, 0xd9, 0xc5, 0x14, 0x23, 0x0e, 0x04, 0x3f, 0x01, 0x35, 0x47, 0x84, 0xdf, 0x28, 0x08, 0xe8, 0xd2, 0x0e, 0xa6, 0x18, 0x71, 0x20, 0xf8, 0x05, 0xa8, 0xd8, 0x22, 0xfc, 0x7a, 0x71,
0x6f, 0x48, 0x9b, 0xe5, 0xf6, 0x2d, 0xa1, 0x55, 0x0b, 0xb6, 0x85, 0x42, 0x0d, 0xf9, 0x5c, 0x02, 0x5d, 0xda, 0x28, 0xb6, 0x6f, 0x08, 0xad, 0x8a, 0xbf, 0x2d, 0x14, 0x68, 0x34, 0xcf, 0x24, 0xb0,
0x2b, 0xd9, 0x7d, 0xef, 0x6b, 0x2e, 0x85, 0x3f, 0xcf, 0xec, 0x5d, 0x99, 0x6c, 0xef, 0xcc, 0x9a, 0x9c, 0xde, 0xf7, 0x9e, 0xea, 0x50, 0xf8, 0xf3, 0xd4, 0xde, 0xe5, 0xc9, 0xf6, 0xce, 0xac, 0xf9,
0xef, 0x3c, 0x74, 0x1c, 0xac, 0xc4, 0xf6, 0x7d, 0x04, 0xaa, 0x1a, 0x25, 0x86, 0xdb, 0x28, 0x6d, 0xce, 0x03, 0xc7, 0xfe, 0x4a, 0x64, 0xdf, 0x87, 0xa0, 0xac, 0x52, 0xa2, 0x3b, 0xf5, 0xc2, 0x7a,
0x94, 0x37, 0xe7, 0xb6, 0x3f, 0x56, 0x0a, 0x72, 0x5d, 0xc9, 0x46, 0xd7, 0x9e, 0x17, 0xb8, 0xd5, 0x71, 0x63, 0x76, 0xeb, 0x73, 0x39, 0x27, 0xd7, 0xe5, 0x74, 0x74, 0xed, 0x39, 0x81, 0x5b, 0xde,
0x3d, 0x86, 0x80, 0x7c, 0x20, 0xf9, 0x37, 0x25, 0x00, 0x76, 0x89, 0xad, 0x5b, 0x23, 0x83, 0x98, 0x65, 0x08, 0xc8, 0x03, 0x6a, 0xfe, 0xb6, 0x00, 0xc0, 0x0e, 0xb1, 0x34, 0x73, 0xa4, 0x13, 0x83,
0xf4, 0x06, 0xae, 0x6e, 0x0f, 0x54, 0x5c, 0x9b, 0xa8, 0xe2, 0xea, 0x3e, 0x2c, 0xdc, 0x41, 0x14, 0x5e, 0xc3, 0xd5, 0xed, 0x82, 0x92, 0x63, 0x11, 0x45, 0x5c, 0xdd, 0xa7, 0xb9, 0x3b, 0x08, 0x83,
0x54, 0xd7, 0x26, 0x6a, 0x74, 0x69, 0xec, 0x0b, 0x71, 0x08, 0xf8, 0x10, 0x4c, 0xbb, 0x14, 0x53, 0xea, 0x5a, 0x44, 0x09, 0x2f, 0x8d, 0x7d, 0x21, 0x0e, 0x01, 0x1f, 0x83, 0x69, 0x87, 0x62, 0xea,
0xcf, 0xe5, 0x57, 0x36, 0xb7, 0x7d, 0x7b, 0x12, 0x30, 0x6e, 0xd0, 0xae, 0x0b, 0xb8, 0x69, 0xff, 0x3a, 0xfc, 0xca, 0x66, 0xb7, 0x6e, 0x4e, 0x02, 0xc6, 0x0d, 0xda, 0x35, 0x01, 0x37, 0xed, 0x7d,
0x1b, 0x09, 0x20, 0xf9, 0xef, 0x65, 0xb0, 0x14, 0x29, 0x77, 0x2c, 0xb3, 0xaf, 0x51, 0x96, 0xd2, 0x23, 0x01, 0xd4, 0xfc, 0x7b, 0x11, 0x2c, 0x86, 0xca, 0x1d, 0xd3, 0xe8, 0xab, 0x94, 0xa5, 0xf4,
0xf7, 0x40, 0x85, 0x8e, 0x6c, 0xc2, 0xcf, 0x64, 0xb6, 0xfd, 0x61, 0x10, 0xcc, 0xf1, 0xc8, 0x26, 0x5d, 0x50, 0xa2, 0x23, 0x8b, 0xf0, 0x33, 0xa9, 0xb6, 0x3f, 0xf5, 0x83, 0x39, 0x1a, 0x59, 0xe4,
0x6f, 0x2f, 0xd6, 0x57, 0x73, 0x4c, 0x98, 0x08, 0x71, 0x23, 0xb8, 0x1f, 0xc6, 0x59, 0xe2, 0xe6, 0xfd, 0xf9, 0xda, 0x4a, 0x86, 0x09, 0x13, 0x21, 0x6e, 0x04, 0xf7, 0x82, 0x38, 0x0b, 0xdc, 0xfc,
0x9f, 0x27, 0x9d, 0xbf, 0xbd, 0x58, 0xcf, 0xa9, 0x35, 0x4a, 0x88, 0x94, 0x0c, 0x11, 0x7e, 0x00, 0xeb, 0xb8, 0xf3, 0xf7, 0xe7, 0x6b, 0x19, 0xb5, 0x46, 0x0e, 0x90, 0xe2, 0x21, 0xc2, 0x4f, 0xc0,
0xa6, 0x1d, 0x82, 0x5d, 0xcb, 0x6c, 0x54, 0x38, 0x5a, 0xb8, 0x15, 0xc4, 0x57, 0x91, 0x90, 0xc2, 0xb4, 0x4d, 0xb0, 0x63, 0x1a, 0xf5, 0x12, 0x47, 0x0b, 0xb6, 0x82, 0xf8, 0x2a, 0x12, 0x52, 0x78,
0xdb, 0x60, 0xc6, 0x20, 0xae, 0x8b, 0x07, 0xa4, 0x51, 0xe5, 0x8a, 0x0b, 0x42, 0x71, 0xe6, 0xc0, 0x13, 0xcc, 0xe8, 0xc4, 0x71, 0xf0, 0x80, 0xd4, 0xcb, 0x5c, 0x71, 0x5e, 0x28, 0xce, 0xec, 0x7b,
0x5f, 0x46, 0x81, 0x1c, 0x3e, 0x03, 0x75, 0x1d, 0xbb, 0xf4, 0xc4, 0xee, 0x63, 0x4a, 0x8e, 0x35, 0xcb, 0xc8, 0x97, 0xc3, 0x17, 0xa0, 0xa6, 0x61, 0x87, 0x1e, 0x5b, 0x7d, 0x4c, 0xc9, 0x91, 0xaa,
0x83, 0x34, 0xa6, 0xf9, 0x81, 0x7e, 0x34, 0xd9, 0xdd, 0x33, 0x8b, 0xf6, 0x8a, 0x40, 0xaf, 0xef, 0x93, 0xfa, 0x34, 0x3f, 0xd0, 0xcf, 0x26, 0xbb, 0x7b, 0x66, 0xd1, 0x5e, 0x16, 0xe8, 0xb5, 0xbd,
0x27, 0x90, 0x50, 0x0a, 0x19, 0x0e, 0x01, 0x64, 0x2b, 0xc7, 0x0e, 0x36, 0x5d, 0xff, 0xa0, 0x98, 0x18, 0x12, 0x4a, 0x20, 0xc3, 0x21, 0x80, 0x6c, 0xe5, 0xc8, 0xc6, 0x86, 0xe3, 0x1d, 0x14, 0xf3,
0xbf, 0x99, 0x6b, 0xfb, 0x5b, 0x13, 0xfe, 0xe0, 0x7e, 0x06, 0x0d, 0xe5, 0x78, 0x90, 0xff, 0x20, 0x37, 0x73, 0x65, 0x7f, 0xab, 0xc2, 0x1f, 0xdc, 0x4b, 0xa1, 0xa1, 0x0c, 0x0f, 0xcd, 0x3f, 0x4a,
0x81, 0x7a, 0x74, 0x4d, 0x37, 0xf0, 0x56, 0xbf, 0x4d, 0xbe, 0xd5, 0xef, 0x4f, 0x90, 0x9c, 0x05, 0xa0, 0x16, 0x5e, 0xd3, 0x35, 0xbc, 0xd5, 0x87, 0xf1, 0xb7, 0xfa, 0xfd, 0x09, 0x92, 0x33, 0xe7,
0x6f, 0xf4, 0x9f, 0x25, 0x00, 0x23, 0x25, 0x64, 0xe9, 0x7a, 0x0f, 0xab, 0x67, 0x70, 0x03, 0x54, 0x8d, 0xfe, 0xb3, 0x00, 0x60, 0xa8, 0x84, 0x4c, 0x4d, 0xeb, 0x61, 0xe5, 0x14, 0xae, 0x83, 0x92,
0x4c, 0x6c, 0x04, 0x39, 0x19, 0x3e, 0x90, 0x1f, 0x63, 0x83, 0x20, 0x2e, 0x81, 0x2f, 0x24, 0x00, 0x81, 0x75, 0x3f, 0x27, 0x83, 0x07, 0xf2, 0x63, 0xac, 0x13, 0xc4, 0x25, 0xf0, 0x95, 0x04, 0xa0,
0x3d, 0x7e, 0xf4, 0xfd, 0x1d, 0xd3, 0xb4, 0x28, 0x66, 0xa7, 0x11, 0x04, 0xd4, 0x99, 0x20, 0xa0, 0xcb, 0x8f, 0xbe, 0xbf, 0x6d, 0x18, 0x26, 0xc5, 0xec, 0x34, 0xfc, 0x80, 0x3a, 0x13, 0x04, 0xe4,
0xc0, 0x97, 0x72, 0x92, 0x41, 0xb9, 0x6f, 0x52, 0x67, 0x14, 0xdd, 0x42, 0x56, 0x01, 0xe5, 0xb8, 0xfb, 0x92, 0x8f, 0x53, 0x28, 0xf7, 0x0d, 0x6a, 0x8f, 0xc2, 0x5b, 0x48, 0x2b, 0xa0, 0x0c, 0xd7,
0x86, 0x3f, 0x03, 0xc0, 0x11, 0x98, 0xc7, 0x96, 0x78, 0xb6, 0xc5, 0x35, 0x20, 0x70, 0xdf, 0xb1, 0xf0, 0x67, 0x00, 0xd8, 0x02, 0xf3, 0xc8, 0x14, 0xcf, 0x36, 0xbf, 0x06, 0xf8, 0xee, 0x3b, 0xa6,
0xcc, 0xa7, 0xda, 0x20, 0x2a, 0x2c, 0x28, 0x84, 0x40, 0x31, 0xb8, 0xb5, 0xfb, 0x60, 0xb5, 0x20, 0xf1, 0x5c, 0x1d, 0x84, 0x85, 0x05, 0x05, 0x10, 0x28, 0x02, 0xb7, 0x7a, 0x1f, 0xac, 0xe4, 0xc4,
0x4e, 0x78, 0x0b, 0x94, 0xcf, 0xc8, 0xc8, 0x3f, 0x2a, 0xc4, 0x7e, 0xc2, 0x65, 0x50, 0x1d, 0x62, 0x09, 0x6f, 0x80, 0xe2, 0x29, 0x19, 0x79, 0x47, 0x85, 0xd8, 0x4f, 0xb8, 0x04, 0xca, 0x43, 0xac,
0xdd, 0x23, 0xfe, 0x9b, 0x44, 0xfe, 0xc7, 0xdd, 0xd2, 0x97, 0x92, 0xfc, 0xfb, 0x6a, 0x3c, 0x53, 0xb9, 0xc4, 0x7b, 0x93, 0xc8, 0xfb, 0xb8, 0x53, 0xf8, 0x56, 0x6a, 0xfe, 0xa1, 0x1c, 0xcd, 0x14,
0x58, 0xbd, 0x81, 0x9b, 0xac, 0x3d, 0xd8, 0xba, 0xa6, 0x62, 0x97, 0x63, 0x54, 0xdb, 0xef, 0xf8, 0x56, 0x6f, 0xe0, 0x06, 0x6b, 0x0f, 0x96, 0xa6, 0x2a, 0xd8, 0xe1, 0x18, 0xe5, 0xf6, 0x07, 0x5e,
0xad, 0xc1, 0x5f, 0x43, 0xa1, 0x14, 0xfe, 0x02, 0xd4, 0x5c, 0xa2, 0x13, 0x95, 0x5a, 0x8e, 0x28, 0x6b, 0xf0, 0xd6, 0x50, 0x20, 0x85, 0xbf, 0x00, 0x15, 0x87, 0x68, 0x44, 0xa1, 0xa6, 0x2d, 0x4a,
0x71, 0x9f, 0x4d, 0x98, 0x53, 0xb8, 0x47, 0xf4, 0xae, 0x30, 0xf5, 0xe1, 0x83, 0x2f, 0x14, 0x42, 0xdc, 0x57, 0x13, 0xe6, 0x14, 0xee, 0x11, 0xad, 0x2b, 0x4c, 0x3d, 0x78, 0xff, 0x0b, 0x05, 0x90,
0xc2, 0x87, 0xa0, 0x46, 0x89, 0x61, 0xeb, 0x98, 0x12, 0x71, 0x7a, 0x89, 0xbc, 0x62, 0xb5, 0x83, 0xf0, 0x31, 0xa8, 0x50, 0xa2, 0x5b, 0x1a, 0xa6, 0x44, 0x9c, 0x5e, 0x2c, 0xaf, 0x58, 0xed, 0x60,
0x81, 0x1d, 0x59, 0xfd, 0x63, 0xa1, 0xc6, 0xab, 0x67, 0x98, 0xa7, 0xc1, 0x2a, 0x0a, 0x61, 0xe0, 0x60, 0x87, 0x66, 0xff, 0x48, 0xa8, 0xf1, 0xea, 0x19, 0xe4, 0xa9, 0xbf, 0x8a, 0x02, 0x18, 0xf8,
0x4f, 0x41, 0xcd, 0xa5, 0xac, 0xab, 0x0f, 0x46, 0xbc, 0xa2, 0x5c, 0xd6, 0x56, 0xe2, 0x75, 0xd4, 0x53, 0x50, 0x71, 0x28, 0xeb, 0xea, 0x83, 0x11, 0xaf, 0x28, 0x17, 0xb5, 0x95, 0x68, 0x1d, 0xf5,
0x37, 0x89, 0xa0, 0x83, 0x15, 0x14, 0xc2, 0xc1, 0x1d, 0xb0, 0x60, 0x68, 0x26, 0x22, 0xb8, 0x3f, 0x4c, 0x42, 0x68, 0x7f, 0x05, 0x05, 0x70, 0x70, 0x1b, 0xcc, 0xeb, 0xaa, 0x81, 0x08, 0xee, 0x8f,
0xea, 0x12, 0xd5, 0x32, 0xfb, 0x2e, 0x2f, 0x45, 0xd5, 0xf6, 0xaa, 0x30, 0x5a, 0x38, 0x48, 0x8a, 0xba, 0x44, 0x31, 0x8d, 0xbe, 0xc3, 0x4b, 0x51, 0xb9, 0xbd, 0x22, 0x8c, 0xe6, 0xf7, 0xe3, 0x62,
0x51, 0x5a, 0x1f, 0xee, 0x83, 0xe5, 0xa0, 0xed, 0x7e, 0xab, 0xb9, 0xd4, 0x72, 0x46, 0xfb, 0x9a, 0x94, 0xd4, 0x87, 0x7b, 0x60, 0xc9, 0x6f, 0xbb, 0x0f, 0x55, 0x87, 0x9a, 0xf6, 0x68, 0x4f, 0xd5,
0xa1, 0x51, 0x5e, 0xa0, 0xaa, 0xed, 0xc6, 0xf8, 0x62, 0x7d, 0x19, 0xe5, 0xc8, 0x51, 0xae, 0x15, 0x55, 0xca, 0x0b, 0x54, 0xb9, 0x5d, 0x1f, 0x9f, 0xaf, 0x2d, 0xa1, 0x0c, 0x39, 0xca, 0xb4, 0x62,
0xab, 0x9d, 0x36, 0xf6, 0x5c, 0xd2, 0xe7, 0x05, 0xa7, 0x16, 0xd5, 0xce, 0x23, 0xbe, 0x8a, 0x84, 0xb5, 0xd3, 0xc2, 0xae, 0x43, 0xfa, 0xbc, 0xe0, 0x54, 0xc2, 0xda, 0x79, 0xc8, 0x57, 0x91, 0x90,
0x14, 0xfe, 0x24, 0x91, 0xa6, 0xb5, 0xeb, 0xa5, 0x69, 0xbd, 0x38, 0x45, 0xe1, 0x09, 0x58, 0xb5, 0xc2, 0x9f, 0xc4, 0xd2, 0xb4, 0x72, 0xb5, 0x34, 0xad, 0xe5, 0xa7, 0x28, 0x3c, 0x06, 0x2b, 0x96,
0x1d, 0x6b, 0xe0, 0x10, 0xd7, 0xdd, 0x25, 0xb8, 0xaf, 0x6b, 0x26, 0x09, 0x4e, 0x66, 0x96, 0xef, 0x6d, 0x0e, 0x6c, 0xe2, 0x38, 0x3b, 0x04, 0xf7, 0x35, 0xd5, 0x20, 0xfe, 0xc9, 0x54, 0xf9, 0x8e,
0xe8, 0xbd, 0xf1, 0xc5, 0xfa, 0xea, 0x51, 0xbe, 0x0a, 0x2a, 0xb2, 0x95, 0xff, 0x5c, 0x01, 0xb7, 0x3e, 0x1a, 0x9f, 0xaf, 0xad, 0x1c, 0x66, 0xab, 0xa0, 0x3c, 0xdb, 0xe6, 0x5f, 0x4a, 0xe0, 0x46,
0xd2, 0x3d, 0x0e, 0x3e, 0x00, 0xd0, 0xea, 0xb9, 0xc4, 0x19, 0x92, 0xfe, 0x37, 0x3e, 0x71, 0x63, 0xb2, 0xc7, 0xc1, 0x47, 0x00, 0x9a, 0x3d, 0x87, 0xd8, 0x43, 0xd2, 0x7f, 0xe0, 0x11, 0x37, 0xc6,
0xec, 0x46, 0xe2, 0xec, 0x26, 0x7c, 0xb7, 0x87, 0x19, 0x0d, 0x94, 0x63, 0xe5, 0xf3, 0x23, 0xf1, 0x6e, 0x24, 0xce, 0x6e, 0x82, 0x77, 0x7b, 0x90, 0xd2, 0x40, 0x19, 0x56, 0x1e, 0x3f, 0x12, 0x0f,
0x00, 0x4a, 0x3c, 0xd0, 0x18, 0x3f, 0xca, 0x3c, 0x82, 0x1d, 0xb0, 0x20, 0xde, 0x7e, 0x20, 0xe4, 0xa0, 0xc0, 0x03, 0x8d, 0xf0, 0xa3, 0xd4, 0x23, 0xd8, 0x06, 0xf3, 0xe2, 0xed, 0xfb, 0x42, 0x9e,
0xc9, 0x1a, 0xbb, 0xf7, 0x93, 0xa4, 0x18, 0xa5, 0xf5, 0xe1, 0x37, 0x60, 0x11, 0x0f, 0xb1, 0xa6, 0xac, 0x91, 0x7b, 0x3f, 0x8e, 0x8b, 0x51, 0x52, 0x1f, 0x3e, 0x00, 0x0b, 0x78, 0x88, 0x55, 0x0d,
0xe3, 0x9e, 0x4e, 0x42, 0x90, 0x0a, 0x07, 0x79, 0x57, 0x80, 0x2c, 0xee, 0xa4, 0x15, 0x50, 0xd6, 0xf7, 0x34, 0x12, 0x80, 0x94, 0x38, 0xc8, 0x87, 0x02, 0x64, 0x61, 0x3b, 0xa9, 0x80, 0xd2, 0x36,
0x06, 0x1e, 0x80, 0x25, 0xcf, 0xcc, 0x42, 0xf9, 0x79, 0xf8, 0x9e, 0x80, 0x5a, 0x3a, 0xc9, 0xaa, 0x70, 0x1f, 0x2c, 0xba, 0x46, 0x1a, 0xca, 0xcb, 0xc3, 0x8f, 0x04, 0xd4, 0xe2, 0x71, 0x5a, 0x05,
0xa0, 0x3c, 0x3b, 0xf8, 0x04, 0x00, 0x35, 0x68, 0xcc, 0x6e, 0x63, 0x9a, 0x57, 0xd2, 0x4f, 0x26, 0x65, 0xd9, 0xc1, 0x67, 0x00, 0x28, 0x7e, 0x63, 0x76, 0xea, 0xd3, 0xbc, 0x92, 0x7e, 0x31, 0xc1,
0x78, 0x2f, 0x61, 0x37, 0x8f, 0xaa, 0x58, 0xb8, 0xe4, 0xa2, 0x18, 0x26, 0xbc, 0x07, 0xe6, 0x1d, 0x7b, 0x09, 0xba, 0x79, 0x58, 0xc5, 0x82, 0x25, 0x07, 0x45, 0x30, 0xe1, 0x5d, 0x30, 0x67, 0xb3,
0xf6, 0x02, 0xc2, 0x50, 0x67, 0x78, 0xa8, 0xdf, 0x11, 0x66, 0xf3, 0x28, 0x2e, 0x44, 0x49, 0x5d, 0x17, 0x10, 0x84, 0x3a, 0xc3, 0x43, 0xfd, 0x8e, 0x30, 0x9b, 0x43, 0x51, 0x21, 0x8a, 0xeb, 0xc2,
0x78, 0x17, 0xd4, 0x55, 0x4b, 0xd7, 0x79, 0xe6, 0x77, 0x2c, 0xcf, 0xa4, 0x3c, 0x79, 0xcb, 0x6d, 0x3b, 0xa0, 0xa6, 0x98, 0x9a, 0xc6, 0x33, 0xbf, 0x63, 0xba, 0x06, 0xe5, 0xc9, 0x5b, 0x6c, 0x43,
0xc8, 0x3a, 0x73, 0x27, 0x21, 0x41, 0x29, 0x4d, 0xf9, 0x4f, 0x52, 0xbc, 0xcd, 0x04, 0xcf, 0x19, 0xd6, 0x99, 0x3b, 0x31, 0x09, 0x4a, 0x68, 0x36, 0xff, 0x2c, 0x45, 0xdb, 0x8c, 0xff, 0x9c, 0xe1,
0xde, 0x4d, 0x50, 0x9f, 0x0f, 0x52, 0xd4, 0x67, 0x25, 0x6b, 0x11, 0x63, 0x3e, 0x1a, 0x98, 0x67, 0x9d, 0x18, 0xf5, 0xf9, 0x24, 0x41, 0x7d, 0x96, 0xd3, 0x16, 0x11, 0xe6, 0xa3, 0x82, 0x39, 0x96,
0xc9, 0xaf, 0x99, 0x03, 0xff, 0xc2, 0x45, 0x49, 0xfc, 0xf4, 0xd2, 0xa7, 0x14, 0x6a, 0xc7, 0x1a, 0xfc, 0xaa, 0x31, 0xf0, 0x2e, 0x5c, 0x94, 0xc4, 0x2f, 0x2f, 0x7c, 0x4a, 0x81, 0x76, 0xa4, 0x31,
0xe3, 0x22, 0xdf, 0x79, 0x5c, 0x88, 0x92, 0xc8, 0xf2, 0xd7, 0xa0, 0x9e, 0x7c, 0x87, 0x09, 0x4e, 0x2e, 0xf0, 0x9d, 0x47, 0x85, 0x28, 0x8e, 0xdc, 0xbc, 0x07, 0x6a, 0xf1, 0x77, 0x18, 0xe3, 0xf4,
0x2f, 0x5d, 0xc9, 0xe9, 0xdf, 0x48, 0x60, 0xb5, 0xc0, 0x3b, 0xd4, 0x41, 0xdd, 0xc0, 0xcf, 0x63, 0xd2, 0xa5, 0x9c, 0xfe, 0x9d, 0x04, 0x56, 0x72, 0xbc, 0x43, 0x0d, 0xd4, 0x74, 0xfc, 0x32, 0x92,
0x39, 0x72, 0x25, 0x37, 0x66, 0x53, 0x93, 0xe2, 0x4f, 0x4d, 0xca, 0x9e, 0x49, 0x0f, 0x9d, 0x2e, 0x23, 0x97, 0x72, 0x63, 0x36, 0x35, 0xc9, 0xde, 0xd4, 0x24, 0xef, 0x1a, 0xf4, 0xc0, 0xee, 0x52,
0x75, 0x34, 0x73, 0xe0, 0xdf, 0xc3, 0x41, 0x02, 0x0b, 0xa5, 0xb0, 0xe1, 0x63, 0x50, 0x33, 0xf0, 0x5b, 0x35, 0x06, 0xde, 0x3d, 0xec, 0xc7, 0xb0, 0x50, 0x02, 0x1b, 0x3e, 0x05, 0x15, 0x1d, 0xbf,
0xf3, 0xae, 0xe7, 0x0c, 0xf2, 0xce, 0x6b, 0x32, 0x3f, 0xbc, 0x7f, 0x1c, 0x08, 0x14, 0x14, 0xe2, 0xec, 0xba, 0xf6, 0x20, 0xeb, 0xbc, 0x26, 0xf3, 0xc3, 0xfb, 0xc7, 0xbe, 0x40, 0x41, 0x01, 0x5e,
0xc9, 0x87, 0x60, 0x23, 0xb1, 0x49, 0x56, 0x2a, 0xc8, 0x53, 0x4f, 0xef, 0x92, 0xe8, 0xc2, 0x3f, 0xf3, 0x00, 0xac, 0xc7, 0x36, 0xc9, 0x4a, 0x05, 0x79, 0xee, 0x6a, 0x5d, 0x12, 0x5e, 0xf8, 0xe7,
0x06, 0xb3, 0x36, 0x76, 0xa8, 0x16, 0x96, 0x8b, 0x6a, 0x7b, 0x7e, 0x7c, 0xb1, 0x3e, 0x7b, 0x14, 0xa0, 0x6a, 0x61, 0x9b, 0xaa, 0x41, 0xb9, 0x28, 0xb7, 0xe7, 0xc6, 0xe7, 0x6b, 0xd5, 0x43, 0x7f,
0x2c, 0xa2, 0x48, 0x2e, 0xff, 0x5b, 0x02, 0xd5, 0xae, 0x8a, 0x75, 0x72, 0x03, 0xa3, 0xc3, 0x6e, 0x11, 0x85, 0xf2, 0xe6, 0xbf, 0x25, 0x50, 0xee, 0x2a, 0x58, 0x23, 0xd7, 0x30, 0x3a, 0xec, 0xc4,
0x62, 0x74, 0x90, 0x0b, 0x93, 0x88, 0xc7, 0x53, 0x38, 0x35, 0xec, 0xa7, 0xa6, 0x86, 0xf7, 0xaf, 0x46, 0x87, 0x66, 0x6e, 0x12, 0xf1, 0x78, 0x72, 0xa7, 0x86, 0xbd, 0xc4, 0xd4, 0xf0, 0xf1, 0x25,
0xc0, 0xb9, 0x7c, 0x60, 0xf8, 0x0a, 0xcc, 0x86, 0xee, 0x12, 0x55, 0x52, 0xba, 0xaa, 0x4a, 0xca, 0x38, 0x17, 0x0f, 0x0c, 0xb7, 0x41, 0x35, 0x70, 0x17, 0xab, 0x92, 0xd2, 0x65, 0x55, 0xb2, 0xf9,
0xbf, 0x2b, 0x81, 0xb9, 0x98, 0x8b, 0xeb, 0x59, 0xb3, 0xe3, 0x8e, 0x11, 0x0d, 0x56, 0x86, 0xb6, 0xfb, 0x02, 0x98, 0x8d, 0xb8, 0xb8, 0x9a, 0x35, 0x3b, 0xee, 0x08, 0xd1, 0x60, 0x65, 0x68, 0x6b,
0x27, 0xd9, 0x88, 0x12, 0x90, 0x0a, 0x9f, 0xbf, 0x45, 0xdd, 0x3b, 0xcb, 0x35, 0xbe, 0x06, 0x75, 0x92, 0x8d, 0xc8, 0x3e, 0xa9, 0xf0, 0xf8, 0x5b, 0xd8, 0xbd, 0xd3, 0x5c, 0xe3, 0x1e, 0xa8, 0x51,
0x8a, 0x9d, 0x01, 0xa1, 0x81, 0x8c, 0x1f, 0xd8, 0x6c, 0xc4, 0xf4, 0x8f, 0x13, 0x52, 0x94, 0xd2, 0x6c, 0x0f, 0x08, 0xf5, 0x65, 0xfc, 0xc0, 0xaa, 0x21, 0xd3, 0x3f, 0x8a, 0x49, 0x51, 0x42, 0x7b,
0x5e, 0xbb, 0x07, 0xe6, 0x13, 0xce, 0xae, 0x45, 0xc2, 0x5e, 0xb0, 0xc3, 0x89, 0x92, 0xf3, 0x06, 0xf5, 0x2e, 0x98, 0x8b, 0x39, 0xbb, 0x12, 0x09, 0x7b, 0xc5, 0x0e, 0x27, 0x4c, 0xce, 0x6b, 0xc8,
0xb2, 0xeb, 0x41, 0x22, 0xbb, 0x36, 0x8b, 0x0f, 0x33, 0xf6, 0x64, 0x8a, 0x72, 0x0c, 0xa5, 0x72, 0xae, 0x47, 0xb1, 0xec, 0xda, 0xc8, 0x3f, 0xcc, 0xc8, 0x93, 0xc9, 0xcb, 0x31, 0x94, 0xc8, 0xb1,
0xec, 0xa3, 0x89, 0xd0, 0x2e, 0xcf, 0xb4, 0x3f, 0x4a, 0x60, 0x21, 0xa6, 0x7d, 0x03, 0x13, 0xcc, 0xcf, 0x26, 0x42, 0xbb, 0x38, 0xd3, 0xfe, 0x24, 0x81, 0xf9, 0x88, 0xf6, 0x35, 0x4c, 0x30, 0xbb,
0x5e, 0x72, 0x82, 0x79, 0x7f, 0x92, 0x4d, 0x14, 0x8c, 0x30, 0x7f, 0xa9, 0x26, 0x82, 0xff, 0xbf, 0xf1, 0x09, 0xe6, 0xe3, 0x49, 0x36, 0x91, 0x33, 0xc2, 0xfc, 0xb5, 0x1c, 0x0b, 0xfe, 0xff, 0x9e,
0x27, 0xd5, 0xbf, 0x02, 0xcb, 0x43, 0x4b, 0xf7, 0x0c, 0xd2, 0xd1, 0xb1, 0x66, 0x04, 0x0a, 0x8c, 0x54, 0xff, 0x0a, 0x2c, 0x0d, 0x4d, 0xcd, 0xd5, 0x49, 0x47, 0xc3, 0xaa, 0xee, 0x2b, 0x30, 0x06,
0xc1, 0x94, 0xd3, 0x7f, 0x54, 0x84, 0xf0, 0xc4, 0x71, 0x35, 0x97, 0x12, 0x93, 0x3e, 0x8a, 0x2c, 0x53, 0x4c, 0xfe, 0x51, 0x11, 0xc0, 0x13, 0xdb, 0x51, 0x1d, 0x4a, 0x0c, 0xfa, 0x24, 0xb4, 0x6c,
0xdb, 0xdf, 0x15, 0x4e, 0x96, 0x1f, 0xe5, 0xc0, 0xa1, 0x5c, 0x27, 0xf0, 0x07, 0x60, 0x8e, 0x11, 0x7f, 0x57, 0x38, 0x59, 0x7a, 0x92, 0x01, 0x87, 0x32, 0x9d, 0xc0, 0x1f, 0x80, 0x59, 0x46, 0xe0,
0x38, 0x4d, 0x25, 0x6c, 0x16, 0x14, 0xd3, 0xff, 0x92, 0x00, 0x9a, 0xeb, 0x46, 0x22, 0x14, 0xd7, 0x54, 0x85, 0xb0, 0x59, 0x50, 0x4c, 0xff, 0x8b, 0x02, 0x68, 0xb6, 0x1b, 0x8a, 0x50, 0x54, 0x0f,
0x83, 0xa7, 0x60, 0xc9, 0xb6, 0xfa, 0x07, 0xd8, 0xc4, 0x03, 0xc2, 0xda, 0xde, 0x11, 0xff, 0x43, 0x9e, 0x80, 0x45, 0xcb, 0xec, 0xef, 0x63, 0x03, 0x0f, 0x08, 0x6b, 0x7b, 0x87, 0xfc, 0x0f, 0x4d,
0x93, 0x33, 0xed, 0xd9, 0xf6, 0x17, 0x01, 0x53, 0x3a, 0xca, 0xaa, 0xbc, 0x65, 0x94, 0x35, 0xbb, 0xce, 0xb4, 0xab, 0xed, 0x6f, 0x7c, 0xa6, 0x74, 0x98, 0x56, 0x79, 0xcf, 0x28, 0x6b, 0x7a, 0x99,
0xcc, 0x79, 0x40, 0x1e, 0x24, 0x74, 0x40, 0xdd, 0x13, 0xed, 0x47, 0x0c, 0x1e, 0xfe, 0xfc, 0xbf, 0xf3, 0x80, 0x2c, 0x48, 0x68, 0x83, 0x9a, 0x2b, 0xda, 0x8f, 0x18, 0x3c, 0xbc, 0xf9, 0x7f, 0x6b,
0x3d, 0x49, 0x86, 0x9d, 0x24, 0x2c, 0xa3, 0x6a, 0x94, 0x5c, 0x47, 0x29, 0x0f, 0x85, 0x83, 0x44, 0x92, 0x0c, 0x3b, 0x8e, 0x59, 0x86, 0xd5, 0x28, 0xbe, 0x8e, 0x12, 0x1e, 0x72, 0x07, 0x89, 0xca,
0xed, 0xbf, 0x19, 0x24, 0xe4, 0xbf, 0x96, 0xc1, 0x62, 0xe6, 0xe9, 0xc2, 0x1f, 0x5d, 0xc2, 0xb8, 0x7f, 0x33, 0x48, 0x34, 0x7f, 0x53, 0x02, 0x0b, 0xa9, 0xa7, 0x0b, 0x7f, 0x74, 0x01, 0xe3, 0x5e,
0x57, 0xfe, 0x67, 0x6c, 0x3b, 0x43, 0x18, 0xcb, 0xd7, 0x20, 0x8c, 0x3b, 0x60, 0x41, 0xf5, 0x1c, 0xfe, 0x9f, 0xb1, 0xed, 0x14, 0x61, 0x2c, 0x5e, 0x81, 0x30, 0x6e, 0x83, 0x79, 0xc5, 0xb5, 0x6d,
0x87, 0xcd, 0xfa, 0x49, 0x96, 0x1d, 0x52, 0xf5, 0x4e, 0x52, 0x8c, 0xd2, 0xfa, 0x79, 0x6c, 0xbf, 0x36, 0xeb, 0xc7, 0x59, 0x76, 0x40, 0xd5, 0x3b, 0x71, 0x31, 0x4a, 0xea, 0x67, 0xb1, 0xfd, 0xf2,
0x7a, 0x4d, 0xb6, 0x1f, 0x8f, 0x42, 0x30, 0x36, 0x3f, 0xed, 0xb2, 0x51, 0x08, 0xe2, 0x96, 0xd6, 0x15, 0xd9, 0x7e, 0x34, 0x0a, 0xc1, 0xd8, 0xbc, 0xb4, 0x4b, 0x47, 0x21, 0x88, 0x5b, 0x52, 0x9f,
0x67, 0xdd, 0xca, 0x47, 0x0d, 0x11, 0x66, 0x92, 0xdd, 0xea, 0x24, 0x21, 0x45, 0x29, 0x6d, 0xf9, 0x75, 0x2b, 0x0f, 0x35, 0x40, 0x98, 0x89, 0x77, 0xab, 0xe3, 0x98, 0x14, 0x25, 0xb4, 0x33, 0x98,
0x6f, 0x12, 0x78, 0xb7, 0x30, 0xcb, 0xe0, 0x4e, 0x82, 0x04, 0x6f, 0xa5, 0x48, 0xf0, 0xf7, 0x0a, 0x73, 0x75, 0x62, 0xe6, 0xfc, 0x37, 0x09, 0x7c, 0x98, 0x9b, 0xa1, 0x70, 0x3b, 0x46, 0xa0, 0x37,
0x0d, 0x63, 0x5c, 0xd8, 0xc9, 0xe7, 0xc2, 0x5f, 0x4d, 0xc6, 0x85, 0x73, 0x88, 0xda, 0xd5, 0xa4, 0x13, 0x04, 0xfa, 0x7b, 0xb9, 0x86, 0x11, 0x1e, 0x6d, 0x67, 0xf3, 0xe8, 0xdb, 0x93, 0xf1, 0xe8,
0xb8, 0xbd, 0x75, 0xfe, 0xba, 0x39, 0xf5, 0xf2, 0x75, 0x73, 0xea, 0xd5, 0xeb, 0xe6, 0xd4, 0xaf, 0x0c, 0x92, 0x77, 0x39, 0xa1, 0x6e, 0x6f, 0x9e, 0xbd, 0x6d, 0x4c, 0xbd, 0x7e, 0xdb, 0x98, 0x7a,
0xc7, 0x4d, 0xe9, 0x7c, 0xdc, 0x94, 0x5e, 0x8e, 0x9b, 0xd2, 0xab, 0x71, 0x53, 0xfa, 0xc7, 0xb8, 0xf3, 0xb6, 0x31, 0xf5, 0xeb, 0x71, 0x43, 0x3a, 0x1b, 0x37, 0xa4, 0xd7, 0xe3, 0x86, 0xf4, 0x66,
0x29, 0xfd, 0xf6, 0x4d, 0x73, 0xea, 0xf1, 0x8c, 0xf0, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x90, 0xfe, 0x31, 0x6e, 0x48, 0xbf, 0x7b, 0xd7, 0x98, 0x7a, 0x3a, 0x23, 0x3c, 0xfe, 0x27,
0xa4, 0xc5, 0x7c, 0x3a, 0x7d, 0x19, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0x04, 0xd9, 0xa7, 0xb9, 0x19, 0x00, 0x00,
} }

View File

@ -429,6 +429,12 @@ message StatefulSetStatus {
// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence
// [replicas-updatedReplicas,replicas) // [replicas-updatedReplicas,replicas)
optional string updateRevision = 7; 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 int64 collisionCount = 9;
} }
// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet // StatefulSetUpdateStrategy indicates the strategy that the StatefulSet

View File

@ -2419,7 +2419,7 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) {
} else { } else {
yysep2 := !z.EncBinary() yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [7]bool var yyq2 [8]bool
_, _, _ = yysep2, yyq2, yy2arr2 _, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false const yyr2 bool = false
yyq2[0] = x.ObservedGeneration != nil yyq2[0] = x.ObservedGeneration != nil
@ -2428,9 +2428,10 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) {
yyq2[4] = x.UpdatedReplicas != 0 yyq2[4] = x.UpdatedReplicas != 0
yyq2[5] = x.CurrentRevision != "" yyq2[5] = x.CurrentRevision != ""
yyq2[6] = x.UpdateRevision != "" yyq2[6] = x.UpdateRevision != ""
yyq2[7] = x.CollisionCount != nil
var yynn2 int var yynn2 int
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
r.EncodeArrayStart(7) r.EncodeArrayStart(8)
} else { } else {
yynn2 = 1 yynn2 = 1
for _, b := range yyq2 { for _, b := range yyq2 {
@ -2620,6 +2621,41 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
} }
if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
if yyq2[7] {
if x.CollisionCount == nil {
r.EncodeNil()
} else {
yy27 := *x.CollisionCount
yym28 := z.EncBinary()
_ = yym28
if false {
} else {
r.EncodeInt(int64(yy27))
}
}
} else {
r.EncodeNil()
}
} else {
if yyq2[7] {
z.EncSendContainerState(codecSelfer_containerMapKey1234)
r.EncodeString(codecSelferC_UTF81234, string("collisionCount"))
z.EncSendContainerState(codecSelfer_containerMapValue1234)
if x.CollisionCount == nil {
r.EncodeNil()
} else {
yy29 := *x.CollisionCount
yym30 := z.EncBinary()
_ = yym30
if false {
} else {
r.EncodeInt(int64(yy29))
}
}
}
}
if yyr2 || yy2arr2 { if yyr2 || yy2arr2 {
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} else { } else {
@ -2769,6 +2805,22 @@ func (x *StatefulSetStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder)
*((*string)(yyv16)) = r.DecodeString() *((*string)(yyv16)) = r.DecodeString()
} }
} }
case "collisionCount":
if r.TryDecodeAsNil() {
if x.CollisionCount != nil {
x.CollisionCount = nil
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
}
yym19 := z.DecBinary()
_ = yym19
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
}
}
default: default:
z.DecStructFieldNotFound(-1, yys3) z.DecStructFieldNotFound(-1, yys3)
} // end switch yys3 } // end switch yys3
@ -2780,16 +2832,16 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
var yyj18 int var yyj20 int
var yyb18 bool var yyb20 bool
var yyhl18 bool = l >= 0 var yyhl20 bool = l >= 0
yyj18++ yyj20++
if yyhl18 { if yyhl20 {
yyb18 = yyj18 > l yyb20 = yyj20 > l
} else { } else {
yyb18 = r.CheckBreak() yyb20 = r.CheckBreak()
} }
if yyb18 { if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -2802,20 +2854,20 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
if x.ObservedGeneration == nil { if x.ObservedGeneration == nil {
x.ObservedGeneration = new(int64) x.ObservedGeneration = new(int64)
} }
yym20 := z.DecBinary() yym22 := z.DecBinary()
_ = yym20 _ = yym22
if false { if false {
} else { } else {
*((*int64)(x.ObservedGeneration)) = int64(r.DecodeInt(64)) *((*int64)(x.ObservedGeneration)) = int64(r.DecodeInt(64))
} }
} }
yyj18++ yyj20++
if yyhl18 { if yyhl20 {
yyb18 = yyj18 > l yyb20 = yyj20 > l
} else { } else {
yyb18 = r.CheckBreak() yyb20 = r.CheckBreak()
} }
if yyb18 { if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -2823,29 +2875,7 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Replicas = 0 x.Replicas = 0
} else { } else {
yyv21 := &x.Replicas yyv23 := &x.Replicas
yym22 := z.DecBinary()
_ = yym22
if false {
} else {
*((*int32)(yyv21)) = int32(r.DecodeInt(32))
}
}
yyj18++
if yyhl18 {
yyb18 = yyj18 > l
} else {
yyb18 = r.CheckBreak()
}
if yyb18 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.ReadyReplicas = 0
} else {
yyv23 := &x.ReadyReplicas
yym24 := z.DecBinary() yym24 := z.DecBinary()
_ = yym24 _ = yym24
if false { if false {
@ -2853,21 +2883,21 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
*((*int32)(yyv23)) = int32(r.DecodeInt(32)) *((*int32)(yyv23)) = int32(r.DecodeInt(32))
} }
} }
yyj18++ yyj20++
if yyhl18 { if yyhl20 {
yyb18 = yyj18 > l yyb20 = yyj20 > l
} else { } else {
yyb18 = r.CheckBreak() yyb20 = r.CheckBreak()
} }
if yyb18 { if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.CurrentReplicas = 0 x.ReadyReplicas = 0
} else { } else {
yyv25 := &x.CurrentReplicas yyv25 := &x.ReadyReplicas
yym26 := z.DecBinary() yym26 := z.DecBinary()
_ = yym26 _ = yym26
if false { if false {
@ -2875,21 +2905,21 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
*((*int32)(yyv25)) = int32(r.DecodeInt(32)) *((*int32)(yyv25)) = int32(r.DecodeInt(32))
} }
} }
yyj18++ yyj20++
if yyhl18 { if yyhl20 {
yyb18 = yyj18 > l yyb20 = yyj20 > l
} else { } else {
yyb18 = r.CheckBreak() yyb20 = r.CheckBreak()
} }
if yyb18 { if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.UpdatedReplicas = 0 x.CurrentReplicas = 0
} else { } else {
yyv27 := &x.UpdatedReplicas yyv27 := &x.CurrentReplicas
yym28 := z.DecBinary() yym28 := z.DecBinary()
_ = yym28 _ = yym28
if false { if false {
@ -2897,13 +2927,35 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
*((*int32)(yyv27)) = int32(r.DecodeInt(32)) *((*int32)(yyv27)) = int32(r.DecodeInt(32))
} }
} }
yyj18++ yyj20++
if yyhl18 { if yyhl20 {
yyb18 = yyj18 > l yyb20 = yyj20 > l
} else { } else {
yyb18 = r.CheckBreak() yyb20 = r.CheckBreak()
} }
if yyb18 { if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.UpdatedReplicas = 0
} else {
yyv29 := &x.UpdatedReplicas
yym30 := z.DecBinary()
_ = yym30
if false {
} else {
*((*int32)(yyv29)) = int32(r.DecodeInt(32))
}
}
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb20 = r.CheckBreak()
}
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return return
} }
@ -2911,29 +2963,7 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.CurrentRevision = "" x.CurrentRevision = ""
} else { } else {
yyv29 := &x.CurrentRevision yyv31 := &x.CurrentRevision
yym30 := z.DecBinary()
_ = yym30
if false {
} else {
*((*string)(yyv29)) = r.DecodeString()
}
}
yyj18++
if yyhl18 {
yyb18 = yyj18 > l
} else {
yyb18 = r.CheckBreak()
}
if yyb18 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.UpdateRevision = ""
} else {
yyv31 := &x.UpdateRevision
yym32 := z.DecBinary() yym32 := z.DecBinary()
_ = yym32 _ = yym32
if false { if false {
@ -2941,18 +2971,66 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder
*((*string)(yyv31)) = r.DecodeString() *((*string)(yyv31)) = r.DecodeString()
} }
} }
for { yyj20++
yyj18++ if yyhl20 {
if yyhl18 { yyb20 = yyj20 > l
yyb18 = yyj18 > l } else {
yyb20 = r.CheckBreak()
}
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
x.UpdateRevision = ""
} else {
yyv33 := &x.UpdateRevision
yym34 := z.DecBinary()
_ = yym34
if false {
} else { } else {
yyb18 = r.CheckBreak() *((*string)(yyv33)) = r.DecodeString()
} }
if yyb18 { }
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb20 = r.CheckBreak()
}
if yyb20 {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
return
}
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
if r.TryDecodeAsNil() {
if x.CollisionCount != nil {
x.CollisionCount = nil
}
} else {
if x.CollisionCount == nil {
x.CollisionCount = new(int64)
}
yym36 := z.DecBinary()
_ = yym36
if false {
} else {
*((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64))
}
}
for {
yyj20++
if yyhl20 {
yyb20 = yyj20 > l
} else {
yyb20 = r.CheckBreak()
}
if yyb20 {
break break
} }
z.DecSendContainerState(codecSelfer_containerArrayElem1234) z.DecSendContainerState(codecSelfer_containerArrayElem1234)
z.DecStructFieldNotFound(yyj18-1, "") z.DecStructFieldNotFound(yyj20-1, "")
} }
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
@ -7976,7 +8054,7 @@ func (x codecSelfer1234) decSliceStatefulSet(v *[]StatefulSet, d *codec1978.Deco
yyrg1 := len(yyv1) > 0 yyrg1 := len(yyv1) > 0
yyv21 := yyv1 yyv21 := yyv1
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1008) yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1016)
if yyrt1 { if yyrt1 {
if yyrl1 <= cap(yyv1) { if yyrl1 <= cap(yyv1) {
yyv1 = yyv1[:yyrl1] yyv1 = yyv1[:yyrl1]

View File

@ -239,6 +239,12 @@ type StatefulSetStatus struct {
// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence
// [replicas-updatedReplicas,replicas) // [replicas-updatedReplicas,replicas)
UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` 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 *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View File

@ -239,6 +239,7 @@ var map_StatefulSetStatus = map[string]string{
"updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "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).", "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)", "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.",
} }
func (StatefulSetStatus) SwaggerDoc() map[string]string { func (StatefulSetStatus) SwaggerDoc() map[string]string {

View File

@ -689,6 +689,15 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {
**out = **in **out = **in
} }
} }
if in.CollisionCount != nil {
in, out := &in.CollisionCount, &out.CollisionCount
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
return return
} }

View File

@ -1327,6 +1327,11 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {
i++ i++
i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))
i += copy(dAtA[i:], m.UpdateRevision) i += copy(dAtA[i:], m.UpdateRevision)
if m.CollisionCount != nil {
dAtA[i] = 0x48
i++
i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))
}
return i, nil return i, nil
} }
@ -1777,6 +1782,9 @@ func (m *StatefulSetStatus) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l)) n += 1 + l + sovGenerated(uint64(l))
l = len(m.UpdateRevision) l = len(m.UpdateRevision)
n += 1 + l + sovGenerated(uint64(l)) n += 1 + l + sovGenerated(uint64(l))
if m.CollisionCount != nil {
n += 1 + sovGenerated(uint64(*m.CollisionCount))
}
return n return n
} }
@ -2147,6 +2155,7 @@ func (this *StatefulSetStatus) String() string {
`UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`,
`CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`,
`UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`,
`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,
`}`, `}`,
}, "") }, "")
return s return s
@ -6174,6 +6183,26 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {
} }
m.UpdateRevision = string(dAtA[iNdEx:postIndex]) m.UpdateRevision = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex iNdEx = postIndex
case 9:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType)
}
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.CollisionCount = &v
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:]) skippy, err := skipGenerated(dAtA[iNdEx:])
@ -6417,133 +6446,134 @@ func init() {
} }
var fileDescriptorGenerated = []byte{ var fileDescriptorGenerated = []byte{
// 2048 bytes of a gzipped FileDescriptorProto // 2050 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcb, 0x6f, 0x1c, 0xb7, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcb, 0x6f, 0x1c, 0xb7,
0x19, 0xf7, 0xec, 0x43, 0xda, 0xa5, 0x22, 0xc9, 0xa6, 0x54, 0x69, 0x23, 0xb7, 0x2b, 0x61, 0x12, 0x19, 0xf7, 0xec, 0x43, 0xda, 0xa5, 0x22, 0xc9, 0xa6, 0x54, 0x69, 0x23, 0xb7, 0x2b, 0x61, 0x13,
0x38, 0x72, 0x1c, 0xcf, 0xda, 0xca, 0x03, 0x89, 0x0d, 0xb4, 0xd5, 0x4a, 0xad, 0xed, 0x40, 0x92, 0x38, 0x72, 0x1c, 0xcf, 0xda, 0xca, 0x03, 0x89, 0x0d, 0xb4, 0xd5, 0x4a, 0xad, 0xed, 0x40, 0x92,
0x15, 0x4a, 0x32, 0xd0, 0xa0, 0x05, 0x4c, 0xed, 0xd2, 0xab, 0x89, 0xe6, 0x85, 0x19, 0xce, 0x22, 0x15, 0xae, 0x64, 0xa0, 0x41, 0x0b, 0x98, 0xbb, 0x4b, 0xaf, 0x26, 0x9a, 0x17, 0x66, 0x38, 0x8b,
0x8b, 0x5e, 0x7a, 0x2a, 0x50, 0xa0, 0x40, 0x73, 0xee, 0x3f, 0xd1, 0x9e, 0x8a, 0xa2, 0xbd, 0x15, 0x2c, 0x7a, 0xe9, 0xa9, 0x40, 0x81, 0x02, 0xc9, 0xb9, 0xff, 0x44, 0x7b, 0x2a, 0x8a, 0xf6, 0x56,
0x45, 0xe1, 0x4b, 0x81, 0xa0, 0x3d, 0x24, 0x27, 0xa1, 0xde, 0x1c, 0xfb, 0x1f, 0x04, 0x28, 0x50, 0x14, 0x85, 0x2f, 0x05, 0x82, 0x5e, 0x92, 0x93, 0x50, 0x6f, 0x8e, 0xfd, 0x0f, 0x02, 0x14, 0x28,
0x90, 0xc3, 0x79, 0x70, 0x1e, 0xd6, 0x48, 0xb5, 0xd5, 0x20, 0xb7, 0x5d, 0x7e, 0xbf, 0xef, 0xc7, 0xc8, 0xe1, 0x3c, 0x38, 0x0f, 0x6b, 0xa4, 0xd8, 0x6a, 0x91, 0xdb, 0x2e, 0xbf, 0xdf, 0xf7, 0xe3,
0x8f, 0xe4, 0x47, 0x7e, 0x3f, 0x72, 0xc0, 0x0f, 0x8f, 0xdf, 0xf7, 0x34, 0xdd, 0xee, 0x1c, 0xfb, 0x47, 0xf2, 0x23, 0xbf, 0x1f, 0x39, 0xe0, 0xc7, 0xc7, 0xef, 0xbb, 0xaa, 0x66, 0xb5, 0x8f, 0xbd,
0x87, 0xc4, 0xb5, 0x08, 0x25, 0x5e, 0x67, 0x48, 0xac, 0xbe, 0xed, 0x76, 0x84, 0x01, 0x3b, 0x7a, 0x1e, 0x71, 0x4c, 0x42, 0x89, 0xdb, 0x1e, 0x11, 0x73, 0x60, 0x39, 0x6d, 0x61, 0xc0, 0xb6, 0xd6,
0x07, 0x3b, 0x8e, 0xd7, 0x19, 0xde, 0x3e, 0x24, 0x14, 0xaf, 0x75, 0x06, 0xc4, 0x22, 0x2e, 0xa6, 0xc6, 0xb6, 0xed, 0xb6, 0x47, 0xb7, 0x7b, 0x84, 0xe2, 0x8d, 0xf6, 0x90, 0x98, 0xc4, 0xc1, 0x94,
0xa4, 0xaf, 0x39, 0xae, 0x4d, 0x6d, 0xb8, 0x18, 0x00, 0x35, 0xec, 0xe8, 0x1a, 0x03, 0x6a, 0x02, 0x0c, 0x54, 0xdb, 0xb1, 0xa8, 0x05, 0x97, 0x7d, 0xa0, 0x8a, 0x6d, 0x4d, 0x65, 0x40, 0x55, 0x00,
0xb8, 0x74, 0x73, 0xa0, 0xd3, 0x23, 0xff, 0x50, 0xeb, 0xd9, 0x66, 0x67, 0x60, 0x0f, 0xec, 0x0e, 0x57, 0x6e, 0x0e, 0x35, 0x7a, 0xe4, 0xf5, 0xd4, 0xbe, 0x65, 0xb4, 0x87, 0xd6, 0xd0, 0x6a, 0x73,
0xc7, 0x1f, 0xfa, 0x4f, 0xf8, 0x3f, 0xfe, 0x87, 0xff, 0x0a, 0x78, 0x96, 0xd4, 0x44, 0x87, 0x3d, 0x7c, 0xcf, 0x7b, 0xc2, 0xff, 0xf1, 0x3f, 0xfc, 0x97, 0xcf, 0xb3, 0xd2, 0x8a, 0x75, 0xd8, 0xb7,
0xdb, 0x25, 0x9d, 0xe1, 0xed, 0x74, 0x5f, 0x4b, 0xd7, 0x13, 0x18, 0xc7, 0x36, 0xf4, 0xde, 0x48, 0x1c, 0xd2, 0x1e, 0xdd, 0x4e, 0xf6, 0xb5, 0x72, 0x3d, 0x86, 0xb1, 0x2d, 0x5d, 0xeb, 0x8f, 0x45,
0x84, 0x95, 0x85, 0xbe, 0x13, 0x43, 0x4d, 0xdc, 0x3b, 0xd2, 0x2d, 0xe2, 0x8e, 0x3a, 0xce, 0xf1, 0x58, 0x69, 0xe8, 0x3b, 0x11, 0xd4, 0xc0, 0xfd, 0x23, 0xcd, 0x24, 0xce, 0xb8, 0x6d, 0x1f, 0x0f,
0x80, 0x35, 0x78, 0x1d, 0x93, 0x50, 0x9c, 0xd7, 0x41, 0xa7, 0xc8, 0xcb, 0xf5, 0x2d, 0xaa, 0x9b, 0x59, 0x83, 0xdb, 0x36, 0x08, 0xc5, 0x59, 0x1d, 0xb4, 0xf3, 0xbc, 0x1c, 0xcf, 0xa4, 0x9a, 0x41,
0x24, 0xe3, 0xf0, 0xde, 0x69, 0x0e, 0x5e, 0xef, 0x88, 0x98, 0x38, 0xe3, 0xf7, 0x76, 0x91, 0x9f, 0x52, 0x0e, 0xef, 0x9d, 0xe6, 0xe0, 0xf6, 0x8f, 0x88, 0x81, 0x53, 0x7e, 0x6f, 0xe7, 0xf9, 0x79,
0x4f, 0x75, 0xa3, 0xa3, 0x5b, 0xd4, 0xa3, 0x6e, 0xda, 0x49, 0xfd, 0x55, 0x05, 0x34, 0x37, 0x31, 0x54, 0xd3, 0xdb, 0x9a, 0x49, 0x5d, 0xea, 0x24, 0x9d, 0x5a, 0xbf, 0x29, 0x81, 0xfa, 0x36, 0x26,
0x31, 0x6d, 0x6b, 0x8f, 0x50, 0xf8, 0x18, 0x34, 0xd8, 0x30, 0xfa, 0x98, 0xe2, 0x96, 0xb2, 0xa2, 0x86, 0x65, 0x76, 0x09, 0x85, 0x8f, 0x41, 0x8d, 0x0d, 0x63, 0x80, 0x29, 0x6e, 0x28, 0x6b, 0xca,
0xac, 0x4e, 0xad, 0xdd, 0xd2, 0xe2, 0xb5, 0x88, 0x58, 0x35, 0xe7, 0x78, 0xc0, 0x1a, 0x3c, 0x8d, 0xfa, 0xcc, 0xc6, 0x2d, 0x35, 0x5a, 0x8b, 0x90, 0x55, 0xb5, 0x8f, 0x87, 0xac, 0xc1, 0x55, 0x19,
0xa1, 0xb5, 0xe1, 0x6d, 0xed, 0xe1, 0xe1, 0x27, 0xa4, 0x47, 0xb7, 0x09, 0xc5, 0x5d, 0xf8, 0xf4, 0x5a, 0x1d, 0xdd, 0x56, 0x1f, 0xf6, 0x3e, 0x21, 0x7d, 0xba, 0x4b, 0x28, 0xee, 0xc0, 0xa7, 0x27,
0x64, 0xf9, 0xd2, 0xf8, 0x64, 0x19, 0xc4, 0x6d, 0x28, 0x62, 0x85, 0xf7, 0x41, 0xcd, 0x73, 0x48, 0xab, 0x97, 0x26, 0x27, 0xab, 0x20, 0x6a, 0x43, 0x21, 0x2b, 0xbc, 0x0f, 0x2a, 0xae, 0x4d, 0xfa,
0xaf, 0x55, 0xe1, 0xec, 0xd7, 0xb4, 0x82, 0x95, 0xd6, 0xa2, 0x98, 0xf6, 0x1c, 0xd2, 0xeb, 0xbe, 0x8d, 0x12, 0x67, 0xbf, 0xa6, 0xe6, 0xac, 0xb4, 0x1a, 0xc6, 0xd4, 0xb5, 0x49, 0xbf, 0xf3, 0x8a,
0x22, 0x38, 0x6b, 0xec, 0x1f, 0xe2, 0x0c, 0x70, 0x17, 0x4c, 0x78, 0x14, 0x53, 0xdf, 0x6b, 0x55, 0xe0, 0xac, 0xb0, 0x7f, 0x88, 0x33, 0xc0, 0x7d, 0x30, 0xe5, 0x52, 0x4c, 0x3d, 0xb7, 0x51, 0xe6,
0x39, 0xd7, 0x6a, 0x09, 0x2e, 0x8e, 0xef, 0xce, 0x08, 0xb6, 0x89, 0xe0, 0x3f, 0x12, 0x3c, 0xea, 0x5c, 0xeb, 0x05, 0xb8, 0x38, 0xbe, 0x33, 0x27, 0xd8, 0xa6, 0xfc, 0xff, 0x48, 0xf0, 0xb4, 0xfe,
0x1f, 0x14, 0x30, 0x1d, 0x61, 0xb7, 0x74, 0x8f, 0xc2, 0x9f, 0x66, 0xe6, 0x43, 0x2b, 0x37, 0x1f, 0xa8, 0x80, 0xd9, 0x10, 0xbb, 0xa3, 0xb9, 0x14, 0xfe, 0x3c, 0x35, 0x1f, 0x6a, 0xb1, 0xf9, 0x60,
0xcc, 0x9b, 0xcf, 0xc6, 0x65, 0xd1, 0x57, 0x23, 0x6c, 0x49, 0xcc, 0xc5, 0x3d, 0x50, 0xd7, 0x29, 0xde, 0x7c, 0x36, 0x2e, 0x8b, 0xbe, 0x6a, 0x41, 0x4b, 0x6c, 0x2e, 0xee, 0x81, 0xaa, 0x46, 0x89,
0x31, 0xbd, 0x56, 0x65, 0xa5, 0xba, 0x3a, 0xb5, 0xa6, 0x9e, 0x3e, 0x80, 0xee, 0xb4, 0xa0, 0xab, 0xe1, 0x36, 0x4a, 0x6b, 0xe5, 0xf5, 0x99, 0x8d, 0xd6, 0xe9, 0x03, 0xe8, 0xcc, 0x0a, 0xba, 0xea,
0x3f, 0x60, 0x8e, 0x28, 0xf0, 0x57, 0x3f, 0xab, 0x25, 0x02, 0x67, 0x53, 0x04, 0x7f, 0x06, 0x1a, 0x03, 0xe6, 0x88, 0x7c, 0xff, 0xd6, 0xe7, 0x95, 0x58, 0xe0, 0x6c, 0x8a, 0xe0, 0x2f, 0x40, 0xcd,
0x1e, 0x31, 0x48, 0x8f, 0xda, 0xae, 0x08, 0xfc, 0xed, 0x92, 0x81, 0xe3, 0x43, 0x62, 0xec, 0x09, 0x25, 0x3a, 0xe9, 0x53, 0xcb, 0x11, 0x81, 0xbf, 0x5d, 0x30, 0x70, 0xdc, 0x23, 0x7a, 0x57, 0xb8,
0xd7, 0xee, 0x2b, 0x2c, 0xf2, 0xf0, 0x1f, 0x8a, 0x28, 0xe1, 0x47, 0xa0, 0x41, 0x89, 0xe9, 0x18, 0x76, 0x5e, 0x61, 0x91, 0x07, 0xff, 0x50, 0x48, 0x09, 0x3f, 0x02, 0x35, 0x4a, 0x0c, 0x5b, 0xc7,
0x98, 0x12, 0xb1, 0x92, 0xaf, 0x25, 0x83, 0x67, 0x7b, 0x8d, 0x91, 0xed, 0xda, 0xfd, 0x7d, 0x01, 0x94, 0x88, 0x95, 0x7c, 0x2d, 0x1e, 0x3c, 0xdb, 0x6b, 0x8c, 0x6c, 0xdf, 0x1a, 0x1c, 0x08, 0x18,
0xe3, 0xcb, 0x18, 0x4d, 0x46, 0xd8, 0x8a, 0x22, 0x1a, 0xe8, 0x80, 0x19, 0xdf, 0xe9, 0x33, 0x24, 0x5f, 0xc6, 0x70, 0x32, 0x82, 0x56, 0x14, 0xd2, 0x40, 0x1b, 0xcc, 0x79, 0xf6, 0x80, 0x21, 0x29,
0x65, 0xf9, 0x39, 0x18, 0x89, 0x65, 0xbd, 0x75, 0xfa, 0xac, 0x1c, 0x48, 0x7e, 0xdd, 0x05, 0xd1, 0xcb, 0xcf, 0xe1, 0x58, 0x2c, 0xeb, 0xad, 0xd3, 0x67, 0xe5, 0x50, 0xf2, 0xeb, 0x2c, 0x89, 0x5e,
0xcb, 0x8c, 0xdc, 0x8e, 0x52, 0xfc, 0x70, 0x1d, 0xcc, 0x9a, 0xba, 0x85, 0x08, 0xee, 0x8f, 0xf6, 0xe6, 0xe4, 0x76, 0x94, 0xe0, 0x87, 0x9b, 0x60, 0xde, 0xd0, 0x4c, 0x44, 0xf0, 0x60, 0xdc, 0x25,
0x48, 0xcf, 0xb6, 0xfa, 0x5e, 0xab, 0xb6, 0xa2, 0xac, 0xd6, 0xbb, 0x8b, 0x82, 0x60, 0x76, 0x5b, 0x7d, 0xcb, 0x1c, 0xb8, 0x8d, 0xca, 0x9a, 0xb2, 0x5e, 0xed, 0x2c, 0x0b, 0x82, 0xf9, 0x5d, 0xd9,
0x36, 0xa3, 0x34, 0x1e, 0x7e, 0x08, 0x60, 0x38, 0x80, 0x7b, 0xc1, 0xc6, 0xd2, 0x6d, 0xab, 0x55, 0x8c, 0x92, 0x78, 0xf8, 0x21, 0x80, 0xc1, 0x00, 0xee, 0xf9, 0x1b, 0x4b, 0xb3, 0xcc, 0x46, 0x75,
0x5f, 0x51, 0x56, 0xab, 0xdd, 0x25, 0xc1, 0x02, 0xf7, 0x33, 0x08, 0x94, 0xe3, 0x05, 0xb7, 0xc0, 0x4d, 0x59, 0x2f, 0x77, 0x56, 0x04, 0x0b, 0x3c, 0x48, 0x21, 0x50, 0x86, 0x17, 0xdc, 0x01, 0x8b,
0xbc, 0x4b, 0x86, 0xba, 0xa7, 0xdb, 0xd6, 0x7d, 0xdd, 0xa3, 0xb6, 0x3b, 0xda, 0xd2, 0x4d, 0x9d, 0x0e, 0x19, 0x69, 0xae, 0x66, 0x99, 0xf7, 0x35, 0x97, 0x5a, 0xce, 0x78, 0x47, 0x33, 0x34, 0xda,
0xb6, 0x26, 0x78, 0x4c, 0xad, 0xf1, 0xc9, 0xf2, 0x3c, 0xca, 0xb1, 0xa3, 0x5c, 0x2f, 0xf5, 0xf7, 0x98, 0xe2, 0x31, 0x35, 0x26, 0x27, 0xab, 0x8b, 0x28, 0xc3, 0x8e, 0x32, 0xbd, 0x5a, 0x7f, 0xa8,
0x75, 0x30, 0x9b, 0xca, 0x7b, 0xf8, 0x08, 0x2c, 0xf4, 0x7c, 0xd7, 0x25, 0x16, 0xdd, 0xf1, 0xcd, 0x82, 0xf9, 0x44, 0xde, 0xc3, 0x47, 0x60, 0xa9, 0xef, 0x39, 0x0e, 0x31, 0xe9, 0x9e, 0x67, 0xf4,
0x43, 0xe2, 0xee, 0xf5, 0x8e, 0x48, 0xdf, 0x37, 0x48, 0x9f, 0xa7, 0x48, 0xbd, 0xdb, 0x16, 0x11, 0x88, 0xd3, 0xed, 0x1f, 0x91, 0x81, 0xa7, 0x93, 0x01, 0x4f, 0x91, 0x6a, 0xa7, 0x29, 0x22, 0x5e,
0x2f, 0x6c, 0xe4, 0xa2, 0x50, 0x81, 0x37, 0x9b, 0x05, 0x8b, 0x37, 0x6d, 0xeb, 0x9e, 0x17, 0x71, 0xda, 0xca, 0x44, 0xa1, 0x1c, 0x6f, 0x36, 0x0b, 0x26, 0x6f, 0xda, 0xd5, 0x5c, 0x37, 0xe4, 0x2c,
0x56, 0x38, 0x67, 0x34, 0x0b, 0x3b, 0x19, 0x04, 0xca, 0xf1, 0x62, 0x31, 0xf6, 0x89, 0xa7, 0xbb, 0x71, 0xce, 0x70, 0x16, 0xf6, 0x52, 0x08, 0x94, 0xe1, 0xc5, 0x62, 0x1c, 0x10, 0x57, 0x73, 0xc8,
0xa4, 0x9f, 0x8e, 0xb1, 0x2a, 0xc7, 0xb8, 0x99, 0x8b, 0x42, 0x05, 0xde, 0xf0, 0x5d, 0x30, 0x15, 0x20, 0x19, 0x63, 0x59, 0x8e, 0x71, 0x3b, 0x13, 0x85, 0x72, 0xbc, 0xe1, 0xbb, 0x60, 0xc6, 0xef,
0xf4, 0xc6, 0xd7, 0x4f, 0x2c, 0xf4, 0x9c, 0x20, 0x9b, 0xda, 0x89, 0x4d, 0x28, 0x89, 0x63, 0x43, 0x8d, 0xaf, 0x9f, 0x58, 0xe8, 0x05, 0x41, 0x36, 0xb3, 0x17, 0x99, 0x50, 0x1c, 0xc7, 0x86, 0x66,
0xb3, 0x0f, 0x3d, 0xe2, 0x0e, 0x49, 0xbf, 0x78, 0x81, 0x1f, 0x66, 0x10, 0x28, 0xc7, 0x8b, 0x0d, 0xf5, 0x5c, 0xe2, 0x8c, 0xc8, 0x20, 0x7f, 0x81, 0x1f, 0xa6, 0x10, 0x28, 0xc3, 0x8b, 0x0d, 0xcd,
0x2d, 0xc8, 0xc0, 0xcc, 0xd0, 0x26, 0xe4, 0xa1, 0x1d, 0xe4, 0xa2, 0x50, 0x81, 0x37, 0xcb, 0xe3, 0xcf, 0xc0, 0xd4, 0xd0, 0xa6, 0xe4, 0xa1, 0x1d, 0x66, 0xa2, 0x50, 0x8e, 0x37, 0xcb, 0x63, 0x3f,
0x20, 0xe4, 0xf5, 0x21, 0xd6, 0x0d, 0x7c, 0x68, 0x90, 0xd6, 0xa4, 0x9c, 0xc7, 0x3b, 0xb2, 0x19, 0xe4, 0xcd, 0x11, 0xd6, 0x74, 0xdc, 0xd3, 0x49, 0x63, 0x5a, 0xce, 0xe3, 0x3d, 0xd9, 0x8c, 0x92,
0xa5, 0xf1, 0xf0, 0x1e, 0xb8, 0x12, 0x34, 0x1d, 0x58, 0x38, 0x22, 0x69, 0x70, 0x92, 0x57, 0x05, 0x78, 0x78, 0x0f, 0x5c, 0xf1, 0x9b, 0x0e, 0x4d, 0x1c, 0x92, 0xd4, 0x38, 0xc9, 0xab, 0x82, 0xe4,
0xc9, 0x95, 0x9d, 0x34, 0x00, 0x65, 0x7d, 0xe0, 0x1d, 0x30, 0xd3, 0xb3, 0x0d, 0x83, 0xe7, 0xe3, 0xca, 0x5e, 0x12, 0x80, 0xd2, 0x3e, 0xf0, 0x0e, 0x98, 0xeb, 0x5b, 0xba, 0xce, 0xf3, 0x71, 0xcb,
0x86, 0xed, 0x5b, 0xb4, 0xd5, 0xe4, 0x73, 0x05, 0xd9, 0x7e, 0xdc, 0x90, 0x2c, 0x28, 0x85, 0x54, 0xf2, 0x4c, 0xda, 0xa8, 0xf3, 0xb9, 0x82, 0x6c, 0x3f, 0x6e, 0x49, 0x16, 0x94, 0x40, 0xb6, 0xfe,
0xff, 0xaa, 0x80, 0xc5, 0x82, 0x3d, 0x0d, 0x7f, 0x00, 0x6a, 0x74, 0xe4, 0x10, 0x9e, 0xa8, 0xcd, 0xa6, 0x80, 0xe5, 0x9c, 0x3d, 0x0d, 0x7f, 0x04, 0x2a, 0x74, 0x6c, 0x13, 0x9e, 0xa8, 0xf5, 0xce,
0xee, 0x8d, 0xb0, 0x1c, 0xec, 0x8f, 0x1c, 0xf2, 0xf5, 0xc9, 0xf2, 0xd5, 0x02, 0x37, 0x66, 0x46, 0x8d, 0xa0, 0x1c, 0x1c, 0x8c, 0x6d, 0xf2, 0xcd, 0xc9, 0xea, 0xd5, 0x1c, 0x37, 0x66, 0x46, 0xdc,
0xdc, 0x11, 0x1e, 0x81, 0x69, 0x97, 0x75, 0x67, 0x0d, 0x02, 0x88, 0x38, 0xb6, 0x3a, 0x85, 0xa7, 0x11, 0x1e, 0x81, 0x59, 0x87, 0x75, 0x67, 0x0e, 0x7d, 0x88, 0x38, 0xb6, 0xda, 0xb9, 0xa7, 0x0b,
0x0b, 0x4a, 0xa2, 0xe3, 0x03, 0xf8, 0xca, 0xf8, 0x64, 0x79, 0x5a, 0xb2, 0x21, 0x99, 0x58, 0xfd, 0x8a, 0xa3, 0xa3, 0x03, 0xf8, 0xca, 0xe4, 0x64, 0x75, 0x56, 0xb2, 0x21, 0x99, 0xb8, 0xf5, 0xdb,
0x75, 0x05, 0x80, 0x4d, 0xe2, 0x18, 0xf6, 0xc8, 0x24, 0xd6, 0x45, 0x94, 0xd4, 0x07, 0x52, 0x49, 0x12, 0x00, 0xdb, 0xc4, 0xd6, 0xad, 0xb1, 0x41, 0xcc, 0x8b, 0x28, 0xa9, 0x0f, 0xa4, 0x92, 0xfa,
0x7d, 0xa3, 0xf8, 0xbc, 0x8c, 0x82, 0x2a, 0xac, 0xa9, 0x1f, 0xa5, 0x6a, 0xea, 0xf5, 0x32, 0x64, 0x46, 0xfe, 0x79, 0x19, 0x06, 0x95, 0x5b, 0x53, 0x3f, 0x4a, 0xd4, 0xd4, 0xeb, 0x45, 0xc8, 0x9e,
0xcf, 0x2f, 0xaa, 0x5f, 0x54, 0xc1, 0x5c, 0x0c, 0xde, 0xb0, 0xad, 0xbe, 0xce, 0x77, 0xc3, 0x5d, 0x5f, 0x54, 0xbf, 0x2c, 0x83, 0x85, 0x08, 0xbc, 0x65, 0x99, 0x03, 0x8d, 0xef, 0x86, 0xbb, 0xd2,
0x69, 0x45, 0xdf, 0x48, 0xad, 0xe8, 0x62, 0x8e, 0x4b, 0x62, 0x35, 0xb7, 0xa2, 0x38, 0x2b, 0xdc, 0x8a, 0xbe, 0x91, 0x58, 0xd1, 0xe5, 0x0c, 0x97, 0xd8, 0x6a, 0xee, 0x84, 0x71, 0x96, 0xb8, 0xfb,
0xfd, 0x1d, 0xb9, 0xf3, 0xaf, 0x4f, 0x96, 0x73, 0xa4, 0x9f, 0x16, 0x31, 0xc9, 0x21, 0xc2, 0x6b, 0x3b, 0x72, 0xe7, 0xdf, 0x9c, 0xac, 0x66, 0x48, 0x3f, 0x35, 0x64, 0x92, 0x43, 0x84, 0xd7, 0xc0,
0x60, 0xc2, 0x25, 0xd8, 0xb3, 0x2d, 0x7e, 0x2c, 0x34, 0xe3, 0xa1, 0x20, 0xde, 0x8a, 0x84, 0x15, 0x94, 0x43, 0xb0, 0x6b, 0x99, 0xfc, 0x58, 0xa8, 0x47, 0x43, 0x41, 0xbc, 0x15, 0x09, 0x2b, 0xbc,
0x5e, 0x07, 0x93, 0x26, 0xf1, 0x3c, 0x3c, 0x20, 0xfc, 0x04, 0x68, 0x76, 0x67, 0x05, 0x70, 0x72, 0x0e, 0xa6, 0x0d, 0xe2, 0xba, 0x78, 0x48, 0xf8, 0x09, 0x50, 0xef, 0xcc, 0x0b, 0xe0, 0xf4, 0xae,
0x3b, 0x68, 0x46, 0xa1, 0x1d, 0x7e, 0x02, 0x66, 0x0c, 0xec, 0x89, 0x74, 0xdc, 0xd7, 0x4d, 0xc2, 0xdf, 0x8c, 0x02, 0x3b, 0xfc, 0x04, 0xcc, 0xe9, 0xd8, 0x15, 0xe9, 0x78, 0xa0, 0x19, 0x84, 0xef,
0xf7, 0xf8, 0xd4, 0xda, 0x9b, 0xe5, 0xd6, 0x9e, 0x79, 0xc4, 0x75, 0x6c, 0x4b, 0x62, 0x42, 0x29, 0xf1, 0x99, 0x8d, 0x37, 0x8b, 0xad, 0x3d, 0xf3, 0x88, 0xea, 0xd8, 0x8e, 0xc4, 0x84, 0x12, 0xcc,
0x66, 0x38, 0x04, 0x90, 0xb5, 0xec, 0xbb, 0xd8, 0xf2, 0x82, 0x89, 0x62, 0xfd, 0x4d, 0x9e, 0xb9, 0x70, 0x04, 0x20, 0x6b, 0x39, 0x70, 0xb0, 0xe9, 0xfa, 0x13, 0xc5, 0xfa, 0x9b, 0x3e, 0x73, 0x7f,
0xbf, 0xe8, 0x3c, 0xdb, 0xca, 0xb0, 0xa1, 0x9c, 0x1e, 0xd4, 0x3f, 0x2a, 0x60, 0x26, 0x5e, 0xa6, 0xe1, 0x79, 0xb6, 0x93, 0x62, 0x43, 0x19, 0x3d, 0xb4, 0xfe, 0xa4, 0x80, 0xb9, 0x68, 0x99, 0x2e,
0x0b, 0xd0, 0x4b, 0xf7, 0x65, 0xbd, 0xf4, 0x5a, 0x89, 0xe4, 0x2c, 0x10, 0x4c, 0x5f, 0xd4, 0x92, 0x40, 0x2f, 0xdd, 0x97, 0xf5, 0xd2, 0x6b, 0x05, 0x92, 0x33, 0x47, 0x30, 0x7d, 0x59, 0x89, 0x87,
0xa1, 0x73, 0xc5, 0xb4, 0x0a, 0x1a, 0x2e, 0x71, 0x0c, 0xbd, 0x87, 0x3d, 0x51, 0x0e, 0xb9, 0xf8, 0xce, 0x15, 0xd3, 0x3a, 0xa8, 0x39, 0xc4, 0xd6, 0xb5, 0x3e, 0x76, 0x45, 0x39, 0xe4, 0xe2, 0x07,
0x41, 0xa2, 0x0d, 0x45, 0x56, 0x49, 0x5b, 0x55, 0x5e, 0xae, 0xb6, 0xaa, 0xbe, 0x18, 0x6d, 0xf5, 0x89, 0x36, 0x14, 0x5a, 0x25, 0x6d, 0x55, 0x7a, 0xb9, 0xda, 0xaa, 0xfc, 0x62, 0xb4, 0xd5, 0xcf,
0x13, 0xd0, 0xf0, 0x42, 0x55, 0x55, 0xe3, 0x94, 0x37, 0x4a, 0x6d, 0x6c, 0x21, 0xa8, 0x22, 0xea, 0x40, 0xcd, 0x0d, 0x54, 0x55, 0x85, 0x53, 0xde, 0x28, 0xb4, 0xb1, 0x85, 0xa0, 0x0a, 0xa9, 0x43,
0x48, 0x4a, 0x45, 0x74, 0x79, 0x22, 0xaa, 0x7e, 0x46, 0x11, 0xf5, 0x42, 0x85, 0x0f, 0xdb, 0xcc, 0x29, 0x15, 0xd2, 0x65, 0x89, 0xa8, 0xea, 0x19, 0x45, 0xd4, 0x0b, 0x15, 0x3e, 0x6c, 0x33, 0xdb,
0x0e, 0xf6, 0x3d, 0xd2, 0xe7, 0x3b, 0xa0, 0x11, 0x6f, 0xe6, 0x5d, 0xde, 0x8a, 0x84, 0x15, 0x1e, 0xd8, 0x73, 0xc9, 0x80, 0xef, 0x80, 0x5a, 0xb4, 0x99, 0xf7, 0x79, 0x2b, 0x12, 0x56, 0x78, 0x08,
0x80, 0x45, 0xc7, 0xb5, 0x07, 0x2e, 0xf1, 0xbc, 0x4d, 0x82, 0xfb, 0x86, 0x6e, 0x91, 0x70, 0x00, 0x96, 0x6d, 0xc7, 0x1a, 0x3a, 0xc4, 0x75, 0xb7, 0x09, 0x1e, 0xe8, 0x9a, 0x49, 0x82, 0x01, 0xd4,
0x4d, 0xde, 0xf1, 0xd5, 0xf1, 0xc9, 0xf2, 0xe2, 0x6e, 0x3e, 0x04, 0x15, 0xf9, 0xaa, 0x7f, 0xa9, 0x79, 0xc7, 0x57, 0x27, 0x27, 0xab, 0xcb, 0xfb, 0xd9, 0x10, 0x94, 0xe7, 0xdb, 0xfa, 0x6b, 0x05,
0x81, 0xcb, 0xe9, 0xb3, 0xb1, 0x40, 0x45, 0x28, 0xe7, 0x52, 0x11, 0x6f, 0x25, 0xf2, 0x34, 0x90, 0x5c, 0x4e, 0x9e, 0x8d, 0x39, 0x2a, 0x42, 0x39, 0x97, 0x8a, 0x78, 0x2b, 0x96, 0xa7, 0xbe, 0xc4,
0x58, 0xd1, 0xf2, 0xe4, 0xe4, 0xea, 0x3a, 0x98, 0x15, 0xaa, 0x21, 0x34, 0x0a, 0x1d, 0x15, 0x2d, 0x0a, 0x97, 0x27, 0x23, 0x57, 0x37, 0xc1, 0xbc, 0x50, 0x0d, 0x81, 0x51, 0xe8, 0xa8, 0x70, 0x79,
0xcf, 0x81, 0x6c, 0x46, 0x69, 0x3c, 0xd3, 0x06, 0x71, 0xc9, 0x0f, 0x49, 0x6a, 0xb2, 0x36, 0x58, 0x0e, 0x65, 0x33, 0x4a, 0xe2, 0x99, 0x36, 0x88, 0x4a, 0x7e, 0x40, 0x52, 0x91, 0xb5, 0xc1, 0x66,
0x4f, 0x03, 0x50, 0xd6, 0x07, 0x6e, 0x83, 0x39, 0xdf, 0xca, 0x52, 0x05, 0xe9, 0x72, 0x55, 0x50, 0x12, 0x80, 0xd2, 0x3e, 0x70, 0x17, 0x2c, 0x78, 0x66, 0x9a, 0xca, 0x4f, 0x97, 0xab, 0x82, 0x6a,
0xcd, 0x1d, 0x64, 0x21, 0x28, 0xcf, 0x0f, 0x3e, 0x06, 0xa0, 0x17, 0x1e, 0xe8, 0x5e, 0x6b, 0x82, 0xe1, 0x30, 0x0d, 0x41, 0x59, 0x7e, 0xf0, 0x31, 0x00, 0xfd, 0xe0, 0x40, 0x77, 0x1b, 0x53, 0xfc,
0x1f, 0x09, 0x6f, 0x95, 0x48, 0xeb, 0xa8, 0x0a, 0xc4, 0x65, 0x35, 0x6a, 0xf2, 0x50, 0x82, 0x13, 0x48, 0x78, 0xab, 0x40, 0x5a, 0x87, 0x55, 0x20, 0x2a, 0xab, 0x61, 0x93, 0x8b, 0x62, 0x9c, 0xf0,
0xde, 0x05, 0xd3, 0x2e, 0x97, 0x84, 0x61, 0xa8, 0x81, 0xac, 0xfa, 0x8e, 0x70, 0x9b, 0x46, 0x49, 0x2e, 0x98, 0x75, 0xb8, 0x24, 0x0c, 0x42, 0xf5, 0x65, 0xd5, 0xf7, 0x84, 0xdb, 0x2c, 0x8a, 0x1b,
0x23, 0x92, 0xb1, 0x39, 0x4a, 0xa8, 0x51, 0x5a, 0x09, 0xfd, 0x59, 0x01, 0x30, 0xbb, 0x0f, 0xe1, 0x91, 0x8c, 0xcd, 0x50, 0x42, 0xb5, 0xc2, 0x4a, 0xe8, 0x2f, 0x0a, 0x80, 0xe9, 0x7d, 0x08, 0xef,
0x1d, 0xa9, 0x64, 0x5e, 0x4b, 0x95, 0xcc, 0x85, 0xac, 0x47, 0xa2, 0x62, 0xea, 0xf9, 0xfa, 0xe7, 0x48, 0x25, 0xf3, 0x5a, 0xa2, 0x64, 0x2e, 0xa5, 0x3d, 0x62, 0x15, 0x53, 0xcb, 0xd6, 0x3f, 0xb7,
0x56, 0x49, 0xfd, 0x13, 0x1f, 0xa8, 0xe5, 0x04, 0x90, 0x98, 0x86, 0x8b, 0x79, 0x53, 0x28, 0x2b, 0x0a, 0xea, 0x9f, 0xe8, 0x40, 0x2d, 0x26, 0x80, 0xc4, 0x34, 0x5c, 0xcc, 0x9b, 0x42, 0x51, 0x01,
0x80, 0xe2, 0xa0, 0x5e, 0x80, 0x00, 0x4a, 0x90, 0x3d, 0x5f, 0x00, 0xfd, 0xbb, 0x02, 0xe6, 0x62, 0x14, 0x05, 0xf5, 0x02, 0x04, 0x50, 0x8c, 0xec, 0xf9, 0x02, 0xe8, 0xdf, 0x25, 0xb0, 0x10, 0x81,
0x70, 0x69, 0x01, 0x94, 0xe3, 0xf2, 0xd2, 0x04, 0x50, 0xbe, 0x82, 0xa8, 0xbe, 0x6c, 0x05, 0xf1, 0x0b, 0x0b, 0xa0, 0x0c, 0x97, 0x97, 0x26, 0x80, 0xb2, 0x15, 0x44, 0xf9, 0x65, 0x2b, 0x88, 0x97,
0x12, 0x84, 0x17, 0x17, 0x25, 0xf1, 0xd4, 0x7d, 0x93, 0x44, 0x49, 0x1c, 0x55, 0x81, 0x28, 0xf9, 0x20, 0xbc, 0xb8, 0x28, 0x89, 0xa6, 0xee, 0xff, 0x49, 0x94, 0x44, 0x51, 0xe5, 0x88, 0x92, 0xdf,
0x5d, 0x25, 0x19, 0xfa, 0xb7, 0x5e, 0x94, 0xfc, 0xef, 0xcf, 0x2f, 0xea, 0xdf, 0xaa, 0xe0, 0x72, 0x97, 0xe2, 0xa1, 0x7f, 0xe7, 0x45, 0xc9, 0xb7, 0x7f, 0x7e, 0x69, 0xfd, 0xbd, 0x0c, 0x2e, 0x27,
0x7a, 0x1f, 0x4a, 0x05, 0x52, 0x39, 0xb5, 0x40, 0xee, 0x82, 0xf9, 0x27, 0xbe, 0x61, 0x8c, 0xf8, 0xf7, 0xa1, 0x54, 0x20, 0x95, 0x53, 0x0b, 0xe4, 0x3e, 0x58, 0x7c, 0xe2, 0xe9, 0xfa, 0x98, 0x4f,
0x34, 0x24, 0xaa, 0x64, 0x50, 0x5a, 0xbf, 0x2b, 0x3c, 0xe7, 0x7f, 0x9c, 0x83, 0x41, 0xb9, 0x9e, 0x43, 0xac, 0x4a, 0xfa, 0xa5, 0xf5, 0xfb, 0xc2, 0x73, 0xf1, 0xa7, 0x19, 0x18, 0x94, 0xe9, 0x99,
0x05, 0xc5, 0xbe, 0x7a, 0xae, 0x62, 0x9f, 0xa9, 0x40, 0xb5, 0x33, 0x54, 0xa0, 0xdc, 0xc2, 0x5d, 0x53, 0xec, 0xcb, 0xe7, 0x2a, 0xf6, 0xa9, 0x0a, 0x54, 0x39, 0x43, 0x05, 0xca, 0x2c, 0xdc, 0xd5,
0x3f, 0x47, 0xe1, 0x3e, 0x5b, 0xa5, 0xcd, 0x39, 0xb8, 0x4e, 0xab, 0xb4, 0xea, 0x2f, 0x15, 0xb0, 0x73, 0x14, 0xee, 0xb3, 0x55, 0xda, 0x8c, 0x83, 0xeb, 0xb4, 0x4a, 0xdb, 0xfa, 0xb5, 0x02, 0x96,
0x90, 0x7f, 0xe1, 0x86, 0x06, 0x98, 0x31, 0xf1, 0xa7, 0xc9, 0x77, 0x89, 0xd3, 0x8a, 0x88, 0x4f, 0xb2, 0x2f, 0xdc, 0x50, 0x07, 0x73, 0x06, 0xfe, 0x34, 0xfe, 0x2e, 0x71, 0x5a, 0x11, 0xf1, 0xa8,
0x75, 0x43, 0x0b, 0x9e, 0xbb, 0xb5, 0x07, 0x16, 0x7d, 0xe8, 0xee, 0x51, 0x57, 0xb7, 0x06, 0x41, 0xa6, 0xab, 0xfe, 0x73, 0xb7, 0xfa, 0xc0, 0xa4, 0x0f, 0x9d, 0x2e, 0x75, 0x34, 0x73, 0xe8, 0x57,
0xe5, 0xdd, 0x96, 0xb8, 0x50, 0x8a, 0x5b, 0xfd, 0x4a, 0x01, 0x8b, 0x05, 0x95, 0xef, 0x62, 0x23, 0xde, 0x5d, 0x89, 0x0b, 0x25, 0xb8, 0x5b, 0x5f, 0x2b, 0x60, 0x39, 0xa7, 0xf2, 0x5d, 0x6c, 0x24,
0x81, 0x1f, 0x83, 0x86, 0x89, 0x3f, 0xdd, 0xf3, 0xdd, 0x41, 0x5e, 0xad, 0x2e, 0xd7, 0x0f, 0xdf, 0xf0, 0x63, 0x50, 0x33, 0xf0, 0xa7, 0x5d, 0xcf, 0x19, 0x66, 0xd5, 0xea, 0x62, 0xfd, 0xf0, 0xdd,
0xcd, 0xdb, 0x82, 0x05, 0x45, 0x7c, 0xea, 0x43, 0xb0, 0x22, 0x0d, 0x92, 0xed, 0x1c, 0xf2, 0xc4, 0xbc, 0x2b, 0x58, 0x50, 0xc8, 0xd7, 0x7a, 0x08, 0xd6, 0xa4, 0x41, 0xb2, 0x9d, 0x43, 0x9e, 0x78,
0x37, 0xf8, 0x26, 0x12, 0x62, 0xe3, 0x06, 0x68, 0x3a, 0xd8, 0xa5, 0x7a, 0x24, 0x55, 0xeb, 0xdd, 0x3a, 0xdf, 0x44, 0x42, 0x6c, 0xdc, 0x00, 0x75, 0x1b, 0x3b, 0x54, 0x0b, 0xa5, 0x6a, 0xb5, 0x33,
0xe9, 0xf1, 0xc9, 0x72, 0x73, 0x37, 0x6c, 0x44, 0xb1, 0x5d, 0xfd, 0x8f, 0x02, 0xea, 0x7b, 0x3d, 0x3b, 0x39, 0x59, 0xad, 0xef, 0x07, 0x8d, 0x28, 0xb2, 0xb7, 0xfe, 0xa3, 0x80, 0x6a, 0xb7, 0x8f,
0x6c, 0x90, 0x0b, 0xa8, 0xf6, 0x9b, 0x52, 0xb5, 0x2f, 0x7e, 0x34, 0xe7, 0xf1, 0x14, 0x16, 0xfa, 0x75, 0x72, 0x01, 0xd5, 0x7e, 0x5b, 0xaa, 0xf6, 0xf9, 0x8f, 0xe6, 0x3c, 0x9e, 0xdc, 0x42, 0xbf,
0xad, 0x54, 0xa1, 0x7f, 0xfd, 0x14, 0x9e, 0xe7, 0xd7, 0xf8, 0x0f, 0x40, 0x33, 0xea, 0xee, 0x6c, 0x93, 0x28, 0xf4, 0xaf, 0x9f, 0xc2, 0xf3, 0xfc, 0x1a, 0xff, 0x01, 0xa8, 0x87, 0xdd, 0x9d, 0xed,
0x07, 0x90, 0xfa, 0xdb, 0x0a, 0x98, 0x4a, 0x74, 0x71, 0xc6, 0xe3, 0xeb, 0xb1, 0x74, 0xec, 0xb3, 0x00, 0x6a, 0xfd, 0xae, 0x04, 0x66, 0x62, 0x5d, 0x9c, 0xf1, 0xf8, 0x7a, 0x2c, 0x1d, 0xfb, 0x6c,
0x8d, 0xb9, 0x56, 0x66, 0x20, 0x5a, 0x78, 0xc4, 0xff, 0xc8, 0xa2, 0x6e, 0xf2, 0x82, 0x97, 0x3d, 0x63, 0x6e, 0x14, 0x19, 0x88, 0x1a, 0x1c, 0xf1, 0x3f, 0x31, 0xa9, 0x13, 0xbf, 0xe0, 0xa5, 0x4f,
0xf9, 0xbf, 0x0f, 0x66, 0x28, 0x76, 0x07, 0x84, 0x86, 0x36, 0x3e, 0x61, 0xcd, 0xf8, 0x75, 0x62, 0xfe, 0x1f, 0x82, 0x39, 0x8a, 0x9d, 0x21, 0xa1, 0x81, 0x8d, 0x4f, 0x58, 0x3d, 0x7a, 0x9d, 0x38,
0x5f, 0xb2, 0xa2, 0x14, 0x7a, 0xe9, 0x2e, 0x98, 0x96, 0x3a, 0x83, 0x97, 0x41, 0xf5, 0x98, 0x8c, 0x90, 0xac, 0x28, 0x81, 0x5e, 0xb9, 0x0b, 0x66, 0xa5, 0xce, 0xe0, 0x65, 0x50, 0x3e, 0x26, 0x63,
0x02, 0xd9, 0x83, 0xd8, 0x4f, 0x38, 0x0f, 0xea, 0x43, 0x6c, 0xf8, 0x41, 0x9e, 0x37, 0x51, 0xf0, 0x5f, 0xf6, 0x20, 0xf6, 0x13, 0x2e, 0x82, 0xea, 0x08, 0xeb, 0x9e, 0x9f, 0xe7, 0x75, 0xe4, 0xff,
0xe7, 0x4e, 0xe5, 0x7d, 0x45, 0xfd, 0x0d, 0x9b, 0x9c, 0x38, 0x39, 0x2f, 0x20, 0xbb, 0x3e, 0x94, 0xb9, 0x53, 0x7a, 0x5f, 0x69, 0x7d, 0xc6, 0x26, 0x27, 0x4a, 0xce, 0x0b, 0xc8, 0xae, 0x0f, 0xa5,
0xb2, 0xab, 0xf8, 0x9b, 0x52, 0x72, 0xcb, 0x14, 0xe5, 0x18, 0x4a, 0xe5, 0xd8, 0x9b, 0xa5, 0xd8, 0xec, 0xca, 0xff, 0xa6, 0x14, 0xdf, 0x32, 0x79, 0x39, 0x86, 0x12, 0x39, 0xf6, 0x66, 0x21, 0xb6,
0x9e, 0x9f, 0x69, 0x7f, 0x52, 0xc0, 0x6c, 0x02, 0x7d, 0x01, 0x02, 0xe7, 0x81, 0x2c, 0x70, 0x5e, 0xe7, 0x67, 0xda, 0x9f, 0x15, 0x30, 0x1f, 0x43, 0x5f, 0x80, 0xc0, 0x79, 0x20, 0x0b, 0x9c, 0xd7,
0x2f, 0x33, 0x88, 0x02, 0x85, 0xf3, 0xf7, 0xba, 0x14, 0xfc, 0xb7, 0x5e, 0xe2, 0xfc, 0x1c, 0xcc, 0x8b, 0x0c, 0x22, 0x47, 0xe1, 0xfc, 0xa3, 0x2a, 0x05, 0xff, 0x9d, 0x97, 0x38, 0xbf, 0x04, 0x8b,
0x0f, 0x6d, 0xc3, 0x37, 0xc9, 0x86, 0x81, 0x75, 0x33, 0x04, 0xb0, 0x2a, 0x5e, 0x4d, 0xdf, 0x2d, 0x23, 0x4b, 0xf7, 0x0c, 0xb2, 0xa5, 0x63, 0xcd, 0x08, 0x00, 0xac, 0x8a, 0x97, 0x93, 0x77, 0x8b,
0x22, 0x7a, 0xe2, 0x7a, 0xba, 0x47, 0x89, 0x45, 0x1f, 0xc5, 0x9e, 0xb1, 0x0e, 0x79, 0x94, 0x43, 0x90, 0x9e, 0x38, 0xae, 0xe6, 0x52, 0x62, 0xd2, 0x47, 0x91, 0x67, 0xa4, 0x43, 0x1e, 0x65, 0xd0,
0x87, 0x72, 0x3b, 0x81, 0xef, 0x82, 0x29, 0xa6, 0x27, 0xf4, 0x1e, 0xd9, 0xc1, 0x66, 0x28, 0x9c, 0xa1, 0xcc, 0x4e, 0xe0, 0xbb, 0x60, 0x86, 0xe9, 0x09, 0xad, 0x4f, 0xf6, 0xb0, 0x11, 0x08, 0xe7,
0xa3, 0x2f, 0x1e, 0x7b, 0xb1, 0x09, 0x25, 0x71, 0xf0, 0x08, 0xcc, 0x39, 0x76, 0x7f, 0x1b, 0x5b, 0xf0, 0x8b, 0x47, 0x37, 0x32, 0xa1, 0x38, 0x0e, 0x1e, 0x81, 0x05, 0xdb, 0x1a, 0xec, 0x62, 0x13,
0x78, 0x40, 0x58, 0xd9, 0xdb, 0xe5, 0xdf, 0xc4, 0xf9, 0x63, 0x4c, 0xb3, 0xfb, 0x5e, 0x78, 0x4b, 0x0f, 0x09, 0x2b, 0x7b, 0xfb, 0xfc, 0x9b, 0x38, 0x7f, 0x8c, 0xa9, 0x77, 0xde, 0x0b, 0x6e, 0xe9,
0xdf, 0xcd, 0x42, 0xd8, 0xa5, 0x25, 0xa7, 0x99, 0x5f, 0x5a, 0xf2, 0x28, 0xa1, 0x9b, 0xf9, 0xe2, 0xfb, 0x69, 0x08, 0xbb, 0xb4, 0x64, 0x34, 0xf3, 0x4b, 0x4b, 0x16, 0x25, 0x74, 0x52, 0x5f, 0xfc,
0x17, 0xbc, 0x59, 0xae, 0x95, 0xc9, 0xb0, 0x73, 0x7e, 0xf3, 0x2b, 0x7a, 0x6b, 0x6a, 0x9c, 0xeb, 0xfc, 0x37, 0xcb, 0x8d, 0x22, 0x19, 0x76, 0xce, 0x6f, 0x7e, 0x79, 0x6f, 0x4d, 0xb5, 0x73, 0x7d,
0x23, 0xdb, 0x3f, 0xab, 0xe0, 0x4a, 0x66, 0xeb, 0xfe, 0x1f, 0x5f, 0x7b, 0x32, 0x72, 0xb1, 0x7a, 0x64, 0xfb, 0xac, 0x02, 0xae, 0xa4, 0xb6, 0xee, 0xff, 0xf0, 0xb5, 0x27, 0x25, 0x17, 0xcb, 0x67,
0x06, 0xb9, 0xb8, 0x0e, 0x66, 0xc5, 0xf7, 0xbd, 0x94, 0xda, 0x8c, 0xf4, 0xf8, 0x86, 0x6c, 0x46, 0x90, 0x8b, 0x9b, 0x60, 0x5e, 0x7c, 0xdf, 0x4b, 0xa8, 0xcd, 0x50, 0x8f, 0x6f, 0xc9, 0x66, 0x94,
0x69, 0x7c, 0xde, 0x6b, 0x53, 0xfd, 0x8c, 0xaf, 0x4d, 0xc9, 0x28, 0x82, 0x19, 0x17, 0xa9, 0x97, 0xc4, 0x67, 0xbd, 0x36, 0x55, 0xcf, 0xf8, 0xda, 0x14, 0x8f, 0xc2, 0x9f, 0x71, 0x91, 0x7a, 0xe9,
0x8d, 0x22, 0x30, 0xa3, 0x34, 0x9e, 0x55, 0xac, 0x80, 0x35, 0x62, 0x98, 0x94, 0x2b, 0xd6, 0x81, 0x28, 0x7c, 0x33, 0x4a, 0xe2, 0x59, 0xc5, 0xf2, 0x59, 0x43, 0x86, 0x69, 0xb9, 0x62, 0x1d, 0x4a,
0x64, 0x45, 0x29, 0xb4, 0xfa, 0x0f, 0x05, 0xbc, 0x5a, 0x98, 0x69, 0x70, 0x5d, 0xba, 0xb6, 0xdf, 0x56, 0x94, 0x40, 0x7f, 0xab, 0x6f, 0x58, 0xff, 0x54, 0xc0, 0xab, 0xb9, 0x59, 0x0a, 0x37, 0xa5,
0x4c, 0x5d, 0xdb, 0xbf, 0x57, 0xe8, 0x98, 0xb8, 0xbc, 0xbb, 0xf9, 0x6f, 0x31, 0x1f, 0x94, 0x7b, 0x2b, 0xff, 0xcd, 0xc4, 0x95, 0xff, 0x07, 0xb9, 0x8e, 0xb1, 0x8b, 0xbf, 0x93, 0xfd, 0x8e, 0xf3,
0x8b, 0xc9, 0x11, 0x6b, 0xa7, 0x3f, 0xca, 0x74, 0x6f, 0x3e, 0x7d, 0xd6, 0xbe, 0xf4, 0xf9, 0xb3, 0x41, 0xb1, 0x77, 0x9c, 0x0c, 0xa1, 0x77, 0xfa, 0x83, 0x4e, 0xe7, 0xe6, 0xd3, 0x67, 0xcd, 0x4b,
0xf6, 0xa5, 0x2f, 0x9f, 0xb5, 0x2f, 0xfd, 0x62, 0xdc, 0x56, 0x9e, 0x8e, 0xdb, 0xca, 0xe7, 0xe3, 0x5f, 0x3c, 0x6b, 0x5e, 0xfa, 0xea, 0x59, 0xf3, 0xd2, 0xaf, 0x26, 0x4d, 0xe5, 0xe9, 0xa4, 0xa9,
0xb6, 0xf2, 0xe5, 0xb8, 0xad, 0xfc, 0x6b, 0xdc, 0x56, 0x3e, 0xfb, 0xaa, 0x7d, 0xe9, 0xe3, 0x49, 0x7c, 0x31, 0x69, 0x2a, 0x5f, 0x4d, 0x9a, 0xca, 0xbf, 0x26, 0x4d, 0xe5, 0xf3, 0xaf, 0x9b, 0x97,
0xd1, 0xe3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x86, 0x7b, 0x61, 0x7b, 0xc4, 0x23, 0x00, 0x00, 0x3e, 0x9e, 0x16, 0x3d, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0x13, 0xf6, 0xf1, 0xb6, 0x00, 0x24,
0x00, 0x00,
} }

View File

@ -666,6 +666,12 @@ message StatefulSetStatus {
// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence
// [replicas-updatedReplicas,replicas) // [replicas-updatedReplicas,replicas)
optional string updateRevision = 7; 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 int64 collisionCount = 9;
} }
// WIP: This is not ready to be used and we plan to make breaking changes to it. // WIP: This is not ready to be used and we plan to make breaking changes to it.

View File

@ -252,6 +252,12 @@ type StatefulSetStatus struct {
// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence
// [replicas-updatedReplicas,replicas) // [replicas-updatedReplicas,replicas)
UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` 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 *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"`
} }
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

View File

@ -328,6 +328,7 @@ var map_StatefulSetStatus = map[string]string{
"updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "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).", "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)", "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.",
} }
func (StatefulSetStatus) SwaggerDoc() map[string]string { func (StatefulSetStatus) SwaggerDoc() map[string]string {

View File

@ -787,7 +787,7 @@ func (in *StatefulSet) DeepCopyInto(out *StatefulSet) {
out.TypeMeta = in.TypeMeta out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec) in.Spec.DeepCopyInto(&out.Spec)
out.Status = in.Status in.Status.DeepCopyInto(&out.Status)
return return
} }
@ -899,6 +899,15 @@ func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {
*out = *in *out = *in
if in.CollisionCount != nil {
in, out := &in.CollisionCount, &out.CollisionCount
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
return return
} }