Merge pull request #44774 from kargakis/uniquifier
Automatic merge from submit-queue Switch Deployments to new hashing algo w/ collision avoidance mechanism Implements https://github.com/kubernetes/community/pull/477 @kubernetes/sig-apps-api-reviews @kubernetes/sig-apps-pr-reviews Fixes https://github.com/kubernetes/kubernetes/issues/29735 Fixes https://github.com/kubernetes/kubernetes/issues/43948 ```release-note Deployments are updated to use (1) a more stable hashing algorithm (fnv) than the previous one (adler) and (2) a hashing collision avoidance mechanism that will ensure new rollouts will not block on hashing collisions anymore. ```
This commit is contained in:
@@ -47259,6 +47259,11 @@
|
||||
"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": "int64"
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Represents the latest available observations of a deployment's current state.",
|
||||
"type": "array",
|
||||
@@ -49477,6 +49482,11 @@
|
||||
"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": "int64"
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Represents the latest available observations of a deployment's current state.",
|
||||
"type": "array",
|
||||
|
@@ -4706,6 +4706,11 @@
|
||||
"$ref": "v1beta1.DeploymentCondition"
|
||||
},
|
||||
"description": "Represents the latest available observations of a deployment's current state."
|
||||
},
|
||||
"collisionCount": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@@ -9408,6 +9408,11 @@
|
||||
"$ref": "v1beta1.DeploymentCondition"
|
||||
},
|
||||
"description": "Represents the latest available observations of a deployment's current state."
|
||||
},
|
||||
"collisionCount": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@@ -466,6 +466,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_deploymentcondition">v1beta1.DeploymentCondition</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</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">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.</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>
|
||||
</table>
|
||||
|
||||
@@ -6470,7 +6477,7 @@ Examples:<br>
|
||||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2017-05-22 06:32:54 UTC
|
||||
Last updated 2017-05-25 09:31:33 UTC
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
@@ -496,6 +496,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_deploymentcondition">v1beta1.DeploymentCondition</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</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">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.</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>
|
||||
</table>
|
||||
|
||||
@@ -8110,7 +8117,7 @@ Both these may change in the future. Incoming requests are matched against the h
|
||||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2017-05-22 06:33:43 UTC
|
||||
Last updated 2017-05-25 09:32:15 UTC
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
@@ -13315,6 +13315,11 @@
|
||||
"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": "int64"
|
||||
},
|
||||
"conditions": {
|
||||
"description": "Represents the latest available observations of a deployment's current state.",
|
||||
"type": "array",
|
||||
|
@@ -7152,6 +7152,11 @@
|
||||
"$ref": "v1beta1.DeploymentCondition"
|
||||
},
|
||||
"description": "Represents the latest available observations of a deployment's current state."
|
||||
},
|
||||
"collisionCount": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"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."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@@ -478,6 +478,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
|
||||
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_deploymentcondition">v1beta1.DeploymentCondition</a> array</p></td>
|
||||
<td class="tableblock halign-left valign-top"></td>
|
||||
</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">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.</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>
|
||||
</table>
|
||||
|
||||
@@ -7190,7 +7197,7 @@ Both these may change in the future. Incoming requests are matched against the h
|
||||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2017-05-22 07:30:41 UTC
|
||||
Last updated 2017-05-25 09:37:16 UTC
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
@@ -455,6 +455,11 @@ func (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {
|
||||
dAtA[i] = 0x38
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
dAtA[i] = 0x40
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))
|
||||
}
|
||||
return i, nil
|
||||
}
|
||||
|
||||
@@ -954,6 +959,9 @@ func (m *DeploymentStatus) Size() (n int) {
|
||||
}
|
||||
}
|
||||
n += 1 + sovGenerated(uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
n += 1 + sovGenerated(uint64(*m.CollisionCount))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -1190,6 +1198,7 @@ func (this *DeploymentStatus) String() string {
|
||||
`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
|
||||
@@ -2478,6 +2487,26 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error {
|
||||
break
|
||||
}
|
||||
}
|
||||
case 8:
|
||||
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:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@@ -3891,103 +3920,105 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptorGenerated = []byte{
|
||||
// 1561 bytes of a gzipped FileDescriptorProto
|
||||
// 1585 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x6f, 0x1b, 0xb7,
|
||||
0x12, 0xf7, 0xda, 0x92, 0x2d, 0xd3, 0xb1, 0x1c, 0xd3, 0x7e, 0xb1, 0x9e, 0xf3, 0x20, 0x07, 0x3a,
|
||||
0xe4, 0xe3, 0x21, 0x59, 0xbd, 0x38, 0x79, 0xf9, 0x72, 0x11, 0xd4, 0x4a, 0xd2, 0x34, 0x85, 0xdd,
|
||||
0x18, 0x94, 0x1d, 0x34, 0x69, 0x0a, 0x94, 0x5a, 0x31, 0x6b, 0xc6, 0xfb, 0x85, 0x25, 0x25, 0x44,
|
||||
0xb7, 0x5e, 0x7a, 0x28, 0xd0, 0x43, 0x4f, 0xbd, 0x15, 0xed, 0xb9, 0x28, 0xd0, 0x7f, 0xc3, 0x68,
|
||||
0x2f, 0x39, 0x16, 0x3d, 0x18, 0xb5, 0xf3, 0x5f, 0xe4, 0x54, 0x90, 0xcb, 0xfd, 0xd2, 0xae, 0xfc,
|
||||
0xa1, 0xa2, 0xb9, 0xf4, 0xa6, 0xe5, 0xcc, 0xef, 0x37, 0x43, 0x72, 0x66, 0x38, 0x23, 0x70, 0x73,
|
||||
0xe7, 0x16, 0xd3, 0xa9, 0x5b, 0xdf, 0xe9, 0xb4, 0x88, 0xef, 0x10, 0x4e, 0x58, 0xdd, 0xdb, 0x31,
|
||||
0xeb, 0xd8, 0xa3, 0xac, 0x8e, 0x3d, 0x8f, 0xd5, 0xbb, 0x57, 0x5b, 0x84, 0xe3, 0xab, 0x75, 0x93,
|
||||
0x38, 0xc4, 0xc7, 0x9c, 0xb4, 0x75, 0xcf, 0x77, 0xb9, 0x0b, 0x2f, 0x04, 0x40, 0x3d, 0x06, 0xea,
|
||||
0xde, 0x8e, 0xa9, 0x0b, 0xa0, 0x2e, 0x80, 0xba, 0x02, 0x2e, 0x5e, 0x31, 0x29, 0xdf, 0xee, 0xb4,
|
||||
0x74, 0xc3, 0xb5, 0xeb, 0xa6, 0x6b, 0xba, 0x75, 0x89, 0x6f, 0x75, 0x5e, 0xc8, 0x2f, 0xf9, 0x21,
|
||||
0x7f, 0x05, 0xbc, 0x8b, 0xd7, 0x95, 0x43, 0xd8, 0xa3, 0x36, 0x36, 0xb6, 0xa9, 0x43, 0xfc, 0x5e,
|
||||
0xec, 0x92, 0x4d, 0x38, 0xae, 0x77, 0x33, 0xde, 0x2c, 0xd6, 0x07, 0xa1, 0xfc, 0x8e, 0xc3, 0xa9,
|
||||
0x4d, 0x32, 0x80, 0x1b, 0x47, 0x01, 0x98, 0xb1, 0x4d, 0x6c, 0x9c, 0xc1, 0x5d, 0x1b, 0x84, 0xeb,
|
||||
0x70, 0x6a, 0xd5, 0xa9, 0xc3, 0x19, 0xf7, 0x33, 0xa0, 0xc4, 0x9e, 0x18, 0xf1, 0xbb, 0xc4, 0x8f,
|
||||
0x37, 0x44, 0x5e, 0x61, 0xdb, 0xb3, 0x48, 0xde, 0x9e, 0x2e, 0x0f, 0xbc, 0x9a, 0x3c, 0xed, 0xdb,
|
||||
0x87, 0x5c, 0xa4, 0xe7, 0x5a, 0xd4, 0xe8, 0x0d, 0xba, 0xca, 0xda, 0x4f, 0xa3, 0x00, 0xdc, 0x27,
|
||||
0x9e, 0xe5, 0xf6, 0x6c, 0xe2, 0x70, 0xf8, 0x39, 0x28, 0x89, 0x63, 0x6e, 0x63, 0x8e, 0x2b, 0xda,
|
||||
0x39, 0xed, 0xe2, 0xd4, 0xf2, 0xff, 0x74, 0x75, 0xd9, 0xc9, 0x5d, 0xc7, 0xd7, 0x2d, 0xb4, 0xf5,
|
||||
0xee, 0x55, 0xfd, 0x71, 0xeb, 0x25, 0x31, 0xf8, 0x3a, 0xe1, 0xb8, 0x01, 0x77, 0xf7, 0x96, 0x46,
|
||||
0x0e, 0xf6, 0x96, 0x40, 0xbc, 0x86, 0x22, 0x56, 0xf8, 0x14, 0x14, 0x98, 0x47, 0x8c, 0xca, 0xa8,
|
||||
0x64, 0xbf, 0xa9, 0x1f, 0x33, 0x94, 0xf4, 0xd8, 0xc9, 0xa6, 0x47, 0x8c, 0xc6, 0x29, 0x65, 0xa4,
|
||||
0x20, 0xbe, 0x90, 0xa4, 0x84, 0x18, 0x8c, 0x33, 0x8e, 0x79, 0x87, 0x55, 0xc6, 0x24, 0xf9, 0xed,
|
||||
0x61, 0xc8, 0x25, 0x41, 0xa3, 0xac, 0xe8, 0xc7, 0x83, 0x6f, 0xa4, 0x88, 0x6b, 0xfb, 0x63, 0x60,
|
||||
0x2e, 0x56, 0xbe, 0xe7, 0x3a, 0x6d, 0xca, 0xa9, 0xeb, 0xc0, 0x15, 0x50, 0xe0, 0x3d, 0x8f, 0xc8,
|
||||
0x33, 0x9b, 0x6c, 0x5c, 0x08, 0x9d, 0xdb, 0xec, 0x79, 0xe4, 0xed, 0xde, 0xd2, 0x42, 0x0e, 0x44,
|
||||
0x88, 0x90, 0x04, 0xc1, 0x27, 0x91, 0xdf, 0xa3, 0x12, 0x7e, 0x37, 0x6d, 0xfc, 0xed, 0xde, 0xd2,
|
||||
0xa1, 0xe1, 0xa0, 0x47, 0x9c, 0x69, 0x67, 0xe1, 0x79, 0x30, 0xee, 0x13, 0xcc, 0x5c, 0xa7, 0x52,
|
||||
0x90, 0xbc, 0xd1, 0xa6, 0x90, 0x5c, 0x45, 0x4a, 0x0a, 0x2f, 0x81, 0x09, 0x9b, 0x30, 0x86, 0x4d,
|
||||
0x52, 0x29, 0x4a, 0xc5, 0x19, 0xa5, 0x38, 0xb1, 0x1e, 0x2c, 0xa3, 0x50, 0x0e, 0x5f, 0x82, 0xb2,
|
||||
0x85, 0x19, 0xdf, 0xf2, 0xda, 0x98, 0x93, 0x4d, 0x6a, 0x93, 0xca, 0xb8, 0x3c, 0xea, 0xff, 0x1e,
|
||||
0x2f, 0x4a, 0x04, 0xa2, 0x71, 0x46, 0xb1, 0x97, 0xd7, 0x52, 0x4c, 0xa8, 0x8f, 0x19, 0x76, 0x01,
|
||||
0x14, 0x2b, 0x9b, 0x3e, 0x76, 0x58, 0x70, 0x64, 0xc2, 0xde, 0xc4, 0x89, 0xed, 0x2d, 0x2a, 0x7b,
|
||||
0x70, 0x2d, 0xc3, 0x86, 0x72, 0x2c, 0xd4, 0x76, 0x35, 0x50, 0x8e, 0x2f, 0x6c, 0x8d, 0x32, 0x0e,
|
||||
0x9f, 0x67, 0xd2, 0x42, 0x3f, 0x9e, 0x03, 0x02, 0x2d, 0x93, 0xe2, 0xb4, 0x72, 0xa2, 0x14, 0xae,
|
||||
0x24, 0x52, 0xe2, 0x13, 0x50, 0xa4, 0x9c, 0xd8, 0xe2, 0xfa, 0xc7, 0x2e, 0x4e, 0x2d, 0x5f, 0x1b,
|
||||
0x22, 0x6c, 0x1b, 0xd3, 0x8a, 0xbf, 0xf8, 0x48, 0x30, 0xa1, 0x80, 0xb0, 0xf6, 0xf5, 0x18, 0x80,
|
||||
0xb1, 0x12, 0x72, 0x2d, 0xab, 0x85, 0x8d, 0x1d, 0x78, 0x0e, 0x14, 0x1c, 0x6c, 0x87, 0xd1, 0x1a,
|
||||
0xa5, 0xd2, 0xc7, 0xd8, 0x26, 0x48, 0x4a, 0xe0, 0xf7, 0x1a, 0x80, 0x1d, 0x79, 0x15, 0xed, 0x55,
|
||||
0xc7, 0x71, 0x39, 0x16, 0xa7, 0x13, 0x3a, 0xd8, 0x1c, 0xc2, 0xc1, 0xd0, 0xb6, 0xbe, 0x95, 0x61,
|
||||
0x7d, 0xe0, 0x70, 0xbf, 0x17, 0xdf, 0x52, 0x56, 0x01, 0xe5, 0xb8, 0x02, 0x77, 0x00, 0xf0, 0x15,
|
||||
0xe7, 0xa6, 0xab, 0x12, 0xfe, 0xf8, 0xd5, 0x24, 0x74, 0xe7, 0x9e, 0xeb, 0xbc, 0xa0, 0x66, 0x5c,
|
||||
0xb2, 0x50, 0x44, 0x89, 0x12, 0xf4, 0x8b, 0x0f, 0xc0, 0xc2, 0x00, 0xbf, 0xe1, 0x69, 0x30, 0xb6,
|
||||
0x43, 0x7a, 0xc1, 0x51, 0x22, 0xf1, 0x13, 0xce, 0x83, 0x62, 0x17, 0x5b, 0x1d, 0x12, 0x64, 0x33,
|
||||
0x0a, 0x3e, 0xee, 0x8c, 0xde, 0xd2, 0x6a, 0xbf, 0x17, 0x93, 0x91, 0x25, 0x2a, 0x17, 0xbc, 0x08,
|
||||
0x4a, 0x3e, 0xf1, 0x2c, 0x6a, 0x60, 0x26, 0x39, 0x8a, 0x8d, 0x53, 0x22, 0x4a, 0x90, 0x5a, 0x43,
|
||||
0x91, 0x14, 0x7e, 0x06, 0x4a, 0x8c, 0x58, 0xc4, 0xe0, 0xae, 0xaf, 0x8a, 0xe7, 0xb5, 0x63, 0xc6,
|
||||
0x20, 0x6e, 0x11, 0xab, 0xa9, 0xa0, 0x01, 0x7d, 0xf8, 0x85, 0x22, 0x4a, 0xf8, 0x29, 0x28, 0x71,
|
||||
0x62, 0x7b, 0x16, 0xe6, 0x44, 0x9d, 0xe6, 0x95, 0xc1, 0xa7, 0x29, 0x68, 0x37, 0xdc, 0xf6, 0xa6,
|
||||
0x02, 0xc8, 0x8a, 0x1c, 0x45, 0x78, 0xb8, 0x8a, 0x22, 0x42, 0x48, 0x41, 0x89, 0x71, 0xf1, 0xec,
|
||||
0x98, 0x3d, 0x59, 0x8b, 0xa6, 0x96, 0x57, 0x86, 0xaa, 0xcd, 0x01, 0x45, 0x6c, 0x2a, 0x5c, 0x41,
|
||||
0x11, 0x3d, 0x5c, 0x05, 0x33, 0x36, 0x75, 0x10, 0xc1, 0xed, 0x5e, 0x93, 0x18, 0xae, 0xd3, 0x66,
|
||||
0xb2, 0xa8, 0x15, 0x1b, 0x0b, 0x0a, 0x34, 0xb3, 0x9e, 0x16, 0xa3, 0x7e, 0x7d, 0xb8, 0x06, 0xe6,
|
||||
0x7d, 0xd2, 0xa5, 0x8c, 0xba, 0xce, 0x87, 0x94, 0x71, 0xd7, 0xef, 0xad, 0x51, 0x9b, 0x72, 0x59,
|
||||
0xea, 0x8a, 0x8d, 0xca, 0xc1, 0xde, 0xd2, 0x3c, 0xca, 0x91, 0xa3, 0x5c, 0x94, 0xa8, 0xc2, 0x1e,
|
||||
0xee, 0x30, 0xd2, 0x96, 0xa5, 0xab, 0x14, 0x57, 0xe1, 0x0d, 0xb9, 0x8a, 0x94, 0x14, 0x9a, 0xa9,
|
||||
0x80, 0x2e, 0xfd, 0xb5, 0x80, 0x2e, 0x0f, 0x0e, 0x66, 0xb8, 0x05, 0x16, 0x3c, 0xdf, 0x35, 0x7d,
|
||||
0xc2, 0xd8, 0x7d, 0x82, 0xdb, 0x16, 0x75, 0x48, 0x78, 0x52, 0x93, 0x72, 0x87, 0x67, 0x0f, 0xf6,
|
||||
0x96, 0x16, 0x36, 0xf2, 0x55, 0xd0, 0x20, 0x6c, 0xed, 0xdb, 0x02, 0x38, 0xdd, 0xff, 0x8e, 0xc2,
|
||||
0x8f, 0x00, 0x74, 0x5b, 0xb2, 0xef, 0x69, 0x3f, 0x0c, 0x3a, 0x0f, 0xea, 0x3a, 0x32, 0xd0, 0xc7,
|
||||
0xe2, 0x8c, 0x7f, 0x9c, 0xd1, 0x40, 0x39, 0x28, 0x78, 0x39, 0x91, 0x2a, 0xa3, 0xd2, 0xd1, 0x28,
|
||||
0x0e, 0x72, 0xd2, 0x65, 0x15, 0xcc, 0xa8, 0xaa, 0x11, 0x0a, 0x65, 0x58, 0x27, 0xe2, 0x60, 0x2b,
|
||||
0x2d, 0x46, 0xfd, 0xfa, 0xf0, 0x21, 0x98, 0xc5, 0x5d, 0x4c, 0x2d, 0xdc, 0xb2, 0x48, 0x44, 0x52,
|
||||
0x90, 0x24, 0xff, 0x56, 0x24, 0xb3, 0xab, 0xfd, 0x0a, 0x28, 0x8b, 0x81, 0xeb, 0x60, 0xae, 0xe3,
|
||||
0x64, 0xa9, 0x82, 0xb8, 0x3c, 0xab, 0xa8, 0xe6, 0xb6, 0xb2, 0x2a, 0x28, 0x0f, 0x07, 0x3d, 0x00,
|
||||
0x8c, 0xf0, 0xc9, 0x67, 0x95, 0x71, 0x59, 0x93, 0xdf, 0x1b, 0x22, 0x9f, 0xa2, 0xbe, 0x21, 0xae,
|
||||
0x7f, 0xd1, 0x12, 0x43, 0x09, 0x1b, 0x70, 0x05, 0x4c, 0xfb, 0x22, 0x43, 0x22, 0xd7, 0x27, 0xa4,
|
||||
0xeb, 0xff, 0x52, 0xb0, 0x69, 0x94, 0x14, 0xa2, 0xb4, 0x6e, 0xed, 0x57, 0x2d, 0xf9, 0x08, 0x85,
|
||||
0x29, 0x0b, 0xef, 0xa4, 0x5a, 0xa6, 0xf3, 0x7d, 0x2d, 0xd3, 0x99, 0x2c, 0x22, 0xd1, 0x31, 0xf5,
|
||||
0xc0, 0xb4, 0x08, 0x68, 0xea, 0x98, 0xc1, 0x25, 0xaa, 0x82, 0xf8, 0xfe, 0x89, 0xd2, 0x25, 0x42,
|
||||
0x27, 0x9e, 0xd1, 0x59, 0xb9, 0x9b, 0xa4, 0x10, 0xa5, 0x2d, 0xd5, 0xee, 0x82, 0x72, 0x3a, 0xd7,
|
||||
0x82, 0xb8, 0x0c, 0x12, 0x5f, 0x45, 0x76, 0x22, 0x2e, 0x83, 0x75, 0x14, 0x69, 0xd4, 0xde, 0x68,
|
||||
0x60, 0x61, 0x80, 0x75, 0x68, 0x81, 0xb2, 0x8d, 0x5f, 0x25, 0xe2, 0xe0, 0xc8, 0x1e, 0x5c, 0x4c,
|
||||
0x1e, 0x7a, 0x30, 0x79, 0xe8, 0x8f, 0x1c, 0xfe, 0xd8, 0x6f, 0x72, 0x9f, 0x3a, 0x66, 0x03, 0x8a,
|
||||
0xfe, 0x6a, 0x3d, 0xc5, 0x85, 0xfa, 0xb8, 0xe1, 0x33, 0x50, 0xb2, 0xf1, 0xab, 0x66, 0xc7, 0x37,
|
||||
0xc3, 0xf3, 0x3b, 0xb9, 0x1d, 0xf9, 0x9a, 0xac, 0x2b, 0x16, 0x14, 0xf1, 0xd5, 0xbe, 0x1b, 0x05,
|
||||
0xc5, 0xa6, 0x81, 0x2d, 0xf2, 0x0e, 0x26, 0x8a, 0xcd, 0xd4, 0x44, 0xb1, 0x7c, 0xec, 0x18, 0x90,
|
||||
0xfe, 0x0d, 0x1c, 0x26, 0x9e, 0xf7, 0x0d, 0x13, 0xd7, 0x4f, 0xc8, 0x7b, 0xf8, 0x1c, 0x71, 0x1b,
|
||||
0x4c, 0x46, 0xe6, 0x53, 0x85, 0x4d, 0x3b, 0xaa, 0xb0, 0xd5, 0x7e, 0x1c, 0x05, 0x53, 0x09, 0x13,
|
||||
0x27, 0x43, 0x43, 0x2f, 0xd5, 0x45, 0x88, 0xca, 0xd1, 0x18, 0x66, 0x63, 0x7a, 0xd8, 0x41, 0x04,
|
||||
0xcd, 0x5b, 0xfc, 0x20, 0x67, 0x1b, 0x8b, 0xbb, 0xa0, 0xcc, 0xb1, 0x6f, 0x12, 0x1e, 0xca, 0xe4,
|
||||
0x81, 0x4e, 0xc6, 0x63, 0xc0, 0x66, 0x4a, 0x8a, 0xfa, 0xb4, 0x17, 0x57, 0xc0, 0x74, 0xca, 0xd8,
|
||||
0x89, 0x3a, 0xae, 0x9f, 0xc5, 0x61, 0x71, 0xcc, 0xc9, 0x8b, 0x8e, 0xd5, 0x24, 0xef, 0x62, 0xbe,
|
||||
0x7d, 0x96, 0x8a, 0xc6, 0x5b, 0xc7, 0x3f, 0xdc, 0xd8, 0xcb, 0x81, 0x31, 0xd9, 0xea, 0x8b, 0xc9,
|
||||
0x3b, 0x43, 0xb1, 0x1f, 0x1e, 0x99, 0xbf, 0x68, 0x60, 0x26, 0xa1, 0xfd, 0x0e, 0xc6, 0x9f, 0xa7,
|
||||
0xe9, 0xf1, 0xe7, 0xfa, 0x30, 0x9b, 0x1a, 0x30, 0xff, 0xfc, 0x50, 0x48, 0x6d, 0xe6, 0x1f, 0xd4,
|
||||
0x71, 0x7f, 0xa9, 0x81, 0xf9, 0xae, 0x6b, 0x75, 0x6c, 0x72, 0xcf, 0xc2, 0xd4, 0x0e, 0x35, 0x44,
|
||||
0xff, 0x72, 0xc4, 0x8c, 0x29, 0x2d, 0x11, 0x9f, 0x51, 0xc6, 0x89, 0xc3, 0x9f, 0xc4, 0x1c, 0x8d,
|
||||
0xff, 0x28, 0x7b, 0xf3, 0x4f, 0x72, 0x88, 0x51, 0xae, 0x39, 0xf8, 0x7f, 0x30, 0x25, 0x1a, 0x39,
|
||||
0x6a, 0x10, 0x31, 0x5d, 0xaa, 0xff, 0x17, 0xe6, 0x14, 0xd1, 0x54, 0x33, 0x16, 0xa1, 0xa4, 0x1e,
|
||||
0xdc, 0x06, 0x73, 0x9e, 0xdb, 0x5e, 0xc7, 0x0e, 0x36, 0x89, 0x78, 0x1a, 0x37, 0xe4, 0xbf, 0x58,
|
||||
0xb2, 0x03, 0x9f, 0x6c, 0xdc, 0x08, 0x3b, 0xa6, 0x8d, 0xac, 0xca, 0x5b, 0xd1, 0xba, 0x66, 0x97,
|
||||
0x65, 0xef, 0x90, 0x47, 0x59, 0xfb, 0x4a, 0x03, 0xb3, 0x99, 0xec, 0x80, 0x1f, 0x1c, 0xd2, 0xb7,
|
||||
0x9e, 0xf9, 0xbb, 0x7a, 0xd6, 0xc6, 0xa5, 0xdd, 0xfd, 0xea, 0xc8, 0xeb, 0xfd, 0xea, 0xc8, 0x6f,
|
||||
0xfb, 0xd5, 0x91, 0x2f, 0x0e, 0xaa, 0xda, 0xee, 0x41, 0x55, 0x7b, 0x7d, 0x50, 0xd5, 0xfe, 0x38,
|
||||
0xa8, 0x6a, 0xdf, 0xbc, 0xa9, 0x8e, 0x3c, 0x9b, 0x50, 0xb1, 0xff, 0x67, 0x00, 0x00, 0x00, 0xff,
|
||||
0xff, 0xdb, 0x8b, 0x00, 0x6d, 0xbc, 0x15, 0x00, 0x00,
|
||||
0xe4, 0xe3, 0x21, 0x59, 0xbd, 0x38, 0x79, 0xf9, 0xb0, 0x8b, 0xa0, 0x96, 0x93, 0xa6, 0x29, 0xec,
|
||||
0xc6, 0xa0, 0xec, 0xa0, 0x49, 0x53, 0xa0, 0xd4, 0x8a, 0x59, 0x33, 0xde, 0x2f, 0x2c, 0x29, 0x21,
|
||||
0xba, 0xf5, 0xd2, 0x43, 0x81, 0x1e, 0xfa, 0x0f, 0x14, 0xed, 0xb9, 0x28, 0xd0, 0x7f, 0xc3, 0x68,
|
||||
0x2f, 0x41, 0x4f, 0x45, 0x0f, 0x46, 0xed, 0xfc, 0x17, 0x39, 0x15, 0xe4, 0x72, 0xbf, 0xb4, 0x92,
|
||||
0x2d, 0xab, 0x68, 0x2e, 0xbd, 0x69, 0x39, 0xf3, 0xfb, 0xcd, 0x90, 0x9c, 0x19, 0xce, 0x08, 0xdc,
|
||||
0xde, 0xbb, 0xc3, 0x74, 0xea, 0x56, 0xf7, 0x5a, 0x0d, 0xe2, 0x3b, 0x84, 0x13, 0x56, 0xf5, 0xf6,
|
||||
0xcc, 0x2a, 0xf6, 0x28, 0xab, 0x62, 0xcf, 0x63, 0xd5, 0xf6, 0xf5, 0x06, 0xe1, 0xf8, 0x7a, 0xd5,
|
||||
0x24, 0x0e, 0xf1, 0x31, 0x27, 0x4d, 0xdd, 0xf3, 0x5d, 0xee, 0xc2, 0x4b, 0x01, 0x50, 0x8f, 0x81,
|
||||
0xba, 0xb7, 0x67, 0xea, 0x02, 0xa8, 0x0b, 0xa0, 0xae, 0x80, 0x8b, 0xd7, 0x4c, 0xca, 0x77, 0x5b,
|
||||
0x0d, 0xdd, 0x70, 0xed, 0xaa, 0xe9, 0x9a, 0x6e, 0x55, 0xe2, 0x1b, 0xad, 0x17, 0xf2, 0x4b, 0x7e,
|
||||
0xc8, 0x5f, 0x01, 0xef, 0xe2, 0x4d, 0xe5, 0x10, 0xf6, 0xa8, 0x8d, 0x8d, 0x5d, 0xea, 0x10, 0xbf,
|
||||
0x13, 0xbb, 0x64, 0x13, 0x8e, 0xab, 0xed, 0x8c, 0x37, 0x8b, 0xd5, 0x7e, 0x28, 0xbf, 0xe5, 0x70,
|
||||
0x6a, 0x93, 0x0c, 0xe0, 0xd6, 0x49, 0x00, 0x66, 0xec, 0x12, 0x1b, 0x67, 0x70, 0x37, 0xfa, 0xe1,
|
||||
0x5a, 0x9c, 0x5a, 0x55, 0xea, 0x70, 0xc6, 0xfd, 0x0c, 0x28, 0xb1, 0x27, 0x46, 0xfc, 0x36, 0xf1,
|
||||
0xe3, 0x0d, 0x91, 0x57, 0xd8, 0xf6, 0x2c, 0xd2, 0x6b, 0x4f, 0x57, 0xfb, 0x5e, 0x4d, 0x2f, 0xed,
|
||||
0xbb, 0xc7, 0x5c, 0xa4, 0xe7, 0x5a, 0xd4, 0xe8, 0xf4, 0xbb, 0xca, 0xca, 0x8f, 0xa3, 0x00, 0xdc,
|
||||
0x27, 0x9e, 0xe5, 0x76, 0x6c, 0xe2, 0x70, 0xf8, 0x39, 0x28, 0x88, 0x63, 0x6e, 0x62, 0x8e, 0x4b,
|
||||
0xda, 0x05, 0xed, 0xf2, 0xd4, 0xf2, 0xff, 0x74, 0x75, 0xd9, 0xc9, 0x5d, 0xc7, 0xd7, 0x2d, 0xb4,
|
||||
0xf5, 0xf6, 0x75, 0xfd, 0x71, 0xe3, 0x25, 0x31, 0xf8, 0x26, 0xe1, 0xb8, 0x06, 0xf7, 0x0f, 0x96,
|
||||
0x46, 0x8e, 0x0e, 0x96, 0x40, 0xbc, 0x86, 0x22, 0x56, 0xf8, 0x14, 0xe4, 0x98, 0x47, 0x8c, 0xd2,
|
||||
0xa8, 0x64, 0xbf, 0xad, 0x0f, 0x18, 0x4a, 0x7a, 0xec, 0x64, 0xdd, 0x23, 0x46, 0xed, 0x8c, 0x32,
|
||||
0x92, 0x13, 0x5f, 0x48, 0x52, 0x42, 0x0c, 0xc6, 0x19, 0xc7, 0xbc, 0xc5, 0x4a, 0x63, 0x92, 0xfc,
|
||||
0xee, 0x30, 0xe4, 0x92, 0xa0, 0x56, 0x54, 0xf4, 0xe3, 0xc1, 0x37, 0x52, 0xc4, 0x95, 0xc3, 0x31,
|
||||
0x30, 0x17, 0x2b, 0xaf, 0xbb, 0x4e, 0x93, 0x72, 0xea, 0x3a, 0x70, 0x15, 0xe4, 0x78, 0xc7, 0x23,
|
||||
0xf2, 0xcc, 0x26, 0x6b, 0x97, 0x42, 0xe7, 0xb6, 0x3b, 0x1e, 0x79, 0x7b, 0xb0, 0xb4, 0xd0, 0x03,
|
||||
0x22, 0x44, 0x48, 0x82, 0xe0, 0x93, 0xc8, 0xef, 0x51, 0x09, 0xbf, 0x97, 0x36, 0xfe, 0xf6, 0x60,
|
||||
0xe9, 0xd8, 0x70, 0xd0, 0x23, 0xce, 0xb4, 0xb3, 0xf0, 0x22, 0x18, 0xf7, 0x09, 0x66, 0xae, 0x53,
|
||||
0xca, 0x49, 0xde, 0x68, 0x53, 0x48, 0xae, 0x22, 0x25, 0x85, 0x57, 0xc0, 0x84, 0x4d, 0x18, 0xc3,
|
||||
0x26, 0x29, 0xe5, 0xa5, 0xe2, 0x8c, 0x52, 0x9c, 0xd8, 0x0c, 0x96, 0x51, 0x28, 0x87, 0x2f, 0x41,
|
||||
0xd1, 0xc2, 0x8c, 0xef, 0x78, 0x4d, 0xcc, 0xc9, 0x36, 0xb5, 0x49, 0x69, 0x5c, 0x1e, 0xf5, 0x7f,
|
||||
0x07, 0x8b, 0x12, 0x81, 0xa8, 0x9d, 0x53, 0xec, 0xc5, 0x8d, 0x14, 0x13, 0xea, 0x62, 0x86, 0x6d,
|
||||
0x00, 0xc5, 0xca, 0xb6, 0x8f, 0x1d, 0x16, 0x1c, 0x99, 0xb0, 0x37, 0x71, 0x6a, 0x7b, 0x8b, 0xca,
|
||||
0x1e, 0xdc, 0xc8, 0xb0, 0xa1, 0x1e, 0x16, 0x2a, 0xfb, 0x1a, 0x28, 0xc6, 0x17, 0xb6, 0x41, 0x19,
|
||||
0x87, 0xcf, 0x33, 0x69, 0xa1, 0x0f, 0xe6, 0x80, 0x40, 0xcb, 0xa4, 0x38, 0xab, 0x9c, 0x28, 0x84,
|
||||
0x2b, 0x89, 0x94, 0xf8, 0x04, 0xe4, 0x29, 0x27, 0xb6, 0xb8, 0xfe, 0xb1, 0xcb, 0x53, 0xcb, 0x37,
|
||||
0x86, 0x08, 0xdb, 0xda, 0xb4, 0xe2, 0xcf, 0x3f, 0x12, 0x4c, 0x28, 0x20, 0xac, 0x7c, 0x3d, 0x06,
|
||||
0x60, 0xac, 0x84, 0x5c, 0xcb, 0x6a, 0x60, 0x63, 0x0f, 0x5e, 0x00, 0x39, 0x07, 0xdb, 0x61, 0xb4,
|
||||
0x46, 0xa9, 0xf4, 0x31, 0xb6, 0x09, 0x92, 0x12, 0xf8, 0x9d, 0x06, 0x60, 0x4b, 0x5e, 0x45, 0x73,
|
||||
0xcd, 0x71, 0x5c, 0x8e, 0xc5, 0xe9, 0x84, 0x0e, 0xd6, 0x87, 0x70, 0x30, 0xb4, 0xad, 0xef, 0x64,
|
||||
0x58, 0x1f, 0x38, 0xdc, 0xef, 0xc4, 0xb7, 0x94, 0x55, 0x40, 0x3d, 0x5c, 0x81, 0x7b, 0x00, 0xf8,
|
||||
0x8a, 0x73, 0xdb, 0x55, 0x09, 0x3f, 0x78, 0x35, 0x09, 0xdd, 0x59, 0x77, 0x9d, 0x17, 0xd4, 0x8c,
|
||||
0x4b, 0x16, 0x8a, 0x28, 0x51, 0x82, 0x7e, 0xf1, 0x01, 0x58, 0xe8, 0xe3, 0x37, 0x3c, 0x0b, 0xc6,
|
||||
0xf6, 0x48, 0x27, 0x38, 0x4a, 0x24, 0x7e, 0xc2, 0x79, 0x90, 0x6f, 0x63, 0xab, 0x45, 0x82, 0x6c,
|
||||
0x46, 0xc1, 0xc7, 0xca, 0xe8, 0x1d, 0xad, 0xf2, 0x7b, 0x3e, 0x19, 0x59, 0xa2, 0x72, 0xc1, 0xcb,
|
||||
0xa0, 0xe0, 0x13, 0xcf, 0xa2, 0x06, 0x66, 0x92, 0x23, 0x5f, 0x3b, 0x23, 0xa2, 0x04, 0xa9, 0x35,
|
||||
0x14, 0x49, 0xe1, 0x67, 0xa0, 0xc0, 0x88, 0x45, 0x0c, 0xee, 0xfa, 0xaa, 0x78, 0xde, 0x18, 0x30,
|
||||
0x06, 0x71, 0x83, 0x58, 0x75, 0x05, 0x0d, 0xe8, 0xc3, 0x2f, 0x14, 0x51, 0xc2, 0x4f, 0x41, 0x81,
|
||||
0x13, 0xdb, 0xb3, 0x30, 0x27, 0xea, 0x34, 0xaf, 0xf5, 0x3f, 0x4d, 0x41, 0xbb, 0xe5, 0x36, 0xb7,
|
||||
0x15, 0x40, 0x56, 0xe4, 0x28, 0xc2, 0xc3, 0x55, 0x14, 0x11, 0x42, 0x0a, 0x0a, 0x8c, 0x8b, 0x67,
|
||||
0xc7, 0xec, 0xc8, 0x5a, 0x34, 0xb5, 0xbc, 0x3a, 0x54, 0x6d, 0x0e, 0x28, 0x62, 0x53, 0xe1, 0x0a,
|
||||
0x8a, 0xe8, 0xe1, 0x1a, 0x98, 0xb1, 0xa9, 0x83, 0x08, 0x6e, 0x76, 0xea, 0xc4, 0x70, 0x9d, 0x26,
|
||||
0x93, 0x45, 0x2d, 0x5f, 0x5b, 0x50, 0xa0, 0x99, 0xcd, 0xb4, 0x18, 0x75, 0xeb, 0xc3, 0x0d, 0x30,
|
||||
0xef, 0x93, 0x36, 0x65, 0xd4, 0x75, 0x3e, 0xa4, 0x8c, 0xbb, 0x7e, 0x67, 0x83, 0xda, 0x94, 0xcb,
|
||||
0x52, 0x97, 0xaf, 0x95, 0x8e, 0x0e, 0x96, 0xe6, 0x51, 0x0f, 0x39, 0xea, 0x89, 0x12, 0x55, 0xd8,
|
||||
0xc3, 0x2d, 0x46, 0x9a, 0xb2, 0x74, 0x15, 0xe2, 0x2a, 0xbc, 0x25, 0x57, 0x91, 0x92, 0x42, 0x33,
|
||||
0x15, 0xd0, 0x85, 0xbf, 0x16, 0xd0, 0xc5, 0xfe, 0xc1, 0x0c, 0x77, 0xc0, 0x82, 0xe7, 0xbb, 0xa6,
|
||||
0x4f, 0x18, 0xbb, 0x4f, 0x70, 0xd3, 0xa2, 0x0e, 0x09, 0x4f, 0x6a, 0x52, 0xee, 0xf0, 0xfc, 0xd1,
|
||||
0xc1, 0xd2, 0xc2, 0x56, 0x6f, 0x15, 0xd4, 0x0f, 0x5b, 0xf9, 0x35, 0x07, 0xce, 0x76, 0xbf, 0xa3,
|
||||
0xf0, 0x23, 0x00, 0xdd, 0x86, 0xec, 0x7b, 0x9a, 0x0f, 0x83, 0xce, 0x83, 0xba, 0x8e, 0x0c, 0xf4,
|
||||
0xb1, 0x38, 0xe3, 0x1f, 0x67, 0x34, 0x50, 0x0f, 0x14, 0xbc, 0x9a, 0x48, 0x95, 0x51, 0xe9, 0x68,
|
||||
0x14, 0x07, 0x3d, 0xd2, 0x65, 0x0d, 0xcc, 0xa8, 0xaa, 0x11, 0x0a, 0x65, 0x58, 0x27, 0xe2, 0x60,
|
||||
0x27, 0x2d, 0x46, 0xdd, 0xfa, 0xf0, 0x21, 0x98, 0xc5, 0x6d, 0x4c, 0x2d, 0xdc, 0xb0, 0x48, 0x44,
|
||||
0x92, 0x93, 0x24, 0xff, 0x56, 0x24, 0xb3, 0x6b, 0xdd, 0x0a, 0x28, 0x8b, 0x81, 0x9b, 0x60, 0xae,
|
||||
0xe5, 0x64, 0xa9, 0x82, 0xb8, 0x3c, 0xaf, 0xa8, 0xe6, 0x76, 0xb2, 0x2a, 0xa8, 0x17, 0x0e, 0x7a,
|
||||
0x00, 0x18, 0xe1, 0x93, 0xcf, 0x4a, 0xe3, 0xb2, 0x26, 0xbf, 0x37, 0x44, 0x3e, 0x45, 0x7d, 0x43,
|
||||
0x5c, 0xff, 0xa2, 0x25, 0x86, 0x12, 0x36, 0xe0, 0x2a, 0x98, 0xf6, 0x45, 0x86, 0x44, 0xae, 0x4f,
|
||||
0x48, 0xd7, 0xff, 0xa5, 0x60, 0xd3, 0x28, 0x29, 0x44, 0x69, 0x5d, 0xb8, 0x02, 0x8a, 0x86, 0x6b,
|
||||
0x59, 0x32, 0x33, 0xd6, 0xdd, 0x96, 0xc3, 0x65, 0x70, 0x8f, 0xd5, 0xa0, 0xe8, 0x01, 0xd6, 0x53,
|
||||
0x12, 0xd4, 0xa5, 0x59, 0xf9, 0x45, 0x4b, 0x3e, 0x60, 0x61, 0xba, 0xc3, 0x95, 0x54, 0xbb, 0x75,
|
||||
0xb1, 0xab, 0xdd, 0x3a, 0x97, 0x45, 0x24, 0xba, 0xad, 0x0e, 0x98, 0x16, 0xc9, 0x40, 0x1d, 0x33,
|
||||
0x08, 0x00, 0x55, 0x4c, 0xdf, 0x3f, 0x55, 0xaa, 0x45, 0xe8, 0xc4, 0x13, 0x3c, 0x2b, 0x4f, 0x22,
|
||||
0x29, 0x44, 0x69, 0x4b, 0x95, 0x7b, 0xa0, 0x98, 0xce, 0xd3, 0x20, 0xa6, 0x83, 0xa2, 0xa1, 0xb2,
|
||||
0x22, 0x11, 0xd3, 0xc1, 0x3a, 0x8a, 0x34, 0x2a, 0x6f, 0x34, 0xb0, 0xd0, 0xc7, 0x3a, 0xb4, 0x40,
|
||||
0xd1, 0xc6, 0xaf, 0x12, 0x31, 0x74, 0x62, 0xff, 0x2e, 0xa6, 0x16, 0x3d, 0x98, 0x5a, 0xf4, 0x47,
|
||||
0x0e, 0x7f, 0xec, 0xd7, 0xb9, 0x4f, 0x1d, 0x33, 0xb8, 0x97, 0xcd, 0x14, 0x17, 0xea, 0xe2, 0x86,
|
||||
0xcf, 0x40, 0xc1, 0xc6, 0xaf, 0xea, 0x2d, 0xdf, 0x0c, 0xcf, 0xef, 0xf4, 0x76, 0xe4, 0x4b, 0xb4,
|
||||
0xa9, 0x58, 0x50, 0xc4, 0x57, 0xf9, 0x76, 0x14, 0xe4, 0xeb, 0x06, 0xb6, 0xc8, 0x3b, 0x98, 0x46,
|
||||
0xb6, 0x53, 0xd3, 0xc8, 0xf2, 0xc0, 0x31, 0x20, 0xfd, 0xeb, 0x3b, 0x88, 0x3c, 0xef, 0x1a, 0x44,
|
||||
0x6e, 0x9e, 0x92, 0xf7, 0xf8, 0x19, 0xe4, 0x2e, 0x98, 0x8c, 0xcc, 0xa7, 0x8a, 0xa2, 0x76, 0x52,
|
||||
0x51, 0xac, 0xfc, 0x30, 0x0a, 0xa6, 0x12, 0x26, 0x4e, 0x87, 0x86, 0x5e, 0xaa, 0x03, 0x11, 0x55,
|
||||
0xa7, 0x36, 0xcc, 0xc6, 0xf4, 0xb0, 0xfb, 0x08, 0x1a, 0xbf, 0xf8, 0x31, 0xcf, 0x36, 0x25, 0xf7,
|
||||
0x40, 0x91, 0x63, 0xdf, 0x24, 0x3c, 0x94, 0xc9, 0x03, 0x9d, 0x8c, 0x47, 0x88, 0xed, 0x94, 0x14,
|
||||
0x75, 0x69, 0x2f, 0xae, 0x82, 0xe9, 0x94, 0xb1, 0x53, 0x75, 0x6b, 0x3f, 0x89, 0xc3, 0xe2, 0x98,
|
||||
0x93, 0x17, 0x2d, 0xab, 0x4e, 0xde, 0xc5, 0x6c, 0xfc, 0x2c, 0x15, 0x8d, 0x77, 0x06, 0x3f, 0xdc,
|
||||
0xd8, 0xcb, 0xbe, 0x31, 0xd9, 0xe8, 0x8a, 0xc9, 0x95, 0xa1, 0xd8, 0x8f, 0x8f, 0xcc, 0x9f, 0x35,
|
||||
0x30, 0x93, 0xd0, 0x7e, 0x07, 0xa3, 0xd3, 0xd3, 0xf4, 0xe8, 0x74, 0x73, 0x98, 0x4d, 0xf5, 0x99,
|
||||
0x9d, 0xbe, 0xcf, 0xa5, 0x36, 0xf3, 0x0f, 0xea, 0xd6, 0xbf, 0xd4, 0xc0, 0x7c, 0xdb, 0xb5, 0x5a,
|
||||
0x36, 0x59, 0xb7, 0x30, 0xb5, 0x43, 0x0d, 0xd1, 0xfb, 0x9c, 0x30, 0x9f, 0x4a, 0x4b, 0xc4, 0x67,
|
||||
0x94, 0x71, 0xe2, 0xf0, 0x27, 0x31, 0x47, 0xed, 0x3f, 0xca, 0xde, 0xfc, 0x93, 0x1e, 0xc4, 0xa8,
|
||||
0xa7, 0x39, 0xf8, 0x7f, 0x30, 0x25, 0x9a, 0x40, 0x6a, 0x10, 0x31, 0x99, 0xaa, 0xff, 0x26, 0xe6,
|
||||
0x14, 0xd1, 0x54, 0x3d, 0x16, 0xa1, 0xa4, 0x1e, 0xdc, 0x05, 0x73, 0x9e, 0xdb, 0xdc, 0xc4, 0x0e,
|
||||
0x36, 0x89, 0x78, 0x1a, 0xb7, 0xe4, 0x3f, 0x60, 0xb2, 0x7b, 0x9f, 0xac, 0xdd, 0x0a, 0xbb, 0xad,
|
||||
0xad, 0xac, 0xca, 0x5b, 0xd1, 0xf6, 0x66, 0x97, 0x65, 0xef, 0xd0, 0x8b, 0xb2, 0xf2, 0x95, 0x06,
|
||||
0x66, 0x33, 0xd9, 0x01, 0x3f, 0x38, 0xa6, 0xe7, 0x3d, 0xf7, 0x77, 0xf5, 0xbb, 0xb5, 0x2b, 0xfb,
|
||||
0x87, 0xe5, 0x91, 0xd7, 0x87, 0xe5, 0x91, 0xdf, 0x0e, 0xcb, 0x23, 0x5f, 0x1c, 0x95, 0xb5, 0xfd,
|
||||
0xa3, 0xb2, 0xf6, 0xfa, 0xa8, 0xac, 0xfd, 0x71, 0x54, 0xd6, 0xbe, 0x79, 0x53, 0x1e, 0x79, 0x36,
|
||||
0xa1, 0x62, 0xff, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0xdb, 0x2f, 0x40, 0xf8, 0x15, 0x00,
|
||||
0x00,
|
||||
}
|
||||
|
@@ -170,6 +170,12 @@ message DeploymentStatus {
|
||||
// +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 int64 collisionCount = 8;
|
||||
}
|
||||
|
||||
// DeploymentStrategy describes how to replace existing pods with new ones.
|
||||
|
@@ -4672,7 +4672,7 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
} else {
|
||||
yysep2 := !z.EncBinary()
|
||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||
var yyq2 [7]bool
|
||||
var yyq2 [8]bool
|
||||
_, _, _ = yysep2, yyq2, yy2arr2
|
||||
const yyr2 bool = false
|
||||
yyq2[0] = x.ObservedGeneration != 0
|
||||
@@ -4682,9 +4682,10 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
yyq2[4] = x.AvailableReplicas != 0
|
||||
yyq2[5] = x.UnavailableReplicas != 0
|
||||
yyq2[6] = len(x.Conditions) != 0
|
||||
yyq2[7] = x.CollisionCount != nil
|
||||
var yynn2 int
|
||||
if yyr2 || yy2arr2 {
|
||||
r.EncodeArrayStart(7)
|
||||
r.EncodeArrayStart(8)
|
||||
} else {
|
||||
yynn2 = 0
|
||||
for _, b := range yyq2 {
|
||||
@@ -4878,6 +4879,41 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[7] {
|
||||
if x.CollisionCount == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yy25 := *x.CollisionCount
|
||||
yym26 := z.EncBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy25))
|
||||
}
|
||||
}
|
||||
} 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 {
|
||||
yy27 := *x.CollisionCount
|
||||
yym28 := z.EncBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy27))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
@@ -5023,6 +5059,22 @@ func (x *DeploymentStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv16), d)
|
||||
}
|
||||
}
|
||||
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:
|
||||
z.DecStructFieldNotFound(-1, yys3)
|
||||
} // end switch yys3
|
||||
@@ -5034,16 +5086,16 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj18 int
|
||||
var yyb18 bool
|
||||
var yyhl18 bool = l >= 0
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
var yyj20 int
|
||||
var yyb20 bool
|
||||
var yyhl20 bool = l >= 0
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5051,21 +5103,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObservedGeneration = 0
|
||||
} else {
|
||||
yyv19 := &x.ObservedGeneration
|
||||
yym20 := z.DecBinary()
|
||||
_ = yym20
|
||||
yyv21 := &x.ObservedGeneration
|
||||
yym22 := z.DecBinary()
|
||||
_ = yym22
|
||||
if false {
|
||||
} else {
|
||||
*((*int64)(yyv19)) = int64(r.DecodeInt(64))
|
||||
*((*int64)(yyv21)) = int64(r.DecodeInt(64))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5073,29 +5125,7 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Replicas = 0
|
||||
} else {
|
||||
yyv21 := &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.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv23 := &x.UpdatedReplicas
|
||||
yyv23 := &x.Replicas
|
||||
yym24 := z.DecBinary()
|
||||
_ = yym24
|
||||
if false {
|
||||
@@ -5103,21 +5133,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv23)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ReadyReplicas = 0
|
||||
x.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv25 := &x.ReadyReplicas
|
||||
yyv25 := &x.UpdatedReplicas
|
||||
yym26 := z.DecBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
@@ -5125,21 +5155,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv25)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.AvailableReplicas = 0
|
||||
x.ReadyReplicas = 0
|
||||
} else {
|
||||
yyv27 := &x.AvailableReplicas
|
||||
yyv27 := &x.ReadyReplicas
|
||||
yym28 := z.DecBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
@@ -5147,21 +5177,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv27)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
x.AvailableReplicas = 0
|
||||
} else {
|
||||
yyv29 := &x.UnavailableReplicas
|
||||
yyv29 := &x.AvailableReplicas
|
||||
yym30 := z.DecBinary()
|
||||
_ = yym30
|
||||
if false {
|
||||
@@ -5169,13 +5199,35 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv29)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
} else {
|
||||
yyv31 := &x.UnavailableReplicas
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
if false {
|
||||
} else {
|
||||
*((*int32)(yyv31)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5183,26 +5235,52 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Conditions = nil
|
||||
} else {
|
||||
yyv31 := &x.Conditions
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
yyv33 := &x.Conditions
|
||||
yym34 := z.DecBinary()
|
||||
_ = yym34
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv31), d)
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv33), d)
|
||||
}
|
||||
}
|
||||
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 {
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj18-1, "")
|
||||
z.DecStructFieldNotFound(yyj20-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@@ -6470,7 +6548,7 @@ func (x codecSelfer1234) decSliceDeployment(v *[]Deployment, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 960)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 968)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@@ -356,6 +356,12 @@ type DeploymentStatus struct {
|
||||
// +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 *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
|
||||
}
|
||||
|
||||
type DeploymentConditionType string
|
||||
|
@@ -99,6 +99,7 @@ var map_DeploymentStatus = map[string]string{
|
||||
"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.",
|
||||
"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 {
|
||||
|
@@ -184,6 +184,11 @@ func DeepCopy_v1beta1_DeploymentStatus(in interface{}, out interface{}, c *conve
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.CollisionCount != nil {
|
||||
in, out := &in.CollisionCount, &out.CollisionCount
|
||||
*out = new(int64)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -327,6 +327,12 @@ type DeploymentStatus struct {
|
||||
|
||||
// Represents the latest available observations of a deployment's current state.
|
||||
Conditions []DeploymentCondition
|
||||
|
||||
// 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 *int64
|
||||
}
|
||||
|
||||
type DeploymentConditionType string
|
||||
|
@@ -1069,6 +1069,11 @@ func (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {
|
||||
dAtA[i] = 0x38
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
dAtA[i] = 0x40
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))
|
||||
}
|
||||
return i, nil
|
||||
}
|
||||
|
||||
@@ -2911,6 +2916,9 @@ func (m *DeploymentStatus) Size() (n int) {
|
||||
}
|
||||
}
|
||||
n += 1 + sovGenerated(uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
n += 1 + sovGenerated(uint64(*m.CollisionCount))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -3699,6 +3707,7 @@ func (this *DeploymentStatus) String() string {
|
||||
`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
|
||||
@@ -6558,6 +6567,26 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error {
|
||||
break
|
||||
}
|
||||
}
|
||||
case 8:
|
||||
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:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@@ -11794,217 +11823,218 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptorGenerated = []byte{
|
||||
// 3379 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0xdb, 0x6f, 0x1b, 0xc7,
|
||||
0xd5, 0xf7, 0x8a, 0xa4, 0x45, 0x1d, 0x59, 0x92, 0x35, 0x72, 0x64, 0x46, 0x49, 0x44, 0x67, 0x3f,
|
||||
0x7c, 0x89, 0xf3, 0x7d, 0x09, 0xf5, 0xc5, 0xf9, 0x9c, 0x26, 0x4e, 0xe2, 0x44, 0x94, 0x7c, 0x51,
|
||||
0x21, 0xc9, 0xcc, 0x90, 0x32, 0x1a, 0xe7, 0xd6, 0x15, 0x39, 0xa2, 0xd6, 0xde, 0x5b, 0x76, 0x67,
|
||||
0x15, 0x11, 0x41, 0xdb, 0x00, 0x45, 0xf3, 0x58, 0xb4, 0x2f, 0x45, 0x0a, 0xa4, 0x8f, 0x7d, 0xe8,
|
||||
0x4b, 0x9b, 0x3c, 0xb4, 0x69, 0xff, 0x82, 0xfa, 0xa1, 0x28, 0x52, 0xa0, 0x05, 0x8a, 0x22, 0x15,
|
||||
0x6a, 0x05, 0xcd, 0x3f, 0xd0, 0xe6, 0xc5, 0x4f, 0xc5, 0xcc, 0xce, 0xde, 0x77, 0x65, 0x93, 0xb2,
|
||||
0x89, 0x02, 0x7d, 0xe3, 0xce, 0x9c, 0xf3, 0x3b, 0x97, 0x39, 0x73, 0xe6, 0xcc, 0x85, 0xf0, 0xd2,
|
||||
// 3402 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0x4b, 0x6f, 0x1c, 0xc7,
|
||||
0xb5, 0x56, 0xcf, 0x43, 0x1c, 0x1e, 0x8a, 0xa4, 0x58, 0x94, 0xa9, 0x31, 0x6d, 0x93, 0x72, 0x5f,
|
||||
0x5c, 0x5b, 0xbe, 0xd7, 0x1e, 0x5e, 0xcb, 0x57, 0x8e, 0x2d, 0xdb, 0xb2, 0x39, 0xa4, 0x1e, 0x0c,
|
||||
0x48, 0x6a, 0x5c, 0x33, 0x14, 0x62, 0xf9, 0x95, 0xe6, 0x4c, 0x71, 0xd8, 0x52, 0xbf, 0xdc, 0x5d,
|
||||
0x4d, 0x73, 0x60, 0x24, 0x31, 0x10, 0xc4, 0xcb, 0x20, 0xd9, 0x04, 0x0e, 0x90, 0x2c, 0xb3, 0xc8,
|
||||
0x26, 0xb1, 0x17, 0x89, 0x93, 0x5f, 0x10, 0x2d, 0x82, 0xc0, 0x01, 0x12, 0xc0, 0x08, 0x1c, 0x22,
|
||||
0xa2, 0x11, 0xff, 0x81, 0xc4, 0x1b, 0xad, 0x82, 0xaa, 0xae, 0x7e, 0x77, 0x53, 0x9a, 0xa1, 0x34,
|
||||
0x08, 0x90, 0x1d, 0xa7, 0xea, 0x9c, 0xef, 0x3c, 0xea, 0xd4, 0xa9, 0x53, 0x75, 0x9a, 0xf0, 0xd2,
|
||||
0x8d, 0xe7, 0x9c, 0x9a, 0x6a, 0x2e, 0xdc, 0x70, 0x37, 0x89, 0x6d, 0x10, 0x4a, 0x9c, 0x05, 0xeb,
|
||||
0x46, 0x77, 0x41, 0xb1, 0x54, 0x67, 0x81, 0xec, 0x52, 0x62, 0x38, 0xaa, 0x69, 0x38, 0x0b, 0x3b,
|
||||
0x4f, 0x6f, 0x12, 0xaa, 0x3c, 0xbd, 0xd0, 0x25, 0x06, 0xb1, 0x15, 0x4a, 0x3a, 0x35, 0xcb, 0x36,
|
||||
0xa9, 0x89, 0x9e, 0xf2, 0xd8, 0x6b, 0x21, 0x7b, 0xcd, 0xba, 0xd1, 0xad, 0x31, 0xf6, 0x5a, 0xc8,
|
||||
0x5e, 0x13, 0xec, 0x73, 0x4f, 0x75, 0x55, 0xba, 0xed, 0x6e, 0xd6, 0xda, 0xa6, 0xbe, 0xd0, 0x35,
|
||||
0xbb, 0xe6, 0x02, 0x47, 0xd9, 0x74, 0xb7, 0xf8, 0x17, 0xff, 0xe0, 0xbf, 0x3c, 0xf4, 0xb9, 0xff,
|
||||
0x17, 0xca, 0x29, 0x96, 0xaa, 0x2b, 0xed, 0x6d, 0xd5, 0x20, 0x76, 0xcf, 0x57, 0x6f, 0xc1, 0x26,
|
||||
0x8e, 0xe9, 0xda, 0x6d, 0x92, 0xd4, 0xe9, 0x40, 0x2e, 0x67, 0x41, 0x27, 0x54, 0x59, 0xd8, 0x49,
|
||||
0x59, 0x32, 0xb7, 0x90, 0xc7, 0x65, 0xbb, 0x06, 0x55, 0xf5, 0xb4, 0x98, 0x67, 0xef, 0xc4, 0xe0,
|
||||
0xb4, 0xb7, 0x89, 0xae, 0xa4, 0xf8, 0x9e, 0xc9, 0xe3, 0x73, 0xa9, 0xaa, 0x2d, 0xa8, 0x06, 0x75,
|
||||
0xa8, 0x7d, 0x90, 0x4d, 0x0e, 0xb1, 0x77, 0x88, 0x1d, 0x1d, 0x25, 0x45, 0xb7, 0x34, 0x92, 0x65,
|
||||
0xd3, 0x93, 0xb9, 0x83, 0x9b, 0x45, 0xfd, 0xfc, 0x01, 0xa1, 0x60, 0x99, 0x9a, 0xda, 0xee, 0xe5,
|
||||
0x85, 0x81, 0x5c, 0x03, 0x58, 0x6c, 0xac, 0x5c, 0x25, 0x36, 0x1b, 0x6e, 0x74, 0x0a, 0x8a, 0x86,
|
||||
0xa2, 0x93, 0x8a, 0x74, 0x4a, 0x3a, 0x3d, 0x56, 0x3f, 0x76, 0x73, 0xaf, 0x7a, 0x64, 0x7f, 0xaf,
|
||||
0x5a, 0x5c, 0x57, 0x74, 0x82, 0x79, 0x8f, 0xfc, 0x63, 0x09, 0x1e, 0x5c, 0x72, 0x1d, 0x6a, 0xea,
|
||||
0x6b, 0x84, 0xda, 0x6a, 0x7b, 0xc9, 0xb5, 0x6d, 0x62, 0xd0, 0x26, 0x55, 0xa8, 0xeb, 0xdc, 0x99,
|
||||
0x1f, 0x5d, 0x83, 0xd2, 0x8e, 0xa2, 0xb9, 0xa4, 0x32, 0x72, 0x4a, 0x3a, 0x3d, 0x7e, 0xa6, 0x56,
|
||||
0x13, 0x61, 0x18, 0xf5, 0xa9, 0x1f, 0x88, 0x35, 0x3f, 0x50, 0x6a, 0xaf, 0xba, 0x8a, 0x41, 0x55,
|
||||
0xda, 0xab, 0x9f, 0x10, 0x90, 0xc7, 0x84, 0xdc, 0xab, 0x0c, 0x0b, 0x7b, 0x90, 0xf2, 0xf7, 0x25,
|
||||
0x78, 0x24, 0x57, 0xb7, 0x55, 0xd5, 0xa1, 0x48, 0x87, 0x92, 0x4a, 0x89, 0xee, 0x54, 0xa4, 0x53,
|
||||
0x85, 0xd3, 0xe3, 0x67, 0x2e, 0xd7, 0xfa, 0x9a, 0x04, 0xb5, 0x5c, 0xf0, 0xfa, 0x84, 0xd0, 0xab,
|
||||
0xb4, 0xc2, 0xe0, 0xb1, 0x27, 0x45, 0xfe, 0xa1, 0x04, 0x28, 0xca, 0xd3, 0x52, 0xec, 0x2e, 0xa1,
|
||||
0x77, 0xe1, 0xa5, 0xd7, 0x0e, 0xe7, 0xa5, 0x19, 0x01, 0x39, 0xee, 0x09, 0x8c, 0x39, 0xe9, 0x7d,
|
||||
0x09, 0x66, 0xd3, 0x3a, 0x71, 0xef, 0x6c, 0xc5, 0xbd, 0xb3, 0x78, 0x08, 0xef, 0x78, 0xa8, 0x39,
|
||||
0x6e, 0xf9, 0xe5, 0x08, 0x8c, 0x2d, 0x2b, 0x44, 0x37, 0x8d, 0x26, 0xa1, 0xe8, 0x9b, 0x50, 0x66,
|
||||
0x33, 0xbb, 0xa3, 0x50, 0x85, 0x7b, 0x64, 0xfc, 0xcc, 0xff, 0x1d, 0x64, 0xae, 0x53, 0x63, 0xd4,
|
||||
0xb5, 0x9d, 0xa7, 0x6b, 0x57, 0x36, 0xaf, 0x93, 0x36, 0x5d, 0x23, 0x54, 0xa9, 0x23, 0x21, 0x07,
|
||||
0xc2, 0x36, 0x1c, 0xa0, 0xa2, 0xb7, 0xa0, 0xe8, 0x58, 0xa4, 0x2d, 0x9c, 0xf9, 0x62, 0x9f, 0x66,
|
||||
0x05, 0x9a, 0x36, 0x2d, 0xd2, 0x0e, 0x47, 0x8b, 0x7d, 0x61, 0x8e, 0x8b, 0xb6, 0xe0, 0xa8, 0xc3,
|
||||
0xc3, 0xa0, 0x52, 0xe0, 0x12, 0xce, 0x0f, 0x2c, 0xc1, 0x0b, 0xa6, 0x49, 0x21, 0xe3, 0xa8, 0xf7,
|
||||
0x8d, 0x05, 0xba, 0xfc, 0x3b, 0x09, 0x26, 0x02, 0x5a, 0x3e, 0x62, 0x6f, 0xa4, 0x7c, 0x57, 0xbb,
|
||||
0x3b, 0xdf, 0x31, 0x6e, 0xee, 0xb9, 0xe3, 0x42, 0x56, 0xd9, 0x6f, 0x89, 0xf8, 0xed, 0x4d, 0x3f,
|
||||
0x1e, 0x46, 0x78, 0x3c, 0x3c, 0x37, 0xa8, 0x59, 0x39, 0x61, 0xf0, 0x45, 0x21, 0x62, 0x0e, 0x73,
|
||||
0x27, 0x7a, 0x13, 0xca, 0x0e, 0xd1, 0x48, 0x9b, 0x9a, 0xb6, 0x30, 0xe7, 0x99, 0xbb, 0x34, 0x47,
|
||||
0xd9, 0x24, 0x5a, 0x53, 0xb0, 0xd6, 0x8f, 0x31, 0x7b, 0xfc, 0x2f, 0x1c, 0x40, 0xa2, 0xd7, 0xa1,
|
||||
0x4c, 0x89, 0x6e, 0x69, 0x0a, 0xf5, 0x27, 0xd6, 0x53, 0xf9, 0x26, 0x31, 0xd8, 0x86, 0xd9, 0x69,
|
||||
0x09, 0x06, 0x3e, 0xf8, 0x81, 0xb3, 0xfc, 0x56, 0x1c, 0x00, 0xa2, 0x0f, 0x24, 0x98, 0x74, 0xad,
|
||||
0x0e, 0x23, 0xa5, 0x2c, 0xc1, 0x76, 0x7b, 0x22, 0x1a, 0x2e, 0x0e, 0xea, 0xb6, 0x8d, 0x18, 0x5a,
|
||||
0x7d, 0x56, 0x08, 0x9f, 0x8c, 0xb7, 0xe3, 0x84, 0x54, 0xb4, 0x08, 0x53, 0xba, 0x6a, 0x60, 0xa2,
|
||||
0x74, 0x7a, 0x4d, 0xd2, 0x36, 0x8d, 0x8e, 0x53, 0x29, 0x9e, 0x92, 0x4e, 0x97, 0xea, 0x27, 0x05,
|
||||
0xc0, 0xd4, 0x5a, 0xbc, 0x1b, 0x27, 0xe9, 0xd1, 0xd7, 0x01, 0xf9, 0x76, 0x5d, 0xf2, 0xd6, 0x0b,
|
||||
0xd5, 0x34, 0x2a, 0xa5, 0x53, 0xd2, 0xe9, 0x42, 0x7d, 0x4e, 0xa0, 0xa0, 0x56, 0x8a, 0x02, 0x67,
|
||||
0x70, 0xc9, 0xff, 0x2c, 0xc2, 0x54, 0x22, 0xc0, 0xd1, 0x55, 0x98, 0x6d, 0x7b, 0xe9, 0x73, 0xdd,
|
||||
0xd5, 0x37, 0x89, 0xdd, 0x6c, 0x6f, 0x93, 0x8e, 0xab, 0x91, 0x0e, 0x1f, 0xf5, 0x52, 0x7d, 0x5e,
|
||||
0xc8, 0x98, 0x5d, 0xca, 0xa4, 0xc2, 0x39, 0xdc, 0x4c, 0x6f, 0x83, 0x37, 0xad, 0xa9, 0x8e, 0x13,
|
||||
0x60, 0x8e, 0x70, 0xcc, 0x40, 0xef, 0xf5, 0x14, 0x05, 0xce, 0xe0, 0x62, 0x3a, 0x76, 0x88, 0xa3,
|
||||
0xda, 0xa4, 0x93, 0xd4, 0xb1, 0x10, 0xd7, 0x71, 0x39, 0x93, 0x0a, 0xe7, 0x70, 0xa3, 0xb3, 0x30,
|
||||
0xee, 0x49, 0xe3, 0x1e, 0x17, 0x43, 0x13, 0x24, 0xec, 0xf5, 0xb0, 0x0b, 0x47, 0xe9, 0x98, 0x69,
|
||||
0xe6, 0x26, 0x2f, 0x20, 0x3a, 0xf9, 0x43, 0x72, 0x25, 0x45, 0x81, 0x33, 0xb8, 0x98, 0x69, 0x5e,
|
||||
0xcc, 0xa4, 0x4c, 0x3b, 0x1a, 0x37, 0x6d, 0x23, 0x93, 0x0a, 0xe7, 0x70, 0xb3, 0xc8, 0xf3, 0x54,
|
||||
0x5e, 0xdc, 0x51, 0x54, 0x4d, 0xd9, 0xd4, 0x48, 0x65, 0x34, 0x1e, 0x79, 0xeb, 0xf1, 0x6e, 0x9c,
|
||||
0xa4, 0x47, 0x97, 0x60, 0xda, 0x6b, 0xda, 0x30, 0x94, 0x00, 0xa4, 0xcc, 0x41, 0x1e, 0x14, 0x20,
|
||||
0xd3, 0xeb, 0x49, 0x02, 0x9c, 0xe6, 0x91, 0xff, 0x22, 0xc1, 0xc9, 0x9c, 0x99, 0x84, 0x5e, 0x86,
|
||||
0x22, 0xed, 0x59, 0xfe, 0xfa, 0xfb, 0xbf, 0x7e, 0x46, 0x6f, 0xf5, 0x2c, 0x72, 0x7b, 0xaf, 0xfa,
|
||||
0x50, 0x0e, 0x1b, 0xeb, 0xc6, 0x9c, 0x11, 0x7d, 0x1b, 0x26, 0x6c, 0x53, 0xd3, 0x54, 0xa3, 0xeb,
|
||||
0x91, 0x88, 0x6c, 0x72, 0xa1, 0xcf, 0x99, 0x8e, 0xa3, 0x18, 0x61, 0xb6, 0x9c, 0xde, 0xdf, 0xab,
|
||||
0x4e, 0xc4, 0xfa, 0x70, 0x5c, 0x9c, 0xfc, 0xeb, 0x11, 0x80, 0x65, 0x62, 0x69, 0x66, 0x4f, 0x27,
|
||||
0xc6, 0x30, 0x56, 0xd0, 0xb7, 0x63, 0x2b, 0xe8, 0x4b, 0xfd, 0x66, 0xb4, 0x40, 0xd5, 0xdc, 0x25,
|
||||
0xb4, 0x9b, 0x58, 0x42, 0x5f, 0x1e, 0x5c, 0xc4, 0xc1, 0x6b, 0xe8, 0xad, 0x02, 0xcc, 0x84, 0xc4,
|
||||
0x4b, 0xa6, 0xd1, 0x51, 0xf9, 0x9c, 0x78, 0x21, 0x16, 0x13, 0x8f, 0x27, 0x62, 0xe2, 0x64, 0x06,
|
||||
0x4b, 0x24, 0x1e, 0xae, 0x06, 0xda, 0x8f, 0x70, 0xf6, 0xf3, 0x71, 0xe1, 0xb7, 0xf7, 0xaa, 0x07,
|
||||
0xd6, 0xf3, 0xb5, 0x00, 0x33, 0xae, 0x2c, 0x7a, 0x0c, 0x8e, 0xda, 0x44, 0x71, 0x4c, 0x83, 0xa7,
|
||||
0x89, 0xb1, 0xd0, 0x28, 0xcc, 0x5b, 0xb1, 0xe8, 0x45, 0x4f, 0xc0, 0xa8, 0x4e, 0x1c, 0x47, 0xe9,
|
||||
0x12, 0x9e, 0x11, 0xc6, 0xea, 0x53, 0x82, 0x70, 0x74, 0xcd, 0x6b, 0xc6, 0x7e, 0x3f, 0xba, 0x0e,
|
||||
0x93, 0x9a, 0xe2, 0x88, 0xd0, 0x6e, 0xa9, 0x3a, 0xe1, 0x73, 0x7e, 0xfc, 0xcc, 0xff, 0xdc, 0x5d,
|
||||
0xc4, 0x30, 0x8e, 0x70, 0x25, 0x5a, 0x8d, 0x21, 0xe1, 0x04, 0x32, 0xda, 0x01, 0xc4, 0x5a, 0x5a,
|
||||
0xb6, 0x62, 0x38, 0x9e, 0xcb, 0x98, 0xbc, 0xd1, 0xbe, 0xe5, 0x05, 0xf9, 0x6d, 0x35, 0x85, 0x86,
|
||||
0x33, 0x24, 0xc8, 0xbf, 0x97, 0x60, 0x32, 0x1c, 0xb0, 0x21, 0x14, 0x4a, 0x6f, 0xc5, 0x0b, 0xa5,
|
||||
0xe7, 0x07, 0x0e, 0xde, 0x9c, 0x4a, 0xe9, 0xc3, 0x02, 0xa0, 0x90, 0x88, 0xa5, 0x86, 0x4d, 0xa5,
|
||||
0x7d, 0xe3, 0x2e, 0xf6, 0x11, 0x3f, 0x95, 0x00, 0x89, 0x64, 0xbd, 0x68, 0x18, 0x26, 0xe5, 0xf9,
|
||||
0xdf, 0x57, 0xf3, 0xb5, 0x81, 0xd5, 0xf4, 0x35, 0xa8, 0x6d, 0xa4, 0xb0, 0x2f, 0x18, 0xd4, 0xee,
|
||||
0x85, 0x23, 0x96, 0x26, 0xc0, 0x19, 0x0a, 0xa1, 0x77, 0x00, 0x6c, 0x81, 0xd9, 0x32, 0x45, 0x0a,
|
||||
0x78, 0x69, 0x80, 0x6c, 0xca, 0x00, 0x96, 0x4c, 0x63, 0x4b, 0xed, 0x86, 0x09, 0x0d, 0x07, 0xc0,
|
||||
0x38, 0x22, 0x64, 0xee, 0x02, 0x9c, 0xcc, 0xd1, 0x1e, 0x1d, 0x87, 0xc2, 0x0d, 0xd2, 0xf3, 0xdc,
|
||||
0x8a, 0xd9, 0x4f, 0x74, 0x22, 0xba, 0x1f, 0x1b, 0x13, 0x5b, 0xa9, 0x73, 0x23, 0xcf, 0x49, 0xf2,
|
||||
0x97, 0xa5, 0x68, 0xac, 0xf1, 0x2a, 0xf6, 0x34, 0x94, 0x6d, 0x62, 0x69, 0x6a, 0x5b, 0x71, 0x44,
|
||||
0x3d, 0xc3, 0x0b, 0x52, 0x2c, 0xda, 0x70, 0xd0, 0x1b, 0xab, 0x77, 0x47, 0xee, 0x6f, 0xbd, 0x5b,
|
||||
0xb8, 0xd7, 0xf5, 0xae, 0x09, 0x65, 0xc7, 0x2f, 0x74, 0x8b, 0x1c, 0x7c, 0xf1, 0x10, 0x39, 0x5b,
|
||||
0xd4, 0xb8, 0x81, 0xc0, 0xa0, 0xba, 0x0d, 0x84, 0x64, 0xd5, 0xb5, 0xa5, 0x3e, 0xeb, 0xda, 0x55,
|
||||
0x38, 0x61, 0x93, 0x1d, 0x95, 0xa9, 0x71, 0x59, 0x75, 0xa8, 0x69, 0xf7, 0x56, 0x55, 0x5d, 0xa5,
|
||||
0xa2, 0xec, 0xa9, 0xec, 0xef, 0x55, 0x4f, 0xe0, 0x8c, 0x7e, 0x9c, 0xc9, 0xc5, 0xb2, 0xb3, 0xa5,
|
||||
0xb8, 0x0e, 0xe9, 0xf0, 0x94, 0x56, 0x0e, 0xb3, 0x73, 0x83, 0xb7, 0x62, 0xd1, 0x8b, 0xf4, 0x58,
|
||||
0x70, 0x97, 0xef, 0x45, 0x70, 0x4f, 0xe6, 0x07, 0x36, 0xda, 0x80, 0x93, 0x96, 0x6d, 0x76, 0x6d,
|
||||
0xe2, 0x38, 0xcb, 0x44, 0xe9, 0x68, 0xaa, 0x41, 0x7c, 0x7f, 0x8d, 0x71, 0x3b, 0x1f, 0xda, 0xdf,
|
||||
0xab, 0x9e, 0x6c, 0x64, 0x93, 0xe0, 0x3c, 0x5e, 0xf9, 0xa3, 0x22, 0x1c, 0x4f, 0xae, 0xb2, 0x39,
|
||||
0x55, 0xa9, 0x34, 0x50, 0x55, 0xfa, 0x64, 0x64, 0xda, 0x78, 0x25, 0x7b, 0x10, 0x0d, 0x19, 0x53,
|
||||
0x67, 0x11, 0xa6, 0x44, 0x1e, 0xf1, 0x3b, 0x45, 0x5d, 0x1e, 0x44, 0xc3, 0x46, 0xbc, 0x1b, 0x27,
|
||||
0xe9, 0x59, 0xad, 0x19, 0x96, 0x90, 0x3e, 0x48, 0x31, 0x5e, 0x6b, 0x2e, 0x26, 0x09, 0x70, 0x9a,
|
||||
0x07, 0xad, 0xc1, 0x8c, 0x6b, 0xa4, 0xa1, 0xbc, 0xe8, 0x7c, 0x48, 0x40, 0xcd, 0x6c, 0xa4, 0x49,
|
||||
0x70, 0x16, 0x1f, 0xda, 0x01, 0x68, 0xfb, 0x05, 0x81, 0x53, 0x39, 0xca, 0x73, 0x75, 0x7d, 0xe0,
|
||||
0xb9, 0x15, 0xd4, 0x16, 0x61, 0x46, 0x0c, 0x9a, 0x1c, 0x1c, 0x91, 0x84, 0x5e, 0x80, 0x09, 0x9b,
|
||||
0x6f, 0x3c, 0x7c, 0x03, 0xbc, 0xe2, 0xfd, 0x01, 0xc1, 0x36, 0x81, 0xa3, 0x9d, 0x38, 0x4e, 0x2b,
|
||||
0xff, 0x41, 0x8a, 0x2e, 0x51, 0x41, 0xa9, 0x7d, 0x2e, 0x56, 0x56, 0x3d, 0x96, 0x28, 0xab, 0x66,
|
||||
0xd3, 0x1c, 0x91, 0xaa, 0xea, 0x3b, 0xd9, 0x55, 0xf6, 0xc5, 0x43, 0x55, 0xd9, 0xe1, 0x52, 0x7b,
|
||||
0xe7, 0x32, 0xfb, 0x13, 0x09, 0x66, 0x2f, 0x36, 0x2f, 0xd9, 0xa6, 0x6b, 0xf9, 0xea, 0x5d, 0xb1,
|
||||
0x3c, 0x5f, 0x7d, 0x0d, 0x8a, 0xb6, 0xab, 0xf9, 0x76, 0xfd, 0x97, 0x6f, 0x17, 0x76, 0x35, 0x66,
|
||||
0xd7, 0x4c, 0x82, 0xcb, 0x33, 0x8a, 0x31, 0xa0, 0xb7, 0xe0, 0xa8, 0xad, 0x18, 0x5d, 0xe2, 0x2f,
|
||||
0xc2, 0xcf, 0xf6, 0x69, 0xcd, 0xca, 0x32, 0x66, 0xec, 0x91, 0x52, 0x90, 0xa3, 0x61, 0x81, 0x2a,
|
||||
0xff, 0x44, 0x82, 0xa9, 0xcb, 0xad, 0x56, 0x63, 0xc5, 0xe0, 0xb3, 0xb8, 0xa1, 0xd0, 0x6d, 0x56,
|
||||
0x27, 0x58, 0x0a, 0xdd, 0x4e, 0xd6, 0x09, 0xac, 0x0f, 0xf3, 0x1e, 0xb4, 0x0d, 0xa3, 0x2c, 0x7b,
|
||||
0x10, 0xa3, 0x33, 0x60, 0x89, 0x2f, 0xc4, 0xd5, 0x3d, 0x90, 0xb0, 0xfe, 0x14, 0x0d, 0xd8, 0x87,
|
||||
0x97, 0xdf, 0x83, 0x13, 0x11, 0xf5, 0x98, 0xbf, 0xf8, 0xe9, 0x24, 0x6a, 0x43, 0x89, 0x69, 0xe2,
|
||||
0x9f, 0x3d, 0xf6, 0x7b, 0x84, 0x96, 0x30, 0x39, 0xac, 0xa3, 0xd8, 0x97, 0x83, 0x3d, 0x6c, 0x79,
|
||||
0x0d, 0x26, 0x2e, 0x9b, 0x0e, 0x6d, 0x98, 0x36, 0xe5, 0x6e, 0x43, 0x8f, 0x40, 0x41, 0x57, 0x0d,
|
||||
0xb1, 0x4a, 0x8f, 0x0b, 0x9e, 0x02, 0x5b, 0x47, 0x58, 0x3b, 0xef, 0x56, 0x76, 0x45, 0x36, 0x0a,
|
||||
0xbb, 0x95, 0x5d, 0xcc, 0xda, 0xe5, 0x4b, 0x30, 0x2a, 0x86, 0x23, 0x0a, 0x54, 0x38, 0x18, 0xa8,
|
||||
0x90, 0x01, 0xf4, 0x8b, 0x11, 0x18, 0x15, 0xda, 0x0f, 0x61, 0x33, 0xf7, 0x46, 0x6c, 0x33, 0x77,
|
||||
0x6e, 0xb0, 0x91, 0xce, 0xdd, 0xc9, 0x75, 0x12, 0x3b, 0xb9, 0x17, 0x07, 0xc4, 0x3f, 0x78, 0x1b,
|
||||
0xf7, 0xb1, 0x04, 0x93, 0xf1, 0x98, 0x43, 0x67, 0x61, 0x9c, 0xad, 0x29, 0x6a, 0x9b, 0xac, 0x87,
|
||||
0x45, 0x71, 0x70, 0xb0, 0xd2, 0x0c, 0xbb, 0x70, 0x94, 0x0e, 0x75, 0x03, 0x36, 0x16, 0x16, 0xc2,
|
||||
0x29, 0xf9, 0x2e, 0x77, 0xa9, 0xaa, 0xd5, 0xbc, 0xab, 0x9e, 0xda, 0x8a, 0x41, 0xaf, 0xd8, 0x4d,
|
||||
0x6a, 0xab, 0x46, 0x37, 0x25, 0x88, 0xc7, 0x58, 0x14, 0x59, 0xbe, 0x29, 0xc1, 0xb8, 0x50, 0x79,
|
||||
0x08, 0x5b, 0x92, 0xd7, 0xe3, 0x5b, 0x92, 0x67, 0x07, 0x9c, 0xcf, 0xd9, 0xfb, 0x91, 0x4f, 0x43,
|
||||
0x53, 0xd8, 0x0c, 0x66, 0x09, 0x66, 0xdb, 0x74, 0x68, 0x32, 0xc1, 0xb0, 0xb9, 0x86, 0x79, 0x0f,
|
||||
0xfa, 0x9e, 0x04, 0xc7, 0xd5, 0xc4, 0x9c, 0x17, 0xbe, 0x7e, 0x79, 0x30, 0xd5, 0x02, 0x98, 0x7a,
|
||||
0x45, 0xc8, 0x3b, 0x9e, 0xec, 0xc1, 0x29, 0x91, 0xb2, 0x0b, 0x29, 0x2a, 0xa4, 0x40, 0x71, 0x9b,
|
||||
0x52, 0x4b, 0x0c, 0xc2, 0xd2, 0xe0, 0x99, 0x27, 0x54, 0xa9, 0xcc, 0xcd, 0x6f, 0xb5, 0x1a, 0x98,
|
||||
0x43, 0xcb, 0x3f, 0x1f, 0x09, 0x1c, 0xd6, 0xf4, 0x26, 0x49, 0x90, 0x6f, 0xa5, 0x7b, 0x91, 0x6f,
|
||||
0xc7, 0xb3, 0x72, 0x2d, 0xfa, 0x06, 0x14, 0xa8, 0x36, 0xe8, 0xa6, 0x54, 0x48, 0x68, 0xad, 0x36,
|
||||
0xc3, 0x84, 0xd5, 0x5a, 0x6d, 0x62, 0x06, 0x89, 0xde, 0x86, 0x12, 0x5b, 0xcd, 0xd8, 0x1c, 0x2f,
|
||||
0x0c, 0x9e, 0x43, 0x98, 0xbf, 0xc2, 0x08, 0x63, 0x5f, 0x0e, 0xf6, 0x70, 0xe5, 0xf7, 0x60, 0x22,
|
||||
0x96, 0x08, 0xd0, 0x75, 0x38, 0xa6, 0x99, 0x4a, 0xa7, 0xae, 0x68, 0x8a, 0xd1, 0x26, 0x76, 0x32,
|
||||
0x35, 0x66, 0xef, 0x67, 0x56, 0x23, 0x1c, 0x22, 0xa1, 0x04, 0x17, 0x88, 0xd1, 0x3e, 0x1c, 0xc3,
|
||||
0x96, 0x15, 0x80, 0xd0, 0x7a, 0x54, 0x85, 0x12, 0x0b, 0x61, 0x6f, 0x65, 0x1a, 0xab, 0x8f, 0x31,
|
||||
0x5d, 0x59, 0x64, 0x3b, 0xd8, 0x6b, 0x47, 0x67, 0x00, 0x1c, 0xd2, 0xb6, 0x09, 0xe5, 0x79, 0xc7,
|
||||
0x3b, 0x01, 0x0a, 0x32, 0x70, 0x33, 0xe8, 0xc1, 0x11, 0x2a, 0xf9, 0x4f, 0x12, 0x4c, 0xac, 0x13,
|
||||
0xfa, 0xae, 0x69, 0xdf, 0x68, 0xf0, 0x0b, 0xda, 0x21, 0xe4, 0xfd, 0xcd, 0x58, 0xde, 0x7f, 0xa5,
|
||||
0xcf, 0x31, 0x8b, 0x69, 0x9b, 0x97, 0xfd, 0xe5, 0xbf, 0x4b, 0x50, 0x89, 0x51, 0x46, 0xd3, 0x04,
|
||||
0x81, 0x92, 0x65, 0xda, 0xd4, 0x5f, 0xe3, 0x0f, 0xa5, 0x01, 0x4b, 0xa9, 0x91, 0x55, 0x9e, 0xc1,
|
||||
0x62, 0x0f, 0x9d, 0xd9, 0xb9, 0x65, 0x9b, 0xba, 0x88, 0xfb, 0xc3, 0x49, 0x21, 0xc4, 0x0e, 0xed,
|
||||
0xbc, 0x68, 0x9b, 0x3a, 0xe6, 0xd8, 0xf2, 0x1f, 0x25, 0x98, 0x8e, 0x51, 0x0e, 0x21, 0xa5, 0x2b,
|
||||
0xf1, 0x94, 0xfe, 0xe2, 0x61, 0x0c, 0xcb, 0x49, 0xec, 0x5f, 0x25, 0xcd, 0x62, 0x0e, 0x40, 0x5b,
|
||||
0x30, 0x6e, 0x99, 0x9d, 0xe6, 0x3d, 0xb8, 0x99, 0x9b, 0x62, 0x2b, 0x64, 0x23, 0xc4, 0xc2, 0x51,
|
||||
0x60, 0xb4, 0x0b, 0xd3, 0x86, 0xa2, 0x13, 0xc7, 0x52, 0xda, 0xa4, 0x79, 0x0f, 0xce, 0x45, 0x1e,
|
||||
0xe0, 0xb7, 0x05, 0x49, 0x44, 0x9c, 0x16, 0x22, 0xff, 0x2a, 0x65, 0xb7, 0x69, 0x53, 0xf4, 0x2a,
|
||||
0x94, 0xf9, 0x23, 0x89, 0xb6, 0xa9, 0x89, 0xa5, 0xed, 0x2c, 0x1b, 0x9a, 0x86, 0x68, 0xbb, 0xbd,
|
||||
0x57, 0xfd, 0xef, 0x03, 0x8f, 0x75, 0x7d, 0x42, 0x1c, 0xc0, 0xa0, 0x75, 0x28, 0x5a, 0x87, 0x29,
|
||||
0x33, 0xf8, 0xc2, 0xc2, 0x6b, 0x0b, 0x8e, 0x23, 0xff, 0x23, 0xa9, 0x38, 0x5f, 0x5e, 0xae, 0xdf,
|
||||
0xb3, 0x01, 0x0b, 0xca, 0x9a, 0xdc, 0x41, 0xb3, 0x61, 0x54, 0xac, 0xb2, 0x22, 0x2e, 0x2f, 0x1d,
|
||||
0x26, 0x2e, 0xa3, 0x2b, 0x43, 0xb0, 0x89, 0xf0, 0x1b, 0x7d, 0x41, 0xf2, 0x5f, 0x25, 0x98, 0xe6,
|
||||
0x0a, 0xb5, 0x5d, 0x5b, 0xa5, 0xbd, 0xa1, 0x65, 0xd0, 0xad, 0x58, 0x06, 0x5d, 0xee, 0xd3, 0xd0,
|
||||
0x94, 0xc6, 0xb9, 0x59, 0xf4, 0x73, 0x09, 0x1e, 0x48, 0x51, 0x0f, 0x21, 0xc3, 0x90, 0x78, 0x86,
|
||||
0x79, 0xe5, 0xb0, 0x06, 0xe6, 0x64, 0x99, 0x9b, 0x90, 0x61, 0x1e, 0x0f, 0xdc, 0x33, 0x00, 0x96,
|
||||
0xad, 0xee, 0xa8, 0x1a, 0xe9, 0x8a, 0xcb, 0xe0, 0x72, 0x38, 0x24, 0x8d, 0xa0, 0x07, 0x47, 0xa8,
|
||||
0xd0, 0xb7, 0x60, 0xb6, 0x43, 0xb6, 0x14, 0x57, 0xa3, 0x8b, 0x9d, 0xce, 0x92, 0x62, 0x29, 0x9b,
|
||||
0xaa, 0xa6, 0x52, 0x55, 0xec, 0xb0, 0xc7, 0xea, 0x17, 0xbc, 0x4b, 0xda, 0x2c, 0x8a, 0xdb, 0x7b,
|
||||
0xd5, 0xc7, 0x0f, 0xbe, 0x98, 0xf1, 0x89, 0x7b, 0x38, 0x47, 0x08, 0xfa, 0xae, 0x04, 0x15, 0x9b,
|
||||
0xbc, 0xe3, 0xaa, 0x36, 0xe9, 0x2c, 0xdb, 0xa6, 0x15, 0xd3, 0xa0, 0xc0, 0x35, 0xb8, 0xb4, 0xbf,
|
||||
0x57, 0xad, 0xe0, 0x1c, 0x9a, 0x7e, 0x74, 0xc8, 0x15, 0x84, 0x28, 0xcc, 0x28, 0x9a, 0x66, 0xbe,
|
||||
0x4b, 0xe2, 0x1e, 0x28, 0x72, 0xf9, 0xf5, 0xfd, 0xbd, 0xea, 0xcc, 0x62, 0xba, 0xbb, 0x1f, 0xd1,
|
||||
0x59, 0xf0, 0x68, 0x01, 0x46, 0x77, 0x4c, 0xcd, 0xd5, 0x89, 0x53, 0x29, 0x71, 0x49, 0x2c, 0xe3,
|
||||
0x8e, 0x5e, 0xf5, 0x9a, 0x6e, 0xef, 0x55, 0x8f, 0x5e, 0x6c, 0xf2, 0xa3, 0x0f, 0x9f, 0x8a, 0xed,
|
||||
0xd1, 0x58, 0xcd, 0x24, 0xa6, 0x3c, 0x3f, 0x77, 0x2d, 0x87, 0x39, 0xe6, 0x72, 0xd8, 0x85, 0xa3,
|
||||
0x74, 0x48, 0x87, 0xb1, 0x6d, 0xb1, 0x6f, 0x77, 0x2a, 0xa3, 0x03, 0xad, 0x7e, 0xb1, 0x7d, 0x7f,
|
||||
0x7d, 0x5a, 0x88, 0x1c, 0xf3, 0x9b, 0x1d, 0x1c, 0x4a, 0x40, 0x4f, 0xc0, 0x28, 0xff, 0x58, 0x59,
|
||||
0xe6, 0xa7, 0xb5, 0xe5, 0x30, 0x13, 0x5d, 0xf6, 0x9a, 0xb1, 0xdf, 0xef, 0x93, 0xae, 0x34, 0x96,
|
||||
0xf8, 0xe1, 0x6a, 0x82, 0x74, 0xa5, 0xb1, 0x84, 0xfd, 0x7e, 0x64, 0xc1, 0xa8, 0x43, 0x56, 0x55,
|
||||
0xc3, 0xdd, 0xad, 0xc0, 0x40, 0xd7, 0xc5, 0xcd, 0x0b, 0x9c, 0x3b, 0x71, 0x14, 0x15, 0x4a, 0x14,
|
||||
0xfd, 0xd8, 0x17, 0x83, 0x76, 0x61, 0xcc, 0x76, 0x8d, 0x45, 0x67, 0xc3, 0x21, 0x76, 0x65, 0x9c,
|
||||
0xcb, 0xec, 0x37, 0x39, 0x63, 0x9f, 0x3f, 0x29, 0x35, 0xf0, 0x60, 0x40, 0x81, 0x43, 0x61, 0xe8,
|
||||
0x23, 0x09, 0x90, 0xe3, 0x5a, 0x96, 0x46, 0x74, 0x62, 0x50, 0x45, 0xe3, 0xa7, 0x61, 0x4e, 0xe5,
|
||||
0x18, 0xd7, 0xa1, 0xd1, 0xaf, 0xdd, 0x29, 0xa0, 0xa4, 0x32, 0xc1, 0x51, 0x73, 0x9a, 0x14, 0x67,
|
||||
0xe8, 0xc1, 0x86, 0x62, 0xcb, 0xe1, 0xbf, 0x2b, 0x13, 0x03, 0x0d, 0x45, 0xf6, 0xa9, 0x60, 0x38,
|
||||
0x14, 0xa2, 0x1f, 0xfb, 0x62, 0xd0, 0x55, 0x98, 0xb5, 0x89, 0xd2, 0xb9, 0x62, 0x68, 0x3d, 0x6c,
|
||||
0x9a, 0xf4, 0xa2, 0xaa, 0x11, 0xa7, 0xe7, 0x50, 0xa2, 0x57, 0x26, 0x79, 0xd8, 0x04, 0x4f, 0x2e,
|
||||
0x70, 0x26, 0x15, 0xce, 0xe1, 0xe6, 0x2f, 0x01, 0xc4, 0x19, 0xec, 0x70, 0xde, 0xd2, 0x1d, 0xee,
|
||||
0x25, 0x40, 0xa8, 0xea, 0x7d, 0x7b, 0x09, 0x10, 0x11, 0x71, 0xf0, 0x11, 0xd2, 0x57, 0x23, 0x30,
|
||||
0x13, 0x12, 0xdf, 0xf5, 0x4b, 0x80, 0x0c, 0x96, 0x21, 0xbc, 0x04, 0xc8, 0xbe, 0x4a, 0x2f, 0xdc,
|
||||
0xef, 0xab, 0xf4, 0xfb, 0xf0, 0x02, 0x81, 0xdf, 0xce, 0x87, 0x4e, 0xfc, 0xf7, 0xbf, 0x9d, 0x0f,
|
||||
0x75, 0xcd, 0x29, 0x67, 0x7e, 0x33, 0x12, 0x35, 0xe8, 0x3f, 0xe8, 0x0a, 0xf8, 0xf0, 0x2f, 0x0d,
|
||||
0xe5, 0xcf, 0x0b, 0x70, 0x3c, 0x39, 0x63, 0x63, 0x37, 0x81, 0xd2, 0x1d, 0x6f, 0x02, 0x1b, 0x70,
|
||||
0x62, 0xcb, 0xd5, 0xb4, 0x1e, 0x77, 0x48, 0xe4, 0x3a, 0xd0, 0x3b, 0xb5, 0x7f, 0x58, 0x70, 0x9e,
|
||||
0xb8, 0x98, 0x41, 0x83, 0x33, 0x39, 0x73, 0x6e, 0x35, 0x0b, 0x03, 0xdd, 0x6a, 0xa6, 0x2e, 0xd5,
|
||||
0x8a, 0x77, 0x7f, 0xa9, 0x96, 0x7d, 0x43, 0x59, 0x1a, 0xe0, 0x86, 0xf2, 0x5e, 0x5c, 0x29, 0x66,
|
||||
0x24, 0xbe, 0x3b, 0x5d, 0x29, 0xca, 0x0f, 0xc3, 0x9c, 0x60, 0x63, 0xdf, 0x4b, 0xa6, 0x41, 0x6d,
|
||||
0x53, 0xd3, 0x88, 0xbd, 0xec, 0xea, 0x7a, 0x4f, 0x3e, 0x0f, 0x93, 0xf1, 0x7b, 0x6d, 0x6f, 0xe4,
|
||||
0xbd, 0xab, 0x76, 0x71, 0x97, 0x12, 0x19, 0x79, 0xaf, 0x1d, 0x07, 0x14, 0xf2, 0x07, 0x12, 0xcc,
|
||||
0x66, 0xbf, 0xa1, 0x43, 0x1a, 0x4c, 0xea, 0xca, 0x6e, 0xf4, 0x11, 0xa1, 0x34, 0xe0, 0x8e, 0x1b,
|
||||
0xed, 0xef, 0x55, 0x27, 0xd7, 0x62, 0x58, 0x38, 0x81, 0x2d, 0x7f, 0x21, 0xc1, 0xc9, 0x9c, 0x6b,
|
||||
0xc6, 0xe1, 0x6a, 0x82, 0xae, 0x41, 0x59, 0x57, 0x76, 0x9b, 0xae, 0xdd, 0x25, 0x03, 0x9f, 0x31,
|
||||
0xf0, 0x5c, 0xb2, 0x26, 0x50, 0x70, 0x80, 0x27, 0x7f, 0x22, 0x41, 0x25, 0xaf, 0x1e, 0x44, 0x67,
|
||||
0x63, 0x17, 0xa2, 0x8f, 0x26, 0x2e, 0x44, 0xa7, 0x53, 0x7c, 0x43, 0xba, 0x0e, 0xfd, 0x54, 0x82,
|
||||
0xd9, 0xec, 0xba, 0x19, 0x3d, 0x13, 0xd3, 0xb8, 0x9a, 0xd0, 0x78, 0x2a, 0xc1, 0x25, 0xf4, 0xdd,
|
||||
0x86, 0x49, 0x51, 0x5d, 0x0b, 0x18, 0xe1, 0xe5, 0x27, 0x0f, 0xce, 0xaa, 0x02, 0xcc, 0xaf, 0x13,
|
||||
0xf9, 0x48, 0xc6, 0xdb, 0x70, 0x02, 0x57, 0xfe, 0xd9, 0x08, 0x94, 0x9a, 0x6d, 0x45, 0x23, 0x43,
|
||||
0x28, 0xea, 0xae, 0xc5, 0x8a, 0xba, 0x7e, 0xdf, 0xf9, 0x73, 0x2d, 0x73, 0xeb, 0xb9, 0xcd, 0x44,
|
||||
0x3d, 0x77, 0x6e, 0x20, 0xf4, 0x83, 0x4b, 0xb9, 0xe7, 0x61, 0x2c, 0x50, 0xa2, 0xbf, 0xd5, 0x43,
|
||||
0xfe, 0x78, 0x04, 0xc6, 0x23, 0x22, 0xfa, 0x5c, 0x7b, 0x76, 0x62, 0xab, 0xf7, 0x20, 0x7f, 0x29,
|
||||
0x8a, 0xc8, 0xae, 0xf9, 0xeb, 0xb7, 0xf7, 0x86, 0x2e, 0x7c, 0x0b, 0x95, 0x5e, 0xd6, 0xcf, 0xc3,
|
||||
0x24, 0xe5, 0xff, 0xb0, 0x09, 0xce, 0xf8, 0x0a, 0x3c, 0x8a, 0x83, 0x97, 0x99, 0xad, 0x58, 0x2f,
|
||||
0x4e, 0x50, 0xcf, 0xbd, 0x00, 0x13, 0x31, 0x61, 0x7d, 0x3d, 0x79, 0xfb, 0xad, 0x04, 0x8f, 0xde,
|
||||
0x71, 0x4f, 0x86, 0xea, 0xb1, 0xe9, 0x55, 0x4b, 0x4c, 0xaf, 0xf9, 0x7c, 0x80, 0x21, 0x3e, 0x96,
|
||||
0xf8, 0xd1, 0x08, 0xa0, 0xd6, 0xb6, 0x6a, 0x77, 0x1a, 0x8a, 0x4d, 0x7b, 0x58, 0xfc, 0x8f, 0x6a,
|
||||
0x08, 0x13, 0xee, 0x2c, 0x8c, 0x77, 0x88, 0xd3, 0xb6, 0x55, 0xee, 0x2c, 0xb1, 0x57, 0x08, 0xce,
|
||||
0x41, 0x96, 0xc3, 0x2e, 0x1c, 0xa5, 0x43, 0x5d, 0x28, 0xef, 0x78, 0xff, 0xd4, 0xf3, 0x6f, 0xde,
|
||||
0xfa, 0x2d, 0x66, 0xc3, 0xff, 0xfa, 0x85, 0xf1, 0x25, 0x1a, 0x1c, 0x1c, 0x80, 0xcb, 0x1f, 0x4a,
|
||||
0x30, 0x9b, 0x76, 0xcc, 0x32, 0x53, 0xfd, 0xfe, 0x3b, 0xe7, 0x61, 0x28, 0x72, 0x74, 0xe6, 0x95,
|
||||
0x63, 0xde, 0x89, 0x37, 0x93, 0x8c, 0x79, 0xab, 0xfc, 0xa5, 0x04, 0x73, 0xd9, 0xaa, 0x0d, 0x61,
|
||||
0x2b, 0x71, 0x3d, 0xbe, 0x95, 0xe8, 0xf7, 0xd8, 0x20, 0x5b, 0xef, 0x9c, 0x6d, 0xc5, 0x5e, 0xe6,
|
||||
0x18, 0x0c, 0xc1, 0xc8, 0xad, 0xb8, 0x91, 0x8b, 0x87, 0x36, 0x32, 0xdb, 0xc0, 0xfa, 0x13, 0x37,
|
||||
0x6f, 0xcd, 0x1f, 0xf9, 0xec, 0xd6, 0xfc, 0x91, 0x3f, 0xdf, 0x9a, 0x3f, 0xf2, 0xfe, 0xfe, 0xbc,
|
||||
0x74, 0x73, 0x7f, 0x5e, 0xfa, 0x6c, 0x7f, 0x5e, 0xfa, 0xdb, 0xfe, 0xbc, 0xf4, 0x83, 0x2f, 0xe6,
|
||||
0x8f, 0x5c, 0x1b, 0x15, 0x98, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xdb, 0xfb, 0x34, 0x4b, 0xec,
|
||||
0x3c, 0x00, 0x00,
|
||||
0x5e, 0x13, 0xec, 0xb3, 0x4f, 0x75, 0x55, 0xba, 0xed, 0x6e, 0xd6, 0xda, 0xa6, 0xbe, 0xd0, 0x35,
|
||||
0xbb, 0xe6, 0x02, 0x47, 0xd9, 0x74, 0xb7, 0xf8, 0x2f, 0xfe, 0x83, 0xff, 0xe5, 0xa1, 0xcf, 0xfe,
|
||||
0xbf, 0x50, 0x4e, 0xb1, 0x54, 0x5d, 0x69, 0x6f, 0xab, 0x06, 0xb1, 0x7b, 0xbe, 0x7a, 0x0b, 0x36,
|
||||
0x71, 0x4c, 0xd7, 0x6e, 0x93, 0xa4, 0x4e, 0x07, 0x72, 0x39, 0x0b, 0x3a, 0xa1, 0xca, 0xc2, 0x4e,
|
||||
0xca, 0x92, 0xd9, 0x85, 0x3c, 0x2e, 0xdb, 0x35, 0xa8, 0xaa, 0xa7, 0xc5, 0x3c, 0x7b, 0x27, 0x06,
|
||||
0xa7, 0xbd, 0x4d, 0x74, 0x25, 0xc5, 0xf7, 0x4c, 0x1e, 0x9f, 0x4b, 0x55, 0x6d, 0x41, 0x35, 0xa8,
|
||||
0x43, 0xed, 0x83, 0x6c, 0x72, 0x88, 0xbd, 0x43, 0xec, 0xe8, 0x2a, 0x29, 0xba, 0xa5, 0x91, 0x2c,
|
||||
0x9b, 0x9e, 0xcc, 0x5d, 0xdc, 0x2c, 0xea, 0xe7, 0x0f, 0x08, 0x05, 0xcb, 0xd4, 0xd4, 0x76, 0x2f,
|
||||
0x2f, 0x0c, 0xe4, 0x1a, 0xc0, 0x62, 0x63, 0xe5, 0x2a, 0xb1, 0xd9, 0x72, 0xa3, 0x53, 0x50, 0x32,
|
||||
0x14, 0x9d, 0x54, 0xa5, 0x53, 0xd2, 0xe9, 0xd1, 0xfa, 0xb1, 0x9b, 0x7b, 0xf3, 0x47, 0xf6, 0xf7,
|
||||
0xe6, 0x4b, 0xeb, 0x8a, 0x4e, 0x30, 0x9f, 0x91, 0x7f, 0x2c, 0xc1, 0x83, 0x4b, 0xae, 0x43, 0x4d,
|
||||
0x7d, 0x8d, 0x50, 0x5b, 0x6d, 0x2f, 0xb9, 0xb6, 0x4d, 0x0c, 0xda, 0xa4, 0x0a, 0x75, 0x9d, 0x3b,
|
||||
0xf3, 0xa3, 0x6b, 0x50, 0xde, 0x51, 0x34, 0x97, 0x54, 0x0b, 0xa7, 0xa4, 0xd3, 0x63, 0x67, 0x6a,
|
||||
0x35, 0x11, 0x86, 0x51, 0x9f, 0xfa, 0x81, 0x58, 0xf3, 0x03, 0xa5, 0xf6, 0xaa, 0xab, 0x18, 0x54,
|
||||
0xa5, 0xbd, 0xfa, 0x09, 0x01, 0x79, 0x4c, 0xc8, 0xbd, 0xca, 0xb0, 0xb0, 0x07, 0x29, 0x7f, 0x5f,
|
||||
0x82, 0x47, 0x72, 0x75, 0x5b, 0x55, 0x1d, 0x8a, 0x74, 0x28, 0xab, 0x94, 0xe8, 0x4e, 0x55, 0x3a,
|
||||
0x55, 0x3c, 0x3d, 0x76, 0xe6, 0x72, 0xad, 0xaf, 0x4d, 0x50, 0xcb, 0x05, 0xaf, 0x8f, 0x0b, 0xbd,
|
||||
0xca, 0x2b, 0x0c, 0x1e, 0x7b, 0x52, 0xe4, 0x1f, 0x4a, 0x80, 0xa2, 0x3c, 0x2d, 0xc5, 0xee, 0x12,
|
||||
0x7a, 0x17, 0x5e, 0x7a, 0xed, 0x70, 0x5e, 0x9a, 0x16, 0x90, 0x63, 0x9e, 0xc0, 0x98, 0x93, 0xde,
|
||||
0x97, 0x60, 0x26, 0xad, 0x13, 0xf7, 0xce, 0x56, 0xdc, 0x3b, 0x8b, 0x87, 0xf0, 0x8e, 0x87, 0x9a,
|
||||
0xe3, 0x96, 0x5f, 0x15, 0x60, 0x74, 0x59, 0x21, 0xba, 0x69, 0x34, 0x09, 0x45, 0xdf, 0x84, 0x0a,
|
||||
0xdb, 0xd9, 0x1d, 0x85, 0x2a, 0xdc, 0x23, 0x63, 0x67, 0xfe, 0xef, 0x20, 0x73, 0x9d, 0x1a, 0xa3,
|
||||
0xae, 0xed, 0x3c, 0x5d, 0xbb, 0xb2, 0x79, 0x9d, 0xb4, 0xe9, 0x1a, 0xa1, 0x4a, 0x1d, 0x09, 0x39,
|
||||
0x10, 0x8e, 0xe1, 0x00, 0x15, 0xbd, 0x05, 0x25, 0xc7, 0x22, 0x6d, 0xe1, 0xcc, 0x17, 0xfb, 0x34,
|
||||
0x2b, 0xd0, 0xb4, 0x69, 0x91, 0x76, 0xb8, 0x5a, 0xec, 0x17, 0xe6, 0xb8, 0x68, 0x0b, 0x8e, 0x3a,
|
||||
0x3c, 0x0c, 0xaa, 0x45, 0x2e, 0xe1, 0xfc, 0xc0, 0x12, 0xbc, 0x60, 0x9a, 0x10, 0x32, 0x8e, 0x7a,
|
||||
0xbf, 0xb1, 0x40, 0x97, 0x7f, 0x2f, 0xc1, 0x78, 0x40, 0xcb, 0x57, 0xec, 0x8d, 0x94, 0xef, 0x6a,
|
||||
0x77, 0xe7, 0x3b, 0xc6, 0xcd, 0x3d, 0x77, 0x5c, 0xc8, 0xaa, 0xf8, 0x23, 0x11, 0xbf, 0xbd, 0xe9,
|
||||
0xc7, 0x43, 0x81, 0xc7, 0xc3, 0x73, 0x83, 0x9a, 0x95, 0x13, 0x06, 0x5f, 0x14, 0x23, 0xe6, 0x30,
|
||||
0x77, 0xa2, 0x37, 0xa1, 0xe2, 0x10, 0x8d, 0xb4, 0xa9, 0x69, 0x0b, 0x73, 0x9e, 0xb9, 0x4b, 0x73,
|
||||
0x94, 0x4d, 0xa2, 0x35, 0x05, 0x6b, 0xfd, 0x18, 0xb3, 0xc7, 0xff, 0x85, 0x03, 0x48, 0xf4, 0x3a,
|
||||
0x54, 0x28, 0xd1, 0x2d, 0x4d, 0xa1, 0xfe, 0xc6, 0x7a, 0x2a, 0xdf, 0x24, 0x06, 0xdb, 0x30, 0x3b,
|
||||
0x2d, 0xc1, 0xc0, 0x17, 0x3f, 0x70, 0x96, 0x3f, 0x8a, 0x03, 0x40, 0xf4, 0x81, 0x04, 0x13, 0xae,
|
||||
0xd5, 0x61, 0xa4, 0x94, 0x25, 0xd8, 0x6e, 0x4f, 0x44, 0xc3, 0xc5, 0x41, 0xdd, 0xb6, 0x11, 0x43,
|
||||
0xab, 0xcf, 0x08, 0xe1, 0x13, 0xf1, 0x71, 0x9c, 0x90, 0x8a, 0x16, 0x61, 0x52, 0x57, 0x0d, 0x4c,
|
||||
0x94, 0x4e, 0xaf, 0x49, 0xda, 0xa6, 0xd1, 0x71, 0xaa, 0xa5, 0x53, 0xd2, 0xe9, 0x72, 0xfd, 0xa4,
|
||||
0x00, 0x98, 0x5c, 0x8b, 0x4f, 0xe3, 0x24, 0x3d, 0xfa, 0x3a, 0x20, 0xdf, 0xae, 0x4b, 0xde, 0x79,
|
||||
0xa1, 0x9a, 0x46, 0xb5, 0x7c, 0x4a, 0x3a, 0x5d, 0xac, 0xcf, 0x0a, 0x14, 0xd4, 0x4a, 0x51, 0xe0,
|
||||
0x0c, 0x2e, 0xf9, 0x9f, 0x25, 0x98, 0x4c, 0x04, 0x38, 0xba, 0x0a, 0x33, 0x6d, 0x2f, 0x7d, 0xae,
|
||||
0xbb, 0xfa, 0x26, 0xb1, 0x9b, 0xed, 0x6d, 0xd2, 0x71, 0x35, 0xd2, 0xe1, 0xab, 0x5e, 0xae, 0xcf,
|
||||
0x09, 0x19, 0x33, 0x4b, 0x99, 0x54, 0x38, 0x87, 0x9b, 0xe9, 0x6d, 0xf0, 0xa1, 0x35, 0xd5, 0x71,
|
||||
0x02, 0xcc, 0x02, 0xc7, 0x0c, 0xf4, 0x5e, 0x4f, 0x51, 0xe0, 0x0c, 0x2e, 0xa6, 0x63, 0x87, 0x38,
|
||||
0xaa, 0x4d, 0x3a, 0x49, 0x1d, 0x8b, 0x71, 0x1d, 0x97, 0x33, 0xa9, 0x70, 0x0e, 0x37, 0x3a, 0x0b,
|
||||
0x63, 0x9e, 0x34, 0xee, 0x71, 0xb1, 0x34, 0x41, 0xc2, 0x5e, 0x0f, 0xa7, 0x70, 0x94, 0x8e, 0x99,
|
||||
0x66, 0x6e, 0xf2, 0x02, 0xa2, 0x93, 0xbf, 0x24, 0x57, 0x52, 0x14, 0x38, 0x83, 0x8b, 0x99, 0xe6,
|
||||
0xc5, 0x4c, 0xca, 0xb4, 0xa3, 0x71, 0xd3, 0x36, 0x32, 0xa9, 0x70, 0x0e, 0x37, 0x8b, 0x3c, 0x4f,
|
||||
0xe5, 0xc5, 0x1d, 0x45, 0xd5, 0x94, 0x4d, 0x8d, 0x54, 0x47, 0xe2, 0x91, 0xb7, 0x1e, 0x9f, 0xc6,
|
||||
0x49, 0x7a, 0x74, 0x09, 0xa6, 0xbc, 0xa1, 0x0d, 0x43, 0x09, 0x40, 0x2a, 0x1c, 0xe4, 0x41, 0x01,
|
||||
0x32, 0xb5, 0x9e, 0x24, 0xc0, 0x69, 0x1e, 0xf9, 0x2f, 0x12, 0x9c, 0xcc, 0xd9, 0x49, 0xe8, 0x65,
|
||||
0x28, 0xd1, 0x9e, 0xe5, 0x9f, 0xbf, 0xff, 0xeb, 0x67, 0xf4, 0x56, 0xcf, 0x22, 0xb7, 0xf7, 0xe6,
|
||||
0x1f, 0xca, 0x61, 0x63, 0xd3, 0x98, 0x33, 0xa2, 0x6f, 0xc3, 0xb8, 0x6d, 0x6a, 0x9a, 0x6a, 0x74,
|
||||
0x3d, 0x12, 0x91, 0x4d, 0x2e, 0xf4, 0xb9, 0xd3, 0x71, 0x14, 0x23, 0xcc, 0x96, 0x53, 0xfb, 0x7b,
|
||||
0xf3, 0xe3, 0xb1, 0x39, 0x1c, 0x17, 0x27, 0xff, 0xa6, 0x00, 0xb0, 0x4c, 0x2c, 0xcd, 0xec, 0xe9,
|
||||
0xc4, 0x18, 0xc6, 0x09, 0xfa, 0x76, 0xec, 0x04, 0x7d, 0xa9, 0xdf, 0x8c, 0x16, 0xa8, 0x9a, 0x7b,
|
||||
0x84, 0x76, 0x13, 0x47, 0xe8, 0xcb, 0x83, 0x8b, 0x38, 0xf8, 0x0c, 0xbd, 0x55, 0x84, 0xe9, 0x90,
|
||||
0x78, 0xc9, 0x34, 0x3a, 0x2a, 0xdf, 0x13, 0x2f, 0xc4, 0x62, 0xe2, 0xf1, 0x44, 0x4c, 0x9c, 0xcc,
|
||||
0x60, 0x89, 0xc4, 0xc3, 0xd5, 0x40, 0xfb, 0x02, 0x67, 0x3f, 0x1f, 0x17, 0x7e, 0x7b, 0x6f, 0xfe,
|
||||
0xc0, 0x7a, 0xbe, 0x16, 0x60, 0xc6, 0x95, 0x45, 0x8f, 0xc1, 0x51, 0x9b, 0x28, 0x8e, 0x69, 0xf0,
|
||||
0x34, 0x31, 0x1a, 0x1a, 0x85, 0xf9, 0x28, 0x16, 0xb3, 0xe8, 0x09, 0x18, 0xd1, 0x89, 0xe3, 0x28,
|
||||
0x5d, 0xc2, 0x33, 0xc2, 0x68, 0x7d, 0x52, 0x10, 0x8e, 0xac, 0x79, 0xc3, 0xd8, 0x9f, 0x47, 0xd7,
|
||||
0x61, 0x42, 0x53, 0x1c, 0x11, 0xda, 0x2d, 0x55, 0x27, 0x7c, 0xcf, 0x8f, 0x9d, 0xf9, 0x9f, 0xbb,
|
||||
0x8b, 0x18, 0xc6, 0x11, 0x9e, 0x44, 0xab, 0x31, 0x24, 0x9c, 0x40, 0x46, 0x3b, 0x80, 0xd8, 0x48,
|
||||
0xcb, 0x56, 0x0c, 0xc7, 0x73, 0x19, 0x93, 0x37, 0xd2, 0xb7, 0xbc, 0x20, 0xbf, 0xad, 0xa6, 0xd0,
|
||||
0x70, 0x86, 0x04, 0xf9, 0x0f, 0x12, 0x4c, 0x84, 0x0b, 0x36, 0x84, 0x42, 0xe9, 0xad, 0x78, 0xa1,
|
||||
0xf4, 0xfc, 0xc0, 0xc1, 0x9b, 0x53, 0x29, 0x7d, 0x58, 0x04, 0x14, 0x12, 0xb1, 0xd4, 0xb0, 0xa9,
|
||||
0xb4, 0x6f, 0xdc, 0xc5, 0x3d, 0xe2, 0x67, 0x12, 0x20, 0x91, 0xac, 0x17, 0x0d, 0xc3, 0xa4, 0x3c,
|
||||
0xff, 0xfb, 0x6a, 0xbe, 0x36, 0xb0, 0x9a, 0xbe, 0x06, 0xb5, 0x8d, 0x14, 0xf6, 0x05, 0x83, 0xda,
|
||||
0xbd, 0x70, 0xc5, 0xd2, 0x04, 0x38, 0x43, 0x21, 0xf4, 0x0e, 0x80, 0x2d, 0x30, 0x5b, 0xa6, 0x48,
|
||||
0x01, 0x2f, 0x0d, 0x90, 0x4d, 0x19, 0xc0, 0x92, 0x69, 0x6c, 0xa9, 0xdd, 0x30, 0xa1, 0xe1, 0x00,
|
||||
0x18, 0x47, 0x84, 0xcc, 0x5e, 0x80, 0x93, 0x39, 0xda, 0xa3, 0xe3, 0x50, 0xbc, 0x41, 0x7a, 0x9e,
|
||||
0x5b, 0x31, 0xfb, 0x13, 0x9d, 0x88, 0xde, 0xc7, 0x46, 0xc5, 0x55, 0xea, 0x5c, 0xe1, 0x39, 0x49,
|
||||
0xfe, 0xb2, 0x1c, 0x8d, 0x35, 0x5e, 0xc5, 0x9e, 0x86, 0x8a, 0x4d, 0x2c, 0x4d, 0x6d, 0x2b, 0x8e,
|
||||
0xa8, 0x67, 0x78, 0x41, 0x8a, 0xc5, 0x18, 0x0e, 0x66, 0x63, 0xf5, 0x6e, 0xe1, 0xfe, 0xd6, 0xbb,
|
||||
0xc5, 0x7b, 0x5d, 0xef, 0x9a, 0x50, 0x71, 0xfc, 0x42, 0xb7, 0xc4, 0xc1, 0x17, 0x0f, 0x91, 0xb3,
|
||||
0x45, 0x8d, 0x1b, 0x08, 0x0c, 0xaa, 0xdb, 0x40, 0x48, 0x56, 0x5d, 0x5b, 0xee, 0xb3, 0xae, 0x5d,
|
||||
0x85, 0x13, 0x36, 0xd9, 0x51, 0x99, 0x1a, 0x97, 0x55, 0x87, 0x9a, 0x76, 0x6f, 0x55, 0xd5, 0x55,
|
||||
0x2a, 0xca, 0x9e, 0xea, 0xfe, 0xde, 0xfc, 0x09, 0x9c, 0x31, 0x8f, 0x33, 0xb9, 0x58, 0x76, 0xb6,
|
||||
0x14, 0xd7, 0x21, 0x1d, 0x9e, 0xd2, 0x2a, 0x61, 0x76, 0x6e, 0xf0, 0x51, 0x2c, 0x66, 0x91, 0x1e,
|
||||
0x0b, 0xee, 0xca, 0xbd, 0x08, 0xee, 0x89, 0xfc, 0xc0, 0x46, 0x1b, 0x70, 0xd2, 0xb2, 0xcd, 0xae,
|
||||
0x4d, 0x1c, 0x67, 0x99, 0x28, 0x1d, 0x4d, 0x35, 0x88, 0xef, 0xaf, 0x51, 0x6e, 0xe7, 0x43, 0xfb,
|
||||
0x7b, 0xf3, 0x27, 0x1b, 0xd9, 0x24, 0x38, 0x8f, 0x57, 0xfe, 0xac, 0x04, 0xc7, 0x93, 0xa7, 0x6c,
|
||||
0x4e, 0x55, 0x2a, 0x0d, 0x54, 0x95, 0x3e, 0x19, 0xd9, 0x36, 0x5e, 0xc9, 0x1e, 0x44, 0x43, 0xc6,
|
||||
0xd6, 0x59, 0x84, 0x49, 0x91, 0x47, 0xfc, 0x49, 0x51, 0x97, 0x07, 0xd1, 0xb0, 0x11, 0x9f, 0xc6,
|
||||
0x49, 0x7a, 0x56, 0x6b, 0x86, 0x25, 0xa4, 0x0f, 0x52, 0x8a, 0xd7, 0x9a, 0x8b, 0x49, 0x02, 0x9c,
|
||||
0xe6, 0x41, 0x6b, 0x30, 0xed, 0x1a, 0x69, 0x28, 0x2f, 0x3a, 0x1f, 0x12, 0x50, 0xd3, 0x1b, 0x69,
|
||||
0x12, 0x9c, 0xc5, 0x87, 0x76, 0x00, 0xda, 0x7e, 0x41, 0xe0, 0x54, 0x8f, 0xf2, 0x5c, 0x5d, 0x1f,
|
||||
0x78, 0x6f, 0x05, 0xb5, 0x45, 0x98, 0x11, 0x83, 0x21, 0x07, 0x47, 0x24, 0xa1, 0x17, 0x60, 0xdc,
|
||||
0xe6, 0x17, 0x0f, 0xdf, 0x00, 0xaf, 0x78, 0x7f, 0x40, 0xb0, 0x8d, 0xe3, 0xe8, 0x24, 0x8e, 0xd3,
|
||||
0xa2, 0x73, 0x30, 0xd1, 0x66, 0x35, 0x2a, 0x53, 0x63, 0xc9, 0x74, 0x0d, 0xca, 0x03, 0xbd, 0x58,
|
||||
0x47, 0xac, 0x4e, 0x58, 0x8a, 0xcd, 0xe0, 0x04, 0xa5, 0xfc, 0x47, 0x29, 0x7a, 0xbc, 0x05, 0x65,
|
||||
0xfa, 0xb9, 0x58, 0x49, 0xf6, 0x58, 0xa2, 0x24, 0x9b, 0x49, 0x73, 0x44, 0x2a, 0xb2, 0xef, 0x64,
|
||||
0x57, 0xe8, 0x17, 0x0f, 0x55, 0xa1, 0x87, 0xc7, 0xf4, 0x9d, 0x4b, 0xf4, 0x8f, 0x25, 0x98, 0xb9,
|
||||
0xd8, 0xbc, 0x64, 0x9b, 0xae, 0xe5, 0xab, 0x77, 0xc5, 0xf2, 0xfc, 0xfc, 0x35, 0x28, 0xd9, 0xae,
|
||||
0xe6, 0xdb, 0xf5, 0x5f, 0xbe, 0x5d, 0xd8, 0xd5, 0x98, 0x5d, 0xd3, 0x09, 0x2e, 0xcf, 0x28, 0xc6,
|
||||
0x80, 0xde, 0x82, 0xa3, 0xb6, 0x62, 0x74, 0x89, 0x7f, 0x80, 0x3f, 0xdb, 0xa7, 0x35, 0x2b, 0xcb,
|
||||
0x98, 0xb1, 0x47, 0xca, 0x48, 0x8e, 0x86, 0x05, 0xaa, 0xfc, 0x53, 0x09, 0x26, 0x2f, 0xb7, 0x5a,
|
||||
0x8d, 0x15, 0x83, 0x67, 0x80, 0x86, 0x42, 0xb7, 0x59, 0x8d, 0x61, 0x29, 0x74, 0x3b, 0x59, 0x63,
|
||||
0xb0, 0x39, 0xcc, 0x67, 0xd0, 0x36, 0x8c, 0xb0, 0xcc, 0x43, 0x8c, 0xce, 0x80, 0xd7, 0x03, 0x21,
|
||||
0xae, 0xee, 0x81, 0x84, 0xb5, 0xab, 0x18, 0xc0, 0x3e, 0xbc, 0xfc, 0x1e, 0x9c, 0x88, 0xa8, 0xc7,
|
||||
0xfc, 0xc5, 0x5f, 0x36, 0x51, 0x1b, 0xca, 0x4c, 0x13, 0xff, 0xdd, 0xb2, 0xdf, 0xe7, 0xb7, 0x84,
|
||||
0xc9, 0x61, 0x0d, 0xc6, 0x7e, 0x39, 0xd8, 0xc3, 0x96, 0xd7, 0x60, 0xfc, 0xb2, 0xe9, 0xd0, 0x86,
|
||||
0x69, 0x53, 0xee, 0x36, 0xf4, 0x08, 0x14, 0x75, 0xd5, 0x10, 0x27, 0xfc, 0x98, 0xe0, 0x29, 0xb2,
|
||||
0x33, 0x88, 0x8d, 0xf3, 0x69, 0x65, 0x57, 0x64, 0xb2, 0x70, 0x5a, 0xd9, 0xc5, 0x6c, 0x5c, 0xbe,
|
||||
0x04, 0x23, 0x62, 0x39, 0xa2, 0x40, 0xc5, 0x83, 0x81, 0x8a, 0x19, 0x40, 0xbf, 0x2c, 0xc0, 0x88,
|
||||
0xd0, 0x7e, 0x08, 0x17, 0xc1, 0x37, 0x62, 0x17, 0xc1, 0x73, 0x83, 0xad, 0x74, 0xee, 0x2d, 0xb0,
|
||||
0x93, 0xb8, 0x05, 0xbe, 0x38, 0x20, 0xfe, 0xc1, 0x57, 0xc0, 0x8f, 0x24, 0x98, 0x88, 0xc7, 0x1c,
|
||||
0x3a, 0x0b, 0x63, 0xec, 0x3c, 0x52, 0xdb, 0x64, 0x3d, 0x2c, 0xa8, 0x83, 0x47, 0x99, 0x66, 0x38,
|
||||
0x85, 0xa3, 0x74, 0xa8, 0x1b, 0xb0, 0xb1, 0xb0, 0x10, 0x4e, 0xc9, 0x77, 0xb9, 0x4b, 0x55, 0xad,
|
||||
0xe6, 0xb5, 0x89, 0x6a, 0x2b, 0x06, 0xbd, 0x62, 0x37, 0xa9, 0xad, 0x1a, 0xdd, 0x94, 0x20, 0x1e,
|
||||
0x63, 0x51, 0x64, 0xf9, 0xa6, 0x04, 0x63, 0x42, 0xe5, 0x21, 0x5c, 0x67, 0x5e, 0x8f, 0x5f, 0x67,
|
||||
0x9e, 0x1d, 0x70, 0x3f, 0x67, 0xdf, 0x65, 0x3e, 0x09, 0x4d, 0x61, 0x3b, 0x98, 0x25, 0x98, 0x6d,
|
||||
0xd3, 0xa1, 0xc9, 0x04, 0xc3, 0xf6, 0x1a, 0xe6, 0x33, 0xe8, 0x7b, 0x12, 0x1c, 0x57, 0x13, 0x7b,
|
||||
0x5e, 0xf8, 0xfa, 0xe5, 0xc1, 0x54, 0x0b, 0x60, 0xea, 0x55, 0x21, 0xef, 0x78, 0x72, 0x06, 0xa7,
|
||||
0x44, 0xca, 0x2e, 0xa4, 0xa8, 0x90, 0x02, 0xa5, 0x6d, 0x4a, 0x2d, 0xb1, 0x08, 0x4b, 0x83, 0x67,
|
||||
0x9e, 0x50, 0xa5, 0x0a, 0x37, 0xbf, 0xd5, 0x6a, 0x60, 0x0e, 0x2d, 0xff, 0xa2, 0x10, 0x38, 0xac,
|
||||
0xe9, 0x6d, 0x92, 0x20, 0xdf, 0x4a, 0xf7, 0x22, 0xdf, 0x8e, 0x65, 0xe5, 0x5a, 0xf4, 0x0d, 0x28,
|
||||
0x52, 0x6d, 0xd0, 0x0b, 0xad, 0x90, 0xd0, 0x5a, 0x6d, 0x86, 0x09, 0xab, 0xb5, 0xda, 0xc4, 0x0c,
|
||||
0x12, 0xbd, 0x0d, 0x65, 0x76, 0x9a, 0xb1, 0x3d, 0x5e, 0x1c, 0x3c, 0x87, 0x30, 0x7f, 0x85, 0x11,
|
||||
0xc6, 0x7e, 0x39, 0xd8, 0xc3, 0x95, 0xdf, 0x83, 0xf1, 0x58, 0x22, 0x40, 0xd7, 0xe1, 0x98, 0x66,
|
||||
0x2a, 0x9d, 0xba, 0xa2, 0x29, 0x46, 0x9b, 0xd8, 0xc9, 0xd4, 0x98, 0x7d, 0x17, 0x5a, 0x8d, 0x70,
|
||||
0x88, 0x84, 0x12, 0x34, 0x1f, 0xa3, 0x73, 0x38, 0x86, 0x2d, 0x2b, 0x00, 0xa1, 0xf5, 0x68, 0x1e,
|
||||
0xca, 0x2c, 0x84, 0xbd, 0x93, 0x69, 0xb4, 0x3e, 0xca, 0x74, 0x65, 0x91, 0xed, 0x60, 0x6f, 0x1c,
|
||||
0x9d, 0x01, 0x70, 0x48, 0xdb, 0x26, 0x94, 0xe7, 0x1d, 0xef, 0xf5, 0x28, 0xc8, 0xc0, 0xcd, 0x60,
|
||||
0x06, 0x47, 0xa8, 0xe4, 0x3f, 0x4b, 0x30, 0xbe, 0x4e, 0xe8, 0xbb, 0xa6, 0x7d, 0xa3, 0xc1, 0x9b,
|
||||
0xbb, 0x43, 0xc8, 0xfb, 0x9b, 0xb1, 0xbc, 0xff, 0x4a, 0x9f, 0x6b, 0x16, 0xd3, 0x36, 0x2f, 0xfb,
|
||||
0xcb, 0x7f, 0x97, 0xa0, 0x1a, 0xa3, 0x8c, 0xa6, 0x09, 0x02, 0x65, 0xcb, 0xb4, 0xa9, 0x7f, 0xc6,
|
||||
0x1f, 0x4a, 0x03, 0x96, 0x52, 0x23, 0xa7, 0x3c, 0x83, 0xc5, 0x1e, 0x3a, 0xb3, 0x73, 0xcb, 0x36,
|
||||
0x75, 0x11, 0xf7, 0x87, 0x93, 0x42, 0x88, 0x1d, 0xda, 0x79, 0xd1, 0x36, 0x75, 0xcc, 0xb1, 0xe5,
|
||||
0x3f, 0x49, 0x30, 0x15, 0xa3, 0x1c, 0x42, 0x4a, 0x57, 0xe2, 0x29, 0xfd, 0xc5, 0xc3, 0x18, 0x96,
|
||||
0x93, 0xd8, 0xbf, 0x4a, 0x9a, 0xc5, 0x1c, 0x80, 0xb6, 0x60, 0xcc, 0x32, 0x3b, 0xcd, 0x7b, 0xd0,
|
||||
0xd5, 0x9b, 0x64, 0x27, 0x64, 0x23, 0xc4, 0xc2, 0x51, 0x60, 0xb4, 0x0b, 0x53, 0x86, 0xa2, 0x13,
|
||||
0xc7, 0x52, 0xda, 0xa4, 0x79, 0x0f, 0xde, 0x54, 0x1e, 0xe0, 0x9d, 0x86, 0x24, 0x22, 0x4e, 0x0b,
|
||||
0x91, 0x7f, 0x9d, 0xb2, 0xdb, 0xb4, 0x29, 0x7a, 0x15, 0x2a, 0xfc, 0x03, 0x8b, 0xb6, 0xa9, 0x89,
|
||||
0xa3, 0xed, 0x2c, 0x5b, 0x9a, 0x86, 0x18, 0xbb, 0xbd, 0x37, 0xff, 0xdf, 0x07, 0x3e, 0x09, 0xfb,
|
||||
0x84, 0x38, 0x80, 0x41, 0xeb, 0x50, 0xb2, 0x0e, 0x53, 0x66, 0xf0, 0x83, 0x85, 0xd7, 0x16, 0x1c,
|
||||
0x47, 0xfe, 0x47, 0x52, 0x71, 0x7e, 0xbc, 0x5c, 0xbf, 0x67, 0x0b, 0x16, 0x94, 0x35, 0xb9, 0x8b,
|
||||
0x66, 0xc3, 0x88, 0x38, 0x65, 0x45, 0x5c, 0x5e, 0x3a, 0x4c, 0x5c, 0x46, 0x4f, 0x86, 0xe0, 0x12,
|
||||
0xe1, 0x0f, 0xfa, 0x82, 0xe4, 0xbf, 0x4a, 0x30, 0xc5, 0x15, 0x6a, 0xbb, 0xb6, 0x4a, 0x7b, 0x43,
|
||||
0xcb, 0xa0, 0x5b, 0xb1, 0x0c, 0xba, 0xdc, 0xa7, 0xa1, 0x29, 0x8d, 0x73, 0xb3, 0xe8, 0xe7, 0x12,
|
||||
0x3c, 0x90, 0xa2, 0x1e, 0x42, 0x86, 0x21, 0xf1, 0x0c, 0xf3, 0xca, 0x61, 0x0d, 0xcc, 0xc9, 0x32,
|
||||
0x37, 0x21, 0xc3, 0x3c, 0x1e, 0xb8, 0x67, 0x00, 0x2c, 0x5b, 0xdd, 0x51, 0x35, 0xd2, 0x15, 0x8d,
|
||||
0xe4, 0x4a, 0xb8, 0x24, 0x8d, 0x60, 0x06, 0x47, 0xa8, 0xd0, 0xb7, 0x60, 0xa6, 0x43, 0xb6, 0x14,
|
||||
0x57, 0xa3, 0x8b, 0x9d, 0xce, 0x92, 0x62, 0x29, 0x9b, 0xaa, 0xa6, 0x52, 0x55, 0xdc, 0xb0, 0x47,
|
||||
0xeb, 0x17, 0xbc, 0x06, 0x6f, 0x16, 0xc5, 0xed, 0xbd, 0xf9, 0xc7, 0x0f, 0x6e, 0xea, 0xf8, 0xc4,
|
||||
0x3d, 0x9c, 0x23, 0x04, 0x7d, 0x57, 0x82, 0xaa, 0x4d, 0xde, 0x71, 0x55, 0x9b, 0x74, 0x96, 0x6d,
|
||||
0xd3, 0x8a, 0x69, 0x50, 0xe4, 0x1a, 0x5c, 0xda, 0xdf, 0x9b, 0xaf, 0xe2, 0x1c, 0x9a, 0x7e, 0x74,
|
||||
0xc8, 0x15, 0x84, 0x28, 0x4c, 0x2b, 0x9a, 0x66, 0xbe, 0x4b, 0xe2, 0x1e, 0x28, 0x71, 0xf9, 0xf5,
|
||||
0xfd, 0xbd, 0xf9, 0xe9, 0xc5, 0xf4, 0x74, 0x3f, 0xa2, 0xb3, 0xe0, 0xd1, 0x02, 0x8c, 0xec, 0x98,
|
||||
0x9a, 0xab, 0x13, 0xa7, 0x5a, 0xe6, 0x92, 0x58, 0xc6, 0x1d, 0xb9, 0xea, 0x0d, 0xdd, 0xde, 0x9b,
|
||||
0x3f, 0x7a, 0xb1, 0xc9, 0x9f, 0x3e, 0x7c, 0x2a, 0x76, 0x47, 0x63, 0x35, 0x93, 0xd8, 0xf2, 0xfc,
|
||||
0xcd, 0xb6, 0x12, 0xe6, 0x98, 0xcb, 0xe1, 0x14, 0x8e, 0xd2, 0x21, 0x1d, 0x46, 0xb7, 0xc5, 0xbd,
|
||||
0xdd, 0xa9, 0x8e, 0x0c, 0x74, 0xfa, 0xc5, 0xee, 0xfd, 0xf5, 0x29, 0x21, 0x72, 0xd4, 0x1f, 0x76,
|
||||
0x70, 0x28, 0x01, 0x3d, 0x01, 0x23, 0xfc, 0xc7, 0xca, 0x32, 0x7f, 0x00, 0xab, 0x84, 0x99, 0xe8,
|
||||
0xb2, 0x37, 0x8c, 0xfd, 0x79, 0x9f, 0x74, 0xa5, 0xb1, 0xc4, 0x1f, 0x66, 0x13, 0xa4, 0x2b, 0x8d,
|
||||
0x25, 0xec, 0xcf, 0x23, 0x0b, 0x46, 0x1c, 0xb2, 0xaa, 0x1a, 0xee, 0x6e, 0x15, 0x06, 0x6a, 0x35,
|
||||
0x37, 0x2f, 0x70, 0xee, 0xc4, 0x53, 0x54, 0x28, 0x51, 0xcc, 0x63, 0x5f, 0x0c, 0xda, 0x85, 0x51,
|
||||
0xdb, 0x35, 0x16, 0x9d, 0x0d, 0x87, 0xd8, 0xd5, 0x31, 0x2e, 0xb3, 0xdf, 0xe4, 0x8c, 0x7d, 0xfe,
|
||||
0xa4, 0xd4, 0xc0, 0x83, 0x01, 0x05, 0x0e, 0x85, 0xa1, 0x9f, 0x48, 0x80, 0x1c, 0xd7, 0xb2, 0x34,
|
||||
0xa2, 0x13, 0x83, 0x2a, 0x1a, 0x7f, 0x0d, 0x73, 0xaa, 0xc7, 0xb8, 0x0e, 0x8d, 0x7e, 0xed, 0x4e,
|
||||
0x01, 0x25, 0x95, 0x09, 0x9e, 0xa9, 0xd3, 0xa4, 0x38, 0x43, 0x0f, 0xb6, 0x14, 0x5b, 0x0e, 0xff,
|
||||
0xbb, 0x3a, 0x3e, 0xd0, 0x52, 0x64, 0xbf, 0x0a, 0x86, 0x4b, 0x21, 0xe6, 0xb1, 0x2f, 0x06, 0x5d,
|
||||
0x85, 0x19, 0x9b, 0x28, 0x9d, 0x2b, 0x86, 0xd6, 0xc3, 0xa6, 0x49, 0x2f, 0xaa, 0x1a, 0x71, 0x7a,
|
||||
0x0e, 0x25, 0x7a, 0x75, 0x82, 0x87, 0x4d, 0xf0, 0xb9, 0x06, 0xce, 0xa4, 0xc2, 0x39, 0xdc, 0xfc,
|
||||
0x2b, 0x02, 0xf1, 0x7e, 0x3b, 0x9c, 0xef, 0xf0, 0x0e, 0xf7, 0x15, 0x41, 0xa8, 0xea, 0x7d, 0xfb,
|
||||
0x8a, 0x20, 0x22, 0xe2, 0xe0, 0x27, 0xa4, 0xaf, 0x0a, 0x30, 0x1d, 0x12, 0xdf, 0xf5, 0x57, 0x04,
|
||||
0x19, 0x2c, 0x43, 0xf8, 0x8a, 0x20, 0xbb, 0x0d, 0x5f, 0xbc, 0xdf, 0x6d, 0xf8, 0xfb, 0xf0, 0xf5,
|
||||
0x02, 0xef, 0xec, 0x87, 0x4e, 0xfc, 0xf7, 0xef, 0xec, 0x87, 0xba, 0xe6, 0x94, 0x33, 0xbf, 0x2d,
|
||||
0x44, 0x0d, 0xfa, 0x0f, 0x6a, 0x1f, 0x1f, 0xfe, 0x2b, 0x45, 0xf9, 0xf3, 0x22, 0x1c, 0x4f, 0xee,
|
||||
0xd8, 0x58, 0x17, 0x51, 0xba, 0x63, 0x17, 0xb1, 0x01, 0x27, 0xb6, 0x5c, 0x4d, 0xeb, 0x71, 0x87,
|
||||
0x44, 0x5a, 0x89, 0xde, 0xab, 0xfd, 0xc3, 0x82, 0xf3, 0xc4, 0xc5, 0x0c, 0x1a, 0x9c, 0xc9, 0x99,
|
||||
0xd3, 0x11, 0x2d, 0x0e, 0xd4, 0x11, 0x4d, 0x35, 0xe4, 0x4a, 0x7d, 0x34, 0xe4, 0x32, 0xbb, 0x9b,
|
||||
0xe5, 0x01, 0xba, 0x9b, 0xf7, 0xa2, 0x1d, 0x99, 0x91, 0xf8, 0xee, 0xd4, 0x8e, 0x94, 0x1f, 0x86,
|
||||
0x59, 0xc1, 0x46, 0x79, 0xa7, 0xd0, 0xa0, 0xb6, 0xa9, 0x69, 0xc4, 0x5e, 0x76, 0x75, 0xbd, 0x27,
|
||||
0x9f, 0x87, 0x89, 0x78, 0x4f, 0xdc, 0x5b, 0x79, 0xaf, 0x4d, 0x2f, 0x7a, 0x29, 0x91, 0x95, 0xf7,
|
||||
0xc6, 0x71, 0x40, 0x21, 0x7f, 0x20, 0xc1, 0x4c, 0xf6, 0xf7, 0x77, 0x48, 0x83, 0x09, 0x5d, 0xd9,
|
||||
0x8d, 0x7e, 0x80, 0x28, 0x0d, 0x78, 0xe3, 0xe6, 0xcd, 0xcf, 0xb5, 0x18, 0x16, 0x4e, 0x60, 0xcb,
|
||||
0x5f, 0x48, 0x70, 0x32, 0xa7, 0xcd, 0x38, 0x5c, 0x4d, 0xd0, 0x35, 0xa8, 0xe8, 0xca, 0x6e, 0xd3,
|
||||
0xb5, 0xbb, 0x64, 0xe0, 0x37, 0x06, 0x9e, 0x4b, 0xd6, 0x04, 0x0a, 0x0e, 0xf0, 0xe4, 0x8f, 0x25,
|
||||
0xa8, 0xe6, 0xd5, 0x83, 0xe8, 0x6c, 0xac, 0x21, 0xfa, 0x68, 0xa2, 0x21, 0x3a, 0x95, 0xe2, 0x1b,
|
||||
0x52, 0x3b, 0xf4, 0x13, 0x09, 0x66, 0xb2, 0xeb, 0x66, 0xf4, 0x4c, 0x4c, 0xe3, 0xf9, 0x84, 0xc6,
|
||||
0x93, 0x09, 0x2e, 0xa1, 0xef, 0x36, 0x4c, 0x88, 0xea, 0x5a, 0xc0, 0x08, 0x2f, 0x3f, 0x79, 0x70,
|
||||
0x56, 0x15, 0x60, 0x7e, 0x9d, 0xc8, 0x57, 0x32, 0x3e, 0x86, 0x13, 0xb8, 0xf2, 0xcf, 0x0b, 0x50,
|
||||
0x6e, 0xb6, 0x15, 0x8d, 0x0c, 0xa1, 0xa8, 0xbb, 0x16, 0x2b, 0xea, 0xfa, 0xfd, 0x1f, 0x01, 0xae,
|
||||
0x65, 0x6e, 0x3d, 0xb7, 0x99, 0xa8, 0xe7, 0xce, 0x0d, 0x84, 0x7e, 0x70, 0x29, 0xf7, 0x3c, 0x8c,
|
||||
0x06, 0x4a, 0xf4, 0x77, 0x7a, 0xc8, 0x1f, 0x15, 0x60, 0x2c, 0x22, 0xa2, 0xcf, 0xb3, 0x67, 0x27,
|
||||
0x76, 0x7a, 0x0f, 0xf2, 0xef, 0x48, 0x11, 0xd9, 0x35, 0xff, 0xfc, 0xf6, 0xbe, 0xbf, 0x0b, 0xbf,
|
||||
0xa3, 0x4a, 0x1f, 0xeb, 0xe7, 0x61, 0x82, 0xf2, 0xff, 0xce, 0x09, 0xde, 0xf8, 0x8a, 0x3c, 0x8a,
|
||||
0x83, 0xaf, 0x3a, 0x5b, 0xb1, 0x59, 0x9c, 0xa0, 0x9e, 0x7d, 0x01, 0xc6, 0x63, 0xc2, 0xfa, 0xfa,
|
||||
0x5c, 0xee, 0x77, 0x12, 0x3c, 0x7a, 0xc7, 0x3b, 0x19, 0xaa, 0xc7, 0xb6, 0x57, 0x2d, 0xb1, 0xbd,
|
||||
0xe6, 0xf2, 0x01, 0x86, 0xf8, 0xb1, 0xc4, 0x8f, 0x0a, 0x80, 0x5a, 0xdb, 0xaa, 0xdd, 0x69, 0x28,
|
||||
0x36, 0xed, 0x61, 0xf1, 0x3f, 0x58, 0x43, 0xd8, 0x70, 0x67, 0x61, 0xac, 0x43, 0x9c, 0xb6, 0xad,
|
||||
0x72, 0x67, 0x89, 0xbb, 0x42, 0xf0, 0x0e, 0xb2, 0x1c, 0x4e, 0xe1, 0x28, 0x1d, 0xea, 0x42, 0x65,
|
||||
0xc7, 0xfb, 0x2f, 0x3f, 0xbf, 0xf3, 0xd6, 0x6f, 0x31, 0x1b, 0xfe, 0x9f, 0x60, 0x18, 0x5f, 0x62,
|
||||
0xc0, 0xc1, 0x01, 0xb8, 0xfc, 0xa1, 0x04, 0x33, 0x69, 0xc7, 0x2c, 0x33, 0xd5, 0xef, 0xbf, 0x73,
|
||||
0x1e, 0x86, 0x12, 0x47, 0x67, 0x5e, 0x39, 0xe6, 0xbd, 0x78, 0x33, 0xc9, 0x98, 0x8f, 0xca, 0x5f,
|
||||
0x4a, 0x30, 0x9b, 0xad, 0xda, 0x10, 0xae, 0x12, 0xd7, 0xe3, 0x57, 0x89, 0x7e, 0x9f, 0x0d, 0xb2,
|
||||
0xf5, 0xce, 0xb9, 0x56, 0xec, 0x65, 0xae, 0xc1, 0x10, 0x8c, 0xdc, 0x8a, 0x1b, 0xb9, 0x78, 0x68,
|
||||
0x23, 0xb3, 0x0d, 0xac, 0x3f, 0x71, 0xf3, 0xd6, 0xdc, 0x91, 0x4f, 0x6f, 0xcd, 0x1d, 0xf9, 0xec,
|
||||
0xd6, 0xdc, 0x91, 0xf7, 0xf7, 0xe7, 0xa4, 0x9b, 0xfb, 0x73, 0xd2, 0xa7, 0xfb, 0x73, 0xd2, 0xdf,
|
||||
0xf6, 0xe7, 0xa4, 0x1f, 0x7c, 0x31, 0x77, 0xe4, 0xda, 0x88, 0xc0, 0xfc, 0x57, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0x5a, 0xe3, 0x5a, 0x1b, 0x28, 0x3d, 0x00, 0x00,
|
||||
}
|
||||
|
@@ -325,6 +325,12 @@ message DeploymentStatus {
|
||||
// +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 int64 collisionCount = 8;
|
||||
}
|
||||
|
||||
// DeploymentStrategy describes how to replace existing pods with new ones.
|
||||
|
@@ -5606,7 +5606,7 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
} else {
|
||||
yysep2 := !z.EncBinary()
|
||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||
var yyq2 [7]bool
|
||||
var yyq2 [8]bool
|
||||
_, _, _ = yysep2, yyq2, yy2arr2
|
||||
const yyr2 bool = false
|
||||
yyq2[0] = x.ObservedGeneration != 0
|
||||
@@ -5616,9 +5616,10 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
yyq2[4] = x.AvailableReplicas != 0
|
||||
yyq2[5] = x.UnavailableReplicas != 0
|
||||
yyq2[6] = len(x.Conditions) != 0
|
||||
yyq2[7] = x.CollisionCount != nil
|
||||
var yynn2 int
|
||||
if yyr2 || yy2arr2 {
|
||||
r.EncodeArrayStart(7)
|
||||
r.EncodeArrayStart(8)
|
||||
} else {
|
||||
yynn2 = 0
|
||||
for _, b := range yyq2 {
|
||||
@@ -5812,6 +5813,41 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[7] {
|
||||
if x.CollisionCount == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yy25 := *x.CollisionCount
|
||||
yym26 := z.EncBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy25))
|
||||
}
|
||||
}
|
||||
} 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 {
|
||||
yy27 := *x.CollisionCount
|
||||
yym28 := z.EncBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy27))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
@@ -5957,6 +5993,22 @@ func (x *DeploymentStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv16), d)
|
||||
}
|
||||
}
|
||||
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:
|
||||
z.DecStructFieldNotFound(-1, yys3)
|
||||
} // end switch yys3
|
||||
@@ -5968,16 +6020,16 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj18 int
|
||||
var yyb18 bool
|
||||
var yyhl18 bool = l >= 0
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
var yyj20 int
|
||||
var yyb20 bool
|
||||
var yyhl20 bool = l >= 0
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5985,21 +6037,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObservedGeneration = 0
|
||||
} else {
|
||||
yyv19 := &x.ObservedGeneration
|
||||
yym20 := z.DecBinary()
|
||||
_ = yym20
|
||||
yyv21 := &x.ObservedGeneration
|
||||
yym22 := z.DecBinary()
|
||||
_ = yym22
|
||||
if false {
|
||||
} else {
|
||||
*((*int64)(yyv19)) = int64(r.DecodeInt(64))
|
||||
*((*int64)(yyv21)) = int64(r.DecodeInt(64))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -6007,29 +6059,7 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Replicas = 0
|
||||
} else {
|
||||
yyv21 := &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.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv23 := &x.UpdatedReplicas
|
||||
yyv23 := &x.Replicas
|
||||
yym24 := z.DecBinary()
|
||||
_ = yym24
|
||||
if false {
|
||||
@@ -6037,21 +6067,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv23)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ReadyReplicas = 0
|
||||
x.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv25 := &x.ReadyReplicas
|
||||
yyv25 := &x.UpdatedReplicas
|
||||
yym26 := z.DecBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
@@ -6059,21 +6089,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv25)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.AvailableReplicas = 0
|
||||
x.ReadyReplicas = 0
|
||||
} else {
|
||||
yyv27 := &x.AvailableReplicas
|
||||
yyv27 := &x.ReadyReplicas
|
||||
yym28 := z.DecBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
@@ -6081,21 +6111,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv27)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
x.AvailableReplicas = 0
|
||||
} else {
|
||||
yyv29 := &x.UnavailableReplicas
|
||||
yyv29 := &x.AvailableReplicas
|
||||
yym30 := z.DecBinary()
|
||||
_ = yym30
|
||||
if false {
|
||||
@@ -6103,13 +6133,35 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv29)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
} else {
|
||||
yyv31 := &x.UnavailableReplicas
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
if false {
|
||||
} else {
|
||||
*((*int32)(yyv31)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -6117,26 +6169,52 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Conditions = nil
|
||||
} else {
|
||||
yyv31 := &x.Conditions
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
yyv33 := &x.Conditions
|
||||
yym34 := z.DecBinary()
|
||||
_ = yym34
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv31), d)
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv33), d)
|
||||
}
|
||||
}
|
||||
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 {
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj18-1, "")
|
||||
z.DecStructFieldNotFound(yyj20-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@@ -19652,7 +19730,7 @@ func (x codecSelfer1234) decSliceDeployment(v *[]Deployment, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 960)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 968)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@@ -325,6 +325,12 @@ type DeploymentStatus struct {
|
||||
// +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 *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
|
||||
}
|
||||
|
||||
type DeploymentConditionType string
|
||||
|
@@ -186,6 +186,7 @@ var map_DeploymentStatus = map[string]string{
|
||||
"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.",
|
||||
"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 {
|
||||
|
@@ -628,6 +628,7 @@ func autoConvert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in *Dep
|
||||
out.AvailableReplicas = in.AvailableReplicas
|
||||
out.UnavailableReplicas = in.UnavailableReplicas
|
||||
out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
|
||||
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -644,6 +645,7 @@ func autoConvert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in *ext
|
||||
out.AvailableReplicas = in.AvailableReplicas
|
||||
out.UnavailableReplicas = in.UnavailableReplicas
|
||||
out.Conditions = *(*[]DeploymentCondition)(unsafe.Pointer(&in.Conditions))
|
||||
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@@ -384,6 +384,11 @@ func DeepCopy_v1beta1_DeploymentStatus(in interface{}, out interface{}, c *conve
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.CollisionCount != nil {
|
||||
in, out := &in.CollisionCount, &out.CollisionCount
|
||||
*out = new(int64)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -41,6 +41,7 @@ go_test(
|
||||
"//pkg/security/apparmor:go_default_library",
|
||||
"//pkg/security/podsecuritypolicy/seccomp:go_default_library",
|
||||
"//pkg/security/podsecuritypolicy/util:go_default_library",
|
||||
"//vendor/github.com/davecgh/go-spew/spew: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/validation/field:go_default_library",
|
||||
|
@@ -346,6 +346,9 @@ func ValidateDeploymentStatus(status *extensions.DeploymentStatus, fldPath *fiel
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.ReadyReplicas), fldPath.Child("readyReplicas"))...)
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.AvailableReplicas), fldPath.Child("availableReplicas"))...)
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.UnavailableReplicas), fldPath.Child("unavailableReplicas"))...)
|
||||
if status.CollisionCount != nil {
|
||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(*status.CollisionCount, fldPath.Child("collisionCount"))...)
|
||||
}
|
||||
msg := "cannot be greater than status.replicas"
|
||||
if status.UpdatedReplicas > status.Replicas {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("updatedReplicas"), status.UpdatedReplicas, msg))
|
||||
@@ -372,10 +375,29 @@ func ValidateDeploymentUpdate(update, old *extensions.Deployment) field.ErrorLis
|
||||
|
||||
func ValidateDeploymentStatusUpdate(update, old *extensions.Deployment) field.ErrorList {
|
||||
allErrs := apivalidation.ValidateObjectMetaUpdate(&update.ObjectMeta, &old.ObjectMeta, field.NewPath("metadata"))
|
||||
allErrs = append(allErrs, ValidateDeploymentStatus(&update.Status, field.NewPath("status"))...)
|
||||
fldPath := field.NewPath("status")
|
||||
allErrs = append(allErrs, ValidateDeploymentStatus(&update.Status, fldPath)...)
|
||||
if isDecremented(update.Status.CollisionCount, old.Status.CollisionCount) {
|
||||
value := int64(0)
|
||||
if update.Status.CollisionCount != nil {
|
||||
value = *update.Status.CollisionCount
|
||||
}
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("collisionCount"), value, "cannot be decremented"))
|
||||
}
|
||||
return allErrs
|
||||
}
|
||||
|
||||
// TODO: Move in "k8s.io/kubernetes/pkg/api/validation"
|
||||
func isDecremented(update, old *int64) bool {
|
||||
if update == nil && old != nil {
|
||||
return true
|
||||
}
|
||||
if update == nil || old == nil {
|
||||
return false
|
||||
}
|
||||
return *update < *old
|
||||
}
|
||||
|
||||
func ValidateDeployment(obj *extensions.Deployment) field.ErrorList {
|
||||
allErrs := apivalidation.ValidateObjectMeta(&obj.ObjectMeta, true, ValidateDeploymentName, field.NewPath("metadata"))
|
||||
allErrs = append(allErrs, ValidateDeploymentSpec(&obj.Spec, field.NewPath("spec"))...)
|
||||
|
@@ -21,6 +21,8 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||
@@ -1230,6 +1232,11 @@ func TestValidateDeployment(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func int64p(i int) *int64 {
|
||||
i64 := int64(i)
|
||||
return &i64
|
||||
}
|
||||
|
||||
func TestValidateDeploymentStatus(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
@@ -1239,6 +1246,7 @@ func TestValidateDeploymentStatus(t *testing.T) {
|
||||
readyReplicas int32
|
||||
availableReplicas int32
|
||||
observedGeneration int64
|
||||
collisionCount *int64
|
||||
|
||||
expectedErr bool
|
||||
}{
|
||||
@@ -1335,6 +1343,13 @@ func TestValidateDeploymentStatus(t *testing.T) {
|
||||
observedGeneration: 1,
|
||||
expectedErr: false,
|
||||
},
|
||||
{
|
||||
name: "invalid collisionCount",
|
||||
replicas: 3,
|
||||
observedGeneration: 1,
|
||||
collisionCount: int64p(-3),
|
||||
expectedErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
@@ -1344,10 +1359,82 @@ func TestValidateDeploymentStatus(t *testing.T) {
|
||||
ReadyReplicas: test.readyReplicas,
|
||||
AvailableReplicas: test.availableReplicas,
|
||||
ObservedGeneration: test.observedGeneration,
|
||||
CollisionCount: test.collisionCount,
|
||||
}
|
||||
|
||||
if hasErr := len(ValidateDeploymentStatus(&status, field.NewPath("status"))) > 0; hasErr != test.expectedErr {
|
||||
t.Errorf("%s: expected error: %t, got error: %t", test.name, test.expectedErr, hasErr)
|
||||
errs := ValidateDeploymentStatus(&status, field.NewPath("status"))
|
||||
if hasErr := len(errs) > 0; hasErr != test.expectedErr {
|
||||
errString := spew.Sprintf("%#v", errs)
|
||||
t.Errorf("%s: expected error: %t, got error: %t\nerrors: %s", test.name, test.expectedErr, hasErr, errString)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateDeploymentStatusUpdate(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
|
||||
from, to extensions.DeploymentStatus
|
||||
|
||||
expectedErr bool
|
||||
}{
|
||||
{
|
||||
name: "increase: valid update",
|
||||
from: extensions.DeploymentStatus{
|
||||
CollisionCount: nil,
|
||||
},
|
||||
to: extensions.DeploymentStatus{
|
||||
CollisionCount: int64p(1),
|
||||
},
|
||||
expectedErr: false,
|
||||
},
|
||||
{
|
||||
name: "stable: valid update",
|
||||
from: extensions.DeploymentStatus{
|
||||
CollisionCount: int64p(1),
|
||||
},
|
||||
to: extensions.DeploymentStatus{
|
||||
CollisionCount: int64p(1),
|
||||
},
|
||||
expectedErr: false,
|
||||
},
|
||||
{
|
||||
name: "unset: invalid update",
|
||||
from: extensions.DeploymentStatus{
|
||||
CollisionCount: int64p(1),
|
||||
},
|
||||
to: extensions.DeploymentStatus{
|
||||
CollisionCount: nil,
|
||||
},
|
||||
expectedErr: true,
|
||||
},
|
||||
{
|
||||
name: "decrease: invalid update",
|
||||
from: extensions.DeploymentStatus{
|
||||
CollisionCount: int64p(2),
|
||||
},
|
||||
to: extensions.DeploymentStatus{
|
||||
CollisionCount: int64p(1),
|
||||
},
|
||||
expectedErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
meta := metav1.ObjectMeta{Name: "foo", Namespace: metav1.NamespaceDefault, ResourceVersion: "1"}
|
||||
from := &extensions.Deployment{
|
||||
ObjectMeta: meta,
|
||||
Status: test.from,
|
||||
}
|
||||
to := &extensions.Deployment{
|
||||
ObjectMeta: meta,
|
||||
Status: test.to,
|
||||
}
|
||||
|
||||
errs := ValidateDeploymentStatusUpdate(to, from)
|
||||
if hasErr := len(errs) > 0; hasErr != test.expectedErr {
|
||||
errString := spew.Sprintf("%#v", errs)
|
||||
t.Errorf("%s: expected error: %t, got error: %t\nerrors: %s", test.name, test.expectedErr, hasErr, errString)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -378,6 +378,11 @@ func DeepCopy_extensions_DeploymentStatus(in interface{}, out interface{}, c *co
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.CollisionCount != nil {
|
||||
in, out := &in.CollisionCount, &out.CollisionCount
|
||||
*out = new(int64)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -574,7 +574,6 @@ func (dc *DeploymentController) syncDeployment(key string) error {
|
||||
return nil
|
||||
}
|
||||
if err != nil {
|
||||
utilruntime.HandleError(fmt.Errorf("Unable to retrieve deployment %v from store: %v", key, err))
|
||||
return err
|
||||
}
|
||||
|
||||
|
@@ -73,7 +73,11 @@ func (dc *DeploymentController) rollback(d *extensions.Deployment, rsList []*ext
|
||||
// cleans up the rollback spec so subsequent requeues of the deployment won't end up in here.
|
||||
func (dc *DeploymentController) rollbackToTemplate(d *extensions.Deployment, rs *extensions.ReplicaSet) (bool, error) {
|
||||
performedRollback := false
|
||||
if !deploymentutil.EqualIgnoreHash(d.Spec.Template, rs.Spec.Template) {
|
||||
isEqual, err := deploymentutil.EqualIgnoreHash(&d.Spec.Template, &rs.Spec.Template)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
if !isEqual {
|
||||
glog.V(4).Infof("Rolling back deployment %q to template spec %+v", d.Name, rs.Spec.Template.Spec)
|
||||
deploymentutil.SetFromReplicaSetTemplate(d, rs.Spec.Template)
|
||||
// set RS (the old RS we'll rolling back to) annotations back to the deployment;
|
||||
|
@@ -140,7 +140,7 @@ func (dc *DeploymentController) rsAndPodsWithHashKeySynced(d *extensions.Deploym
|
||||
// Add pod-template-hash information if it's not in the RS.
|
||||
// Otherwise, new RS produced by Deployment will overlap with pre-existing ones
|
||||
// that aren't constrained by the pod-template-hash.
|
||||
syncedRS, err := dc.addHashKeyToRSAndPods(rs, podMap[rs.UID])
|
||||
syncedRS, err := dc.addHashKeyToRSAndPods(rs, podMap[rs.UID], d.Status.CollisionCount)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -153,12 +153,15 @@ func (dc *DeploymentController) rsAndPodsWithHashKeySynced(d *extensions.Deploym
|
||||
// 1. Add hash label to the rs's pod template, and make sure the controller sees this update so that no orphaned pods will be created
|
||||
// 2. Add hash label to all pods this rs owns, wait until replicaset controller reports rs.Status.FullyLabeledReplicas equal to the desired number of replicas
|
||||
// 3. Add hash label to the rs's label and selector
|
||||
func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet, podList *v1.PodList) (*extensions.ReplicaSet, error) {
|
||||
func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet, podList *v1.PodList, collisionCount *int64) (*extensions.ReplicaSet, error) {
|
||||
// If the rs already has the new hash label in its selector, it's done syncing
|
||||
if labelsutil.SelectorHasLabel(rs.Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey) {
|
||||
return rs, nil
|
||||
}
|
||||
hash := deploymentutil.GetReplicaSetHash(rs)
|
||||
hash, err := deploymentutil.GetReplicaSetHash(rs, collisionCount)
|
||||
if err != nil {
|
||||
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,
|
||||
func(updated *extensions.ReplicaSet) error {
|
||||
@@ -224,8 +227,8 @@ func (dc *DeploymentController) addHashKeyToRSAndPods(rs *extensions.ReplicaSet,
|
||||
// 2. If there's existing new RS, update its revision number if it's smaller than (maxOldRevision + 1), where maxOldRevision is the max revision number among all old RSes.
|
||||
// 3. If there's no existing new RS and createIfNotExisted is true, create one with appropriate revision number (maxOldRevision + 1) and replicas.
|
||||
// Note that the pod-template-hash will be added to adopted RSes and pods.
|
||||
func (dc *DeploymentController) getNewReplicaSet(deployment *extensions.Deployment, rsList, oldRSs []*extensions.ReplicaSet, createIfNotExisted bool) (*extensions.ReplicaSet, error) {
|
||||
existingNewRS, err := deploymentutil.FindNewReplicaSet(deployment, rsList)
|
||||
func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsList, oldRSs []*extensions.ReplicaSet, createIfNotExisted bool) (*extensions.ReplicaSet, error) {
|
||||
existingNewRS, err := deploymentutil.FindNewReplicaSet(d, rsList)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -247,28 +250,28 @@ func (dc *DeploymentController) getNewReplicaSet(deployment *extensions.Deployme
|
||||
rsCopy := objCopy.(*extensions.ReplicaSet)
|
||||
|
||||
// Set existing new replica set's annotation
|
||||
annotationsUpdated := deploymentutil.SetNewReplicaSetAnnotations(deployment, rsCopy, newRevision, true)
|
||||
minReadySecondsNeedsUpdate := rsCopy.Spec.MinReadySeconds != deployment.Spec.MinReadySeconds
|
||||
annotationsUpdated := deploymentutil.SetNewReplicaSetAnnotations(d, rsCopy, newRevision, true)
|
||||
minReadySecondsNeedsUpdate := rsCopy.Spec.MinReadySeconds != d.Spec.MinReadySeconds
|
||||
if annotationsUpdated || minReadySecondsNeedsUpdate {
|
||||
rsCopy.Spec.MinReadySeconds = deployment.Spec.MinReadySeconds
|
||||
rsCopy.Spec.MinReadySeconds = d.Spec.MinReadySeconds
|
||||
return dc.client.Extensions().ReplicaSets(rsCopy.ObjectMeta.Namespace).Update(rsCopy)
|
||||
}
|
||||
|
||||
// Should use the revision in existingNewRS's annotation, since it set by before
|
||||
updateConditions := deploymentutil.SetDeploymentRevision(deployment, rsCopy.Annotations[deploymentutil.RevisionAnnotation])
|
||||
needsUpdate := deploymentutil.SetDeploymentRevision(d, rsCopy.Annotations[deploymentutil.RevisionAnnotation])
|
||||
// If no other Progressing condition has been recorded and we need to estimate the progress
|
||||
// of this deployment then it is likely that old users started caring about progress. In that
|
||||
// case we need to take into account the first time we noticed their new replica set.
|
||||
cond := deploymentutil.GetDeploymentCondition(deployment.Status, extensions.DeploymentProgressing)
|
||||
if deployment.Spec.ProgressDeadlineSeconds != nil && cond == nil {
|
||||
cond := deploymentutil.GetDeploymentCondition(d.Status, extensions.DeploymentProgressing)
|
||||
if d.Spec.ProgressDeadlineSeconds != nil && cond == nil {
|
||||
msg := fmt.Sprintf("Found new replica set %q", rsCopy.Name)
|
||||
condition := deploymentutil.NewDeploymentCondition(extensions.DeploymentProgressing, v1.ConditionTrue, deploymentutil.FoundNewRSReason, msg)
|
||||
deploymentutil.SetDeploymentCondition(&deployment.Status, *condition)
|
||||
updateConditions = true
|
||||
deploymentutil.SetDeploymentCondition(&d.Status, *condition)
|
||||
needsUpdate = true
|
||||
}
|
||||
|
||||
if updateConditions {
|
||||
if deployment, err = dc.client.Extensions().Deployments(deployment.Namespace).UpdateStatus(deployment); err != nil {
|
||||
if needsUpdate {
|
||||
if d, err = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
@@ -280,72 +283,107 @@ func (dc *DeploymentController) getNewReplicaSet(deployment *extensions.Deployme
|
||||
}
|
||||
|
||||
// new ReplicaSet does not exist, create one.
|
||||
namespace := deployment.Namespace
|
||||
podTemplateSpecHash := fmt.Sprintf("%d", deploymentutil.GetPodTemplateSpecHash(deployment.Spec.Template))
|
||||
newRSTemplate := deploymentutil.GetNewReplicaSetTemplate(deployment)
|
||||
newRSTemplate.Labels = labelsutil.CloneAndAddLabel(deployment.Spec.Template.Labels, extensions.DefaultDeploymentUniqueLabelKey, podTemplateSpecHash)
|
||||
templateCopy, err := api.Scheme.DeepCopy(d.Spec.Template)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
newRSTemplate := templateCopy.(v1.PodTemplateSpec)
|
||||
podTemplateSpecHash := fmt.Sprintf("%d", deploymentutil.GetPodTemplateSpecHash(&newRSTemplate, d.Status.CollisionCount))
|
||||
newRSTemplate.Labels = labelsutil.CloneAndAddLabel(d.Spec.Template.Labels, extensions.DefaultDeploymentUniqueLabelKey, podTemplateSpecHash)
|
||||
// Add podTemplateHash label to selector.
|
||||
newRSSelector := labelsutil.CloneSelectorAndAddLabel(deployment.Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey, podTemplateSpecHash)
|
||||
newRSSelector := labelsutil.CloneSelectorAndAddLabel(d.Spec.Selector, extensions.DefaultDeploymentUniqueLabelKey, podTemplateSpecHash)
|
||||
|
||||
// Create new ReplicaSet
|
||||
newRS := extensions.ReplicaSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
// Make the name deterministic, to ensure idempotence
|
||||
Name: deployment.Name + "-" + podTemplateSpecHash,
|
||||
Namespace: namespace,
|
||||
OwnerReferences: []metav1.OwnerReference{*newControllerRef(deployment)},
|
||||
Name: d.Name + "-" + podTemplateSpecHash,
|
||||
Namespace: d.Namespace,
|
||||
OwnerReferences: []metav1.OwnerReference{*newControllerRef(d)},
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: new(int32),
|
||||
MinReadySeconds: deployment.Spec.MinReadySeconds,
|
||||
MinReadySeconds: d.Spec.MinReadySeconds,
|
||||
Selector: newRSSelector,
|
||||
Template: newRSTemplate,
|
||||
},
|
||||
}
|
||||
allRSs := append(oldRSs, &newRS)
|
||||
newReplicasCount, err := deploymentutil.NewRSNewReplicas(deployment, allRSs, &newRS)
|
||||
newReplicasCount, err := deploymentutil.NewRSNewReplicas(d, allRSs, &newRS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
*(newRS.Spec.Replicas) = newReplicasCount
|
||||
// Set new replica set's annotation
|
||||
deploymentutil.SetNewReplicaSetAnnotations(deployment, &newRS, newRevision, false)
|
||||
createdRS, err := dc.client.Extensions().ReplicaSets(namespace).Create(&newRS)
|
||||
deploymentutil.SetNewReplicaSetAnnotations(d, &newRS, newRevision, false)
|
||||
// Create the new ReplicaSet. If it already exists, then we need to check for possible
|
||||
// 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)
|
||||
switch {
|
||||
// We may end up hitting this due to a slow cache or a fast resync of the deployment.
|
||||
// TODO: Restore once https://github.com/kubernetes/kubernetes/issues/29735 is fixed
|
||||
// ie. we start using a new hashing algorithm.
|
||||
// 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
|
||||
// with the PodTemplateSpec of the Deployment, then that is our new ReplicaSet. Otherwise,
|
||||
// this is a hash collision and we need to increment the collisionCount field in the
|
||||
// status of the Deployment and try the creation again.
|
||||
case errors.IsAlreadyExists(err):
|
||||
return nil, err
|
||||
// return dc.rsLister.ReplicaSets(namespace).Get(newRS.Name)
|
||||
alreadyExists = true
|
||||
rs, rsErr := dc.rsLister.ReplicaSets(newRS.Namespace).Get(newRS.Name)
|
||||
if rsErr != nil {
|
||||
return nil, rsErr
|
||||
}
|
||||
isEqual, equalErr := deploymentutil.EqualIgnoreHash(&d.Spec.Template, &rs.Spec.Template)
|
||||
if equalErr != nil {
|
||||
return nil, equalErr
|
||||
}
|
||||
// Matching ReplicaSet is not equal - increment the collisionCount in the DeploymentStatus
|
||||
// and requeue the Deployment.
|
||||
if !isEqual {
|
||||
if d.Status.CollisionCount == nil {
|
||||
d.Status.CollisionCount = new(int64)
|
||||
}
|
||||
preCollisionCount := *d.Status.CollisionCount
|
||||
*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)
|
||||
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)
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
// Pass through the matching ReplicaSet as the new ReplicaSet.
|
||||
createdRS = rs
|
||||
err = nil
|
||||
case err != nil:
|
||||
msg := fmt.Sprintf("Failed to create new replica set %q: %v", newRS.Name, err)
|
||||
if deployment.Spec.ProgressDeadlineSeconds != nil {
|
||||
if d.Spec.ProgressDeadlineSeconds != nil {
|
||||
cond := deploymentutil.NewDeploymentCondition(extensions.DeploymentProgressing, v1.ConditionFalse, deploymentutil.FailedRSCreateReason, msg)
|
||||
deploymentutil.SetDeploymentCondition(&deployment.Status, *cond)
|
||||
deploymentutil.SetDeploymentCondition(&d.Status, *cond)
|
||||
// We don't really care about this error at this point, since we have a bigger issue to report.
|
||||
// TODO: Update the rest of the Deployment status, too. We may need to do this every time we
|
||||
// error out in all other places in the controller so that we let users know that their deployments
|
||||
// have been noticed by the controller, albeit with errors.
|
||||
// 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(deployment.ObjectMeta.Namespace).UpdateStatus(deployment)
|
||||
_, _ = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d)
|
||||
}
|
||||
dc.eventRecorder.Eventf(deployment, v1.EventTypeWarning, deploymentutil.FailedRSCreateReason, msg)
|
||||
dc.eventRecorder.Eventf(d, v1.EventTypeWarning, deploymentutil.FailedRSCreateReason, msg)
|
||||
return nil, err
|
||||
}
|
||||
if newReplicasCount > 0 {
|
||||
dc.eventRecorder.Eventf(deployment, v1.EventTypeNormal, "ScalingReplicaSet", "Scaled up replica set %s to %d", createdRS.Name, newReplicasCount)
|
||||
if !alreadyExists && newReplicasCount > 0 {
|
||||
dc.eventRecorder.Eventf(d, v1.EventTypeNormal, "ScalingReplicaSet", "Scaled up replica set %s to %d", createdRS.Name, newReplicasCount)
|
||||
}
|
||||
|
||||
deploymentutil.SetDeploymentRevision(deployment, newRevision)
|
||||
if deployment.Spec.ProgressDeadlineSeconds != nil {
|
||||
needsUpdate := deploymentutil.SetDeploymentRevision(d, newRevision)
|
||||
if !alreadyExists && d.Spec.ProgressDeadlineSeconds != nil {
|
||||
msg := fmt.Sprintf("Created new replica set %q", createdRS.Name)
|
||||
condition := deploymentutil.NewDeploymentCondition(extensions.DeploymentProgressing, v1.ConditionTrue, deploymentutil.NewReplicaSetReason, msg)
|
||||
deploymentutil.SetDeploymentCondition(&deployment.Status, *condition)
|
||||
deploymentutil.SetDeploymentCondition(&d.Status, *condition)
|
||||
needsUpdate = true
|
||||
}
|
||||
if needsUpdate {
|
||||
_, err = dc.client.Extensions().Deployments(d.Namespace).UpdateStatus(d)
|
||||
}
|
||||
_, err = dc.client.Extensions().Deployments(deployment.Namespace).UpdateStatus(deployment)
|
||||
return createdRS, err
|
||||
}
|
||||
|
||||
@@ -564,6 +602,7 @@ func calculateStatus(allRSs []*extensions.ReplicaSet, newRS *extensions.ReplicaS
|
||||
ReadyReplicas: deploymentutil.GetReadyReplicaCountForReplicaSets(allRSs),
|
||||
AvailableReplicas: availableReplicas,
|
||||
UnavailableReplicas: unavailableReplicas,
|
||||
CollisionCount: deployment.Status.CollisionCount,
|
||||
}
|
||||
|
||||
// Copy conditions one by one so we won't mutate the original object.
|
||||
|
@@ -48,6 +48,7 @@ go_test(
|
||||
srcs = [
|
||||
"deployment_util_test.go",
|
||||
"hash_test.go",
|
||||
"pod_util_test.go",
|
||||
],
|
||||
library = ":go_default_library",
|
||||
tags = ["automanaged"],
|
||||
@@ -57,6 +58,7 @@ go_test(
|
||||
"//pkg/apis/extensions/v1beta1:go_default_library",
|
||||
"//pkg/client/clientset_generated/clientset/fake:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/util/hash: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",
|
||||
|
@@ -640,29 +640,42 @@ func ListPods(deployment *extensions.Deployment, rsList []*extensions.ReplicaSet
|
||||
// We ignore pod-template-hash because the hash result would be different upon podTemplateSpec API changes
|
||||
// (e.g. the addition of a new field will cause the hash code to change)
|
||||
// Note that we assume input podTemplateSpecs contain non-empty labels
|
||||
func EqualIgnoreHash(template1, template2 v1.PodTemplateSpec) bool {
|
||||
func EqualIgnoreHash(template1, template2 *v1.PodTemplateSpec) (bool, error) {
|
||||
cp, err := api.Scheme.DeepCopy(template1)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
t1Copy := cp.(*v1.PodTemplateSpec)
|
||||
cp, err = api.Scheme.DeepCopy(template2)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
t2Copy := cp.(*v1.PodTemplateSpec)
|
||||
// First, compare template.Labels (ignoring hash)
|
||||
labels1, labels2 := template1.Labels, template2.Labels
|
||||
labels1, labels2 := t1Copy.Labels, t2Copy.Labels
|
||||
if len(labels1) > len(labels2) {
|
||||
labels1, labels2 = labels2, labels1
|
||||
}
|
||||
// We make sure len(labels2) >= len(labels1)
|
||||
for k, v := range labels2 {
|
||||
if labels1[k] != v && k != extensions.DefaultDeploymentUniqueLabelKey {
|
||||
return false
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
// Then, compare the templates without comparing their labels
|
||||
template1.Labels, template2.Labels = nil, nil
|
||||
return apiequality.Semantic.DeepEqual(template1, template2)
|
||||
t1Copy.Labels, t2Copy.Labels = nil, nil
|
||||
return apiequality.Semantic.DeepEqual(t1Copy, t2Copy), nil
|
||||
}
|
||||
|
||||
// FindNewReplicaSet returns the new RS this given deployment targets (the one with the same pod template).
|
||||
func FindNewReplicaSet(deployment *extensions.Deployment, rsList []*extensions.ReplicaSet) (*extensions.ReplicaSet, error) {
|
||||
newRSTemplate := GetNewReplicaSetTemplate(deployment)
|
||||
sort.Sort(controller.ReplicaSetsByCreationTimestamp(rsList))
|
||||
for i := range rsList {
|
||||
if EqualIgnoreHash(rsList[i].Spec.Template, newRSTemplate) {
|
||||
equal, err := EqualIgnoreHash(&rsList[i].Spec.Template, &deployment.Spec.Template)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if equal {
|
||||
// In rare cases, such as after cluster upgrades, Deployment may end up with
|
||||
// having more than one new ReplicaSets that have the same template as its template,
|
||||
// see https://github.com/kubernetes/kubernetes/issues/40415
|
||||
@@ -746,31 +759,6 @@ func LabelPodsWithHash(podList *v1.PodList, c clientset.Interface, podLister cor
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetNewReplicaSetTemplate returns the desired PodTemplateSpec for the new ReplicaSet corresponding to the given ReplicaSet.
|
||||
// Callers of this helper need to set the DefaultDeploymentUniqueLabelKey k/v pair.
|
||||
func GetNewReplicaSetTemplate(deployment *extensions.Deployment) v1.PodTemplateSpec {
|
||||
// newRS will have the same template as in deployment spec.
|
||||
return v1.PodTemplateSpec{
|
||||
ObjectMeta: deployment.Spec.Template.ObjectMeta,
|
||||
Spec: deployment.Spec.Template.Spec,
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove the duplicate
|
||||
// GetNewReplicaSetTemplateInternal returns the desired PodTemplateSpec for the new ReplicaSet corresponding to the given ReplicaSet.
|
||||
func GetNewReplicaSetTemplateInternal(deployment *internalextensions.Deployment) api.PodTemplateSpec {
|
||||
// newRS will have the same template as in deployment spec, plus a unique label in some cases.
|
||||
newRSTemplate := api.PodTemplateSpec{
|
||||
ObjectMeta: deployment.Spec.Template.ObjectMeta,
|
||||
Spec: deployment.Spec.Template.Spec,
|
||||
}
|
||||
newRSTemplate.ObjectMeta.Labels = labelsutil.CloneAndAddLabel(
|
||||
deployment.Spec.Template.ObjectMeta.Labels,
|
||||
internalextensions.DefaultDeploymentUniqueLabelKey,
|
||||
fmt.Sprintf("%d", GetInternalPodTemplateSpecHash(newRSTemplate)))
|
||||
return newRSTemplate
|
||||
}
|
||||
|
||||
// SetFromReplicaSetTemplate sets the desired PodTemplateSpec from a replica set template to the given deployment.
|
||||
func SetFromReplicaSetTemplate(deployment *extensions.Deployment, template v1.PodTemplateSpec) *extensions.Deployment {
|
||||
deployment.Spec.Template.ObjectMeta = template.ObjectMeta
|
||||
|
@@ -184,7 +184,8 @@ func newDControllerRef(d *extensions.Deployment) *metav1.OwnerReference {
|
||||
|
||||
// generateRS creates a replica set, with the input deployment's template as its template
|
||||
func generateRS(deployment extensions.Deployment) extensions.ReplicaSet {
|
||||
template := GetNewReplicaSetTemplate(&deployment)
|
||||
cp, _ := api.Scheme.DeepCopy(deployment.Spec.Template)
|
||||
template := cp.(v1.PodTemplateSpec)
|
||||
return extensions.ReplicaSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
UID: randomUID(),
|
||||
@@ -193,7 +194,7 @@ func generateRS(deployment extensions.Deployment) extensions.ReplicaSet {
|
||||
OwnerReferences: []metav1.OwnerReference{*newDControllerRef(&deployment)},
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: func() *int32 { i := int32(0); return &i }(),
|
||||
Replicas: new(int32),
|
||||
Template: template,
|
||||
Selector: &metav1.LabelSelector{MatchLabels: template.Labels},
|
||||
},
|
||||
@@ -444,29 +445,22 @@ func TestEqualIgnoreHash(t *testing.T) {
|
||||
|
||||
for _, test := range tests {
|
||||
runTest := func(t1, t2 *v1.PodTemplateSpec, reversed bool) {
|
||||
// Set up
|
||||
t1Copy, err := api.Scheme.DeepCopy(t1)
|
||||
if err != nil {
|
||||
t.Errorf("Failed setting up the test: %v", err)
|
||||
}
|
||||
t2Copy, err := api.Scheme.DeepCopy(t2)
|
||||
if err != nil {
|
||||
t.Errorf("Failed setting up the test: %v", err)
|
||||
}
|
||||
reverseString := ""
|
||||
if reversed {
|
||||
reverseString = " (reverse order)"
|
||||
}
|
||||
// Run
|
||||
equal := EqualIgnoreHash(*t1, *t2)
|
||||
equal, err := EqualIgnoreHash(t1, t2)
|
||||
if err != nil {
|
||||
t.Errorf("%s: unexpected error: %v", err, test.test)
|
||||
return
|
||||
}
|
||||
if equal != test.expected {
|
||||
t.Errorf("In test case %q%s, expected %v", test.test, reverseString, test.expected)
|
||||
t.Errorf("%q%s: expected %v", test.test, reverseString, test.expected)
|
||||
return
|
||||
}
|
||||
if t1.Labels == nil || t2.Labels == nil {
|
||||
t.Errorf("In test case %q%s, unexpected labels becomes nil", test.test, reverseString)
|
||||
}
|
||||
if !reflect.DeepEqual(t1, t1Copy) || !reflect.DeepEqual(t2, t2Copy) {
|
||||
t.Errorf("In test case %q%s, unexpected input template modified", test.test, reverseString)
|
||||
t.Errorf("%q%s: unexpected labels becomes nil", test.test, reverseString)
|
||||
}
|
||||
}
|
||||
runTest(&test.former, &test.latter, false)
|
||||
|
@@ -18,11 +18,13 @@ package util
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"hash/adler32"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
hashutil "k8s.io/kubernetes/pkg/util/hash"
|
||||
)
|
||||
|
||||
var podSpec string = `
|
||||
@@ -103,34 +105,12 @@ var podSpec string = `
|
||||
|
||||
func TestPodTemplateSpecHash(t *testing.T) {
|
||||
seenHashes := make(map[uint32]int)
|
||||
broken := false
|
||||
|
||||
for i := 0; i < 1000; i++ {
|
||||
specJson := strings.Replace(podSpec, "@@VERSION@@", strconv.Itoa(i), 1)
|
||||
spec := v1.PodTemplateSpec{}
|
||||
json.Unmarshal([]byte(specJson), &spec)
|
||||
hash := GetPodTemplateSpecHash(spec)
|
||||
if v, ok := seenHashes[hash]; ok {
|
||||
broken = true
|
||||
t.Logf("Hash collision, old: %d new: %d", v, i)
|
||||
break
|
||||
}
|
||||
seenHashes[hash] = i
|
||||
}
|
||||
|
||||
if !broken {
|
||||
t.Errorf("expected adler to break but it didn't")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPodTemplateSpecHashFnv(t *testing.T) {
|
||||
seenHashes := make(map[uint32]int)
|
||||
|
||||
for i := 0; i < 1000; i++ {
|
||||
specJson := strings.Replace(podSpec, "@@VERSION@@", strconv.Itoa(i), 1)
|
||||
spec := v1.PodTemplateSpec{}
|
||||
json.Unmarshal([]byte(specJson), &spec)
|
||||
hash := GetPodTemplateSpecHashFnv(spec)
|
||||
hash := GetPodTemplateSpecHash(&spec, nil)
|
||||
if v, ok := seenHashes[hash]; ok {
|
||||
t.Errorf("Hash collision, old: %d new: %d", v, i)
|
||||
break
|
||||
@@ -144,15 +124,21 @@ func BenchmarkAdler(b *testing.B) {
|
||||
json.Unmarshal([]byte(podSpec), &spec)
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
GetPodTemplateSpecHash(spec)
|
||||
getPodTemplateSpecOldHash(spec)
|
||||
}
|
||||
}
|
||||
|
||||
func getPodTemplateSpecOldHash(template v1.PodTemplateSpec) uint32 {
|
||||
podTemplateSpecHasher := adler32.New()
|
||||
hashutil.DeepHashObject(podTemplateSpecHasher, template)
|
||||
return podTemplateSpecHasher.Sum32()
|
||||
}
|
||||
|
||||
func BenchmarkFnv(b *testing.B) {
|
||||
spec := v1.PodTemplateSpec{}
|
||||
json.Unmarshal([]byte(podSpec), &spec)
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
GetPodTemplateSpecHashFnv(spec)
|
||||
GetPodTemplateSpecHash(&spec, nil)
|
||||
}
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@ limitations under the License.
|
||||
package util
|
||||
|
||||
import (
|
||||
"hash/adler32"
|
||||
"encoding/binary"
|
||||
"hash/fnv"
|
||||
|
||||
"github.com/golang/glog"
|
||||
@@ -31,22 +31,17 @@ import (
|
||||
hashutil "k8s.io/kubernetes/pkg/util/hash"
|
||||
)
|
||||
|
||||
func GetPodTemplateSpecHash(template v1.PodTemplateSpec) uint32 {
|
||||
podTemplateSpecHasher := adler32.New()
|
||||
hashutil.DeepHashObject(podTemplateSpecHasher, template)
|
||||
return podTemplateSpecHasher.Sum32()
|
||||
}
|
||||
|
||||
// TODO: remove the duplicate
|
||||
func GetInternalPodTemplateSpecHash(template api.PodTemplateSpec) uint32 {
|
||||
podTemplateSpecHasher := adler32.New()
|
||||
hashutil.DeepHashObject(podTemplateSpecHasher, template)
|
||||
return podTemplateSpecHasher.Sum32()
|
||||
}
|
||||
|
||||
func GetPodTemplateSpecHashFnv(template v1.PodTemplateSpec) uint32 {
|
||||
func GetPodTemplateSpecHash(template *v1.PodTemplateSpec, uniquifier *int64) uint32 {
|
||||
podTemplateSpecHasher := fnv.New32a()
|
||||
hashutil.DeepHashObject(podTemplateSpecHasher, template)
|
||||
hashutil.DeepHashObject(podTemplateSpecHasher, *template)
|
||||
|
||||
// Add uniquifier in the hash if it exists.
|
||||
if uniquifier != nil {
|
||||
uniquifierBytes := make([]byte, 8)
|
||||
binary.LittleEndian.PutUint64(uniquifierBytes, uint64(*uniquifier))
|
||||
podTemplateSpecHasher.Write(uniquifierBytes)
|
||||
}
|
||||
|
||||
return podTemplateSpecHasher.Sum32()
|
||||
}
|
||||
|
||||
|
59
pkg/controller/deployment/util/pod_util_test.go
Normal file
59
pkg/controller/deployment/util/pod_util_test.go
Normal file
@@ -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 util
|
||||
|
||||
import (
|
||||
"math"
|
||||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
)
|
||||
|
||||
func int64P(num int64) *int64 {
|
||||
return &num
|
||||
}
|
||||
|
||||
func TestGetPodTemplateSpecHash(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
template *v1.PodTemplateSpec
|
||||
collisionCount *int64
|
||||
otherCollisionCount *int64
|
||||
}{
|
||||
{
|
||||
name: "simple",
|
||||
template: &v1.PodTemplateSpec{},
|
||||
collisionCount: int64P(1),
|
||||
otherCollisionCount: int64P(2),
|
||||
},
|
||||
{
|
||||
name: "using math.MaxInt64",
|
||||
template: &v1.PodTemplateSpec{},
|
||||
collisionCount: nil,
|
||||
otherCollisionCount: int64P(int64(math.MaxInt64)),
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
hash := GetPodTemplateSpecHash(test.template, test.collisionCount)
|
||||
otherHash := GetPodTemplateSpecHash(test.template, test.otherCollisionCount)
|
||||
|
||||
if hash == otherHash {
|
||||
t.Errorf("expected different hashes but got the same: %d", hash)
|
||||
}
|
||||
}
|
||||
}
|
@@ -69,21 +69,12 @@ func UpdateRSWithRetries(rsClient unversionedextensions.ReplicaSetInterface, rsL
|
||||
}
|
||||
|
||||
// GetReplicaSetHash returns the pod template hash of a ReplicaSet's pod template space
|
||||
func GetReplicaSetHash(rs *extensions.ReplicaSet) string {
|
||||
meta := rs.Spec.Template.ObjectMeta
|
||||
meta.Labels = labelsutil.CloneAndRemoveLabel(meta.Labels, extensions.DefaultDeploymentUniqueLabelKey)
|
||||
return fmt.Sprintf("%d", GetPodTemplateSpecHash(v1.PodTemplateSpec{
|
||||
ObjectMeta: meta,
|
||||
Spec: rs.Spec.Template.Spec,
|
||||
}))
|
||||
}
|
||||
|
||||
// GetReplicaSetHashFnv returns the pod template hash of a ReplicaSet's pod template spec.
|
||||
func GetReplicaSetHashFnv(rs *extensions.ReplicaSet) string {
|
||||
meta := rs.Spec.Template.ObjectMeta
|
||||
meta.Labels = labelsutil.CloneAndRemoveLabel(meta.Labels, extensions.DefaultDeploymentUniqueLabelKey)
|
||||
return fmt.Sprintf("%d", GetPodTemplateSpecHashFnv(v1.PodTemplateSpec{
|
||||
ObjectMeta: meta,
|
||||
Spec: rs.Spec.Template.Spec,
|
||||
}))
|
||||
func GetReplicaSetHash(rs *extensions.ReplicaSet, uniquifier *int64) (string, error) {
|
||||
template, err := api.Scheme.DeepCopy(rs.Spec.Template)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
rsTemplate := template.(v1.PodTemplateSpec)
|
||||
rsTemplate.Labels = labelsutil.CloneAndRemoveLabel(rsTemplate.Labels, extensions.DefaultDeploymentUniqueLabelKey)
|
||||
return fmt.Sprintf("%d", GetPodTemplateSpecHash(&rsTemplate, uniquifier)), nil
|
||||
}
|
||||
|
@@ -157,7 +157,6 @@ go_test(
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library",
|
||||
"//pkg/controller/deployment/util:go_default_library",
|
||||
"//pkg/kubectl/util:go_default_library",
|
||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library",
|
||||
|
@@ -35,7 +35,6 @@ import (
|
||||
"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"
|
||||
deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util"
|
||||
)
|
||||
|
||||
func TestReplicationControllerStop(t *testing.T) {
|
||||
@@ -441,7 +440,6 @@ func TestDeploymentStop(t *testing.T) {
|
||||
Replicas: 0,
|
||||
},
|
||||
}
|
||||
template := deploymentutil.GetNewReplicaSetTemplateInternal(&deployment)
|
||||
trueVar := true
|
||||
tests := []struct {
|
||||
Name string
|
||||
@@ -492,9 +490,7 @@ func TestDeploymentStop(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Template: template,
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{},
|
||||
},
|
||||
// ReplicaSet owned by something else (should be ignored).
|
||||
{
|
||||
@@ -512,9 +508,7 @@ func TestDeploymentStop(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Template: template,
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -709,7 +703,6 @@ func TestDeploymentNotFoundError(t *testing.T) {
|
||||
Replicas: 0,
|
||||
},
|
||||
}
|
||||
template := deploymentutil.GetNewReplicaSetTemplateInternal(deployment)
|
||||
|
||||
fake := fake.NewSimpleClientset(
|
||||
deployment,
|
||||
@@ -719,9 +712,7 @@ func TestDeploymentNotFoundError(t *testing.T) {
|
||||
Name: name,
|
||||
Namespace: ns,
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Template: template,
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
2
staging/src/k8s.io/client-go/Godeps/Godeps.json
generated
2
staging/src/k8s.io/client-go/Godeps/Godeps.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"ImportPath": "k8s.io/client-go",
|
||||
"GoVersion": "go1.7",
|
||||
"GoVersion": "go1.8",
|
||||
"GodepVersion": "v79",
|
||||
"Packages": [
|
||||
"./..."
|
||||
|
@@ -455,6 +455,11 @@ func (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {
|
||||
dAtA[i] = 0x38
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
dAtA[i] = 0x40
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))
|
||||
}
|
||||
return i, nil
|
||||
}
|
||||
|
||||
@@ -954,6 +959,9 @@ func (m *DeploymentStatus) Size() (n int) {
|
||||
}
|
||||
}
|
||||
n += 1 + sovGenerated(uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
n += 1 + sovGenerated(uint64(*m.CollisionCount))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -1190,6 +1198,7 @@ func (this *DeploymentStatus) String() string {
|
||||
`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
|
||||
@@ -2478,6 +2487,26 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error {
|
||||
break
|
||||
}
|
||||
}
|
||||
case 8:
|
||||
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:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@@ -3891,103 +3920,105 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptorGenerated = []byte{
|
||||
// 1561 bytes of a gzipped FileDescriptorProto
|
||||
// 1585 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x6f, 0x1b, 0xb7,
|
||||
0x12, 0xf7, 0xda, 0x92, 0x2d, 0xd3, 0xb1, 0x1c, 0xd3, 0x7e, 0xb1, 0x9e, 0xf3, 0x20, 0x07, 0x3a,
|
||||
0xe4, 0xe3, 0x21, 0x59, 0xbd, 0x38, 0x79, 0xf9, 0x72, 0x11, 0xd4, 0x4a, 0xd2, 0x34, 0x85, 0xdd,
|
||||
0x18, 0x94, 0x1d, 0x34, 0x69, 0x0a, 0x94, 0x5a, 0x31, 0x6b, 0xc6, 0xfb, 0x85, 0x25, 0x25, 0x44,
|
||||
0xb7, 0x5e, 0x7a, 0x28, 0xd0, 0x43, 0x4f, 0xbd, 0x15, 0xed, 0xb9, 0x28, 0xd0, 0x7f, 0xc3, 0x68,
|
||||
0x2f, 0x39, 0x16, 0x3d, 0x18, 0xb5, 0xf3, 0x5f, 0xe4, 0x54, 0x90, 0xcb, 0xfd, 0xd2, 0xae, 0xfc,
|
||||
0xa1, 0xa2, 0xb9, 0xf4, 0xa6, 0xe5, 0xcc, 0xef, 0x37, 0x43, 0x72, 0x66, 0x38, 0x23, 0x70, 0x73,
|
||||
0xe7, 0x16, 0xd3, 0xa9, 0x5b, 0xdf, 0xe9, 0xb4, 0x88, 0xef, 0x10, 0x4e, 0x58, 0xdd, 0xdb, 0x31,
|
||||
0xeb, 0xd8, 0xa3, 0xac, 0x8e, 0x3d, 0x8f, 0xd5, 0xbb, 0x57, 0x5b, 0x84, 0xe3, 0xab, 0x75, 0x93,
|
||||
0x38, 0xc4, 0xc7, 0x9c, 0xb4, 0x75, 0xcf, 0x77, 0xb9, 0x0b, 0x2f, 0x04, 0x40, 0x3d, 0x06, 0xea,
|
||||
0xde, 0x8e, 0xa9, 0x0b, 0xa0, 0x2e, 0x80, 0xba, 0x02, 0x2e, 0x5e, 0x31, 0x29, 0xdf, 0xee, 0xb4,
|
||||
0x74, 0xc3, 0xb5, 0xeb, 0xa6, 0x6b, 0xba, 0x75, 0x89, 0x6f, 0x75, 0x5e, 0xc8, 0x2f, 0xf9, 0x21,
|
||||
0x7f, 0x05, 0xbc, 0x8b, 0xd7, 0x95, 0x43, 0xd8, 0xa3, 0x36, 0x36, 0xb6, 0xa9, 0x43, 0xfc, 0x5e,
|
||||
0xec, 0x92, 0x4d, 0x38, 0xae, 0x77, 0x33, 0xde, 0x2c, 0xd6, 0x07, 0xa1, 0xfc, 0x8e, 0xc3, 0xa9,
|
||||
0x4d, 0x32, 0x80, 0x1b, 0x47, 0x01, 0x98, 0xb1, 0x4d, 0x6c, 0x9c, 0xc1, 0x5d, 0x1b, 0x84, 0xeb,
|
||||
0x70, 0x6a, 0xd5, 0xa9, 0xc3, 0x19, 0xf7, 0x33, 0xa0, 0xc4, 0x9e, 0x18, 0xf1, 0xbb, 0xc4, 0x8f,
|
||||
0x37, 0x44, 0x5e, 0x61, 0xdb, 0xb3, 0x48, 0xde, 0x9e, 0x2e, 0x0f, 0xbc, 0x9a, 0x3c, 0xed, 0xdb,
|
||||
0x87, 0x5c, 0xa4, 0xe7, 0x5a, 0xd4, 0xe8, 0x0d, 0xba, 0xca, 0xda, 0x4f, 0xa3, 0x00, 0xdc, 0x27,
|
||||
0x9e, 0xe5, 0xf6, 0x6c, 0xe2, 0x70, 0xf8, 0x39, 0x28, 0x89, 0x63, 0x6e, 0x63, 0x8e, 0x2b, 0xda,
|
||||
0x39, 0xed, 0xe2, 0xd4, 0xf2, 0xff, 0x74, 0x75, 0xd9, 0xc9, 0x5d, 0xc7, 0xd7, 0x2d, 0xb4, 0xf5,
|
||||
0xee, 0x55, 0xfd, 0x71, 0xeb, 0x25, 0x31, 0xf8, 0x3a, 0xe1, 0xb8, 0x01, 0x77, 0xf7, 0x96, 0x46,
|
||||
0x0e, 0xf6, 0x96, 0x40, 0xbc, 0x86, 0x22, 0x56, 0xf8, 0x14, 0x14, 0x98, 0x47, 0x8c, 0xca, 0xa8,
|
||||
0x64, 0xbf, 0xa9, 0x1f, 0x33, 0x94, 0xf4, 0xd8, 0xc9, 0xa6, 0x47, 0x8c, 0xc6, 0x29, 0x65, 0xa4,
|
||||
0x20, 0xbe, 0x90, 0xa4, 0x84, 0x18, 0x8c, 0x33, 0x8e, 0x79, 0x87, 0x55, 0xc6, 0x24, 0xf9, 0xed,
|
||||
0x61, 0xc8, 0x25, 0x41, 0xa3, 0xac, 0xe8, 0xc7, 0x83, 0x6f, 0xa4, 0x88, 0x6b, 0xfb, 0x63, 0x60,
|
||||
0x2e, 0x56, 0xbe, 0xe7, 0x3a, 0x6d, 0xca, 0xa9, 0xeb, 0xc0, 0x15, 0x50, 0xe0, 0x3d, 0x8f, 0xc8,
|
||||
0x33, 0x9b, 0x6c, 0x5c, 0x08, 0x9d, 0xdb, 0xec, 0x79, 0xe4, 0xed, 0xde, 0xd2, 0x42, 0x0e, 0x44,
|
||||
0x88, 0x90, 0x04, 0xc1, 0x27, 0x91, 0xdf, 0xa3, 0x12, 0x7e, 0x37, 0x6d, 0xfc, 0xed, 0xde, 0xd2,
|
||||
0xa1, 0xe1, 0xa0, 0x47, 0x9c, 0x69, 0x67, 0xe1, 0x79, 0x30, 0xee, 0x13, 0xcc, 0x5c, 0xa7, 0x52,
|
||||
0x90, 0xbc, 0xd1, 0xa6, 0x90, 0x5c, 0x45, 0x4a, 0x0a, 0x2f, 0x81, 0x09, 0x9b, 0x30, 0x86, 0x4d,
|
||||
0x52, 0x29, 0x4a, 0xc5, 0x19, 0xa5, 0x38, 0xb1, 0x1e, 0x2c, 0xa3, 0x50, 0x0e, 0x5f, 0x82, 0xb2,
|
||||
0x85, 0x19, 0xdf, 0xf2, 0xda, 0x98, 0x93, 0x4d, 0x6a, 0x93, 0xca, 0xb8, 0x3c, 0xea, 0xff, 0x1e,
|
||||
0x2f, 0x4a, 0x04, 0xa2, 0x71, 0x46, 0xb1, 0x97, 0xd7, 0x52, 0x4c, 0xa8, 0x8f, 0x19, 0x76, 0x01,
|
||||
0x14, 0x2b, 0x9b, 0x3e, 0x76, 0x58, 0x70, 0x64, 0xc2, 0xde, 0xc4, 0x89, 0xed, 0x2d, 0x2a, 0x7b,
|
||||
0x70, 0x2d, 0xc3, 0x86, 0x72, 0x2c, 0xd4, 0x76, 0x35, 0x50, 0x8e, 0x2f, 0x6c, 0x8d, 0x32, 0x0e,
|
||||
0x9f, 0x67, 0xd2, 0x42, 0x3f, 0x9e, 0x03, 0x02, 0x2d, 0x93, 0xe2, 0xb4, 0x72, 0xa2, 0x14, 0xae,
|
||||
0x24, 0x52, 0xe2, 0x13, 0x50, 0xa4, 0x9c, 0xd8, 0xe2, 0xfa, 0xc7, 0x2e, 0x4e, 0x2d, 0x5f, 0x1b,
|
||||
0x22, 0x6c, 0x1b, 0xd3, 0x8a, 0xbf, 0xf8, 0x48, 0x30, 0xa1, 0x80, 0xb0, 0xf6, 0xf5, 0x18, 0x80,
|
||||
0xb1, 0x12, 0x72, 0x2d, 0xab, 0x85, 0x8d, 0x1d, 0x78, 0x0e, 0x14, 0x1c, 0x6c, 0x87, 0xd1, 0x1a,
|
||||
0xa5, 0xd2, 0xc7, 0xd8, 0x26, 0x48, 0x4a, 0xe0, 0xf7, 0x1a, 0x80, 0x1d, 0x79, 0x15, 0xed, 0x55,
|
||||
0xc7, 0x71, 0x39, 0x16, 0xa7, 0x13, 0x3a, 0xd8, 0x1c, 0xc2, 0xc1, 0xd0, 0xb6, 0xbe, 0x95, 0x61,
|
||||
0x7d, 0xe0, 0x70, 0xbf, 0x17, 0xdf, 0x52, 0x56, 0x01, 0xe5, 0xb8, 0x02, 0x77, 0x00, 0xf0, 0x15,
|
||||
0xe7, 0xa6, 0xab, 0x12, 0xfe, 0xf8, 0xd5, 0x24, 0x74, 0xe7, 0x9e, 0xeb, 0xbc, 0xa0, 0x66, 0x5c,
|
||||
0xb2, 0x50, 0x44, 0x89, 0x12, 0xf4, 0x8b, 0x0f, 0xc0, 0xc2, 0x00, 0xbf, 0xe1, 0x69, 0x30, 0xb6,
|
||||
0x43, 0x7a, 0xc1, 0x51, 0x22, 0xf1, 0x13, 0xce, 0x83, 0x62, 0x17, 0x5b, 0x1d, 0x12, 0x64, 0x33,
|
||||
0x0a, 0x3e, 0xee, 0x8c, 0xde, 0xd2, 0x6a, 0xbf, 0x17, 0x93, 0x91, 0x25, 0x2a, 0x17, 0xbc, 0x08,
|
||||
0x4a, 0x3e, 0xf1, 0x2c, 0x6a, 0x60, 0x26, 0x39, 0x8a, 0x8d, 0x53, 0x22, 0x4a, 0x90, 0x5a, 0x43,
|
||||
0x91, 0x14, 0x7e, 0x06, 0x4a, 0x8c, 0x58, 0xc4, 0xe0, 0xae, 0xaf, 0x8a, 0xe7, 0xb5, 0x63, 0xc6,
|
||||
0x20, 0x6e, 0x11, 0xab, 0xa9, 0xa0, 0x01, 0x7d, 0xf8, 0x85, 0x22, 0x4a, 0xf8, 0x29, 0x28, 0x71,
|
||||
0x62, 0x7b, 0x16, 0xe6, 0x44, 0x9d, 0xe6, 0x95, 0xc1, 0xa7, 0x29, 0x68, 0x37, 0xdc, 0xf6, 0xa6,
|
||||
0x02, 0xc8, 0x8a, 0x1c, 0x45, 0x78, 0xb8, 0x8a, 0x22, 0x42, 0x48, 0x41, 0x89, 0x71, 0xf1, 0xec,
|
||||
0x98, 0x3d, 0x59, 0x8b, 0xa6, 0x96, 0x57, 0x86, 0xaa, 0xcd, 0x01, 0x45, 0x6c, 0x2a, 0x5c, 0x41,
|
||||
0x11, 0x3d, 0x5c, 0x05, 0x33, 0x36, 0x75, 0x10, 0xc1, 0xed, 0x5e, 0x93, 0x18, 0xae, 0xd3, 0x66,
|
||||
0xb2, 0xa8, 0x15, 0x1b, 0x0b, 0x0a, 0x34, 0xb3, 0x9e, 0x16, 0xa3, 0x7e, 0x7d, 0xb8, 0x06, 0xe6,
|
||||
0x7d, 0xd2, 0xa5, 0x8c, 0xba, 0xce, 0x87, 0x94, 0x71, 0xd7, 0xef, 0xad, 0x51, 0x9b, 0x72, 0x59,
|
||||
0xea, 0x8a, 0x8d, 0xca, 0xc1, 0xde, 0xd2, 0x3c, 0xca, 0x91, 0xa3, 0x5c, 0x94, 0xa8, 0xc2, 0x1e,
|
||||
0xee, 0x30, 0xd2, 0x96, 0xa5, 0xab, 0x14, 0x57, 0xe1, 0x0d, 0xb9, 0x8a, 0x94, 0x14, 0x9a, 0xa9,
|
||||
0x80, 0x2e, 0xfd, 0xb5, 0x80, 0x2e, 0x0f, 0x0e, 0x66, 0xb8, 0x05, 0x16, 0x3c, 0xdf, 0x35, 0x7d,
|
||||
0xc2, 0xd8, 0x7d, 0x82, 0xdb, 0x16, 0x75, 0x48, 0x78, 0x52, 0x93, 0x72, 0x87, 0x67, 0x0f, 0xf6,
|
||||
0x96, 0x16, 0x36, 0xf2, 0x55, 0xd0, 0x20, 0x6c, 0xed, 0xdb, 0x02, 0x38, 0xdd, 0xff, 0x8e, 0xc2,
|
||||
0x8f, 0x00, 0x74, 0x5b, 0xb2, 0xef, 0x69, 0x3f, 0x0c, 0x3a, 0x0f, 0xea, 0x3a, 0x32, 0xd0, 0xc7,
|
||||
0xe2, 0x8c, 0x7f, 0x9c, 0xd1, 0x40, 0x39, 0x28, 0x78, 0x39, 0x91, 0x2a, 0xa3, 0xd2, 0xd1, 0x28,
|
||||
0x0e, 0x72, 0xd2, 0x65, 0x15, 0xcc, 0xa8, 0xaa, 0x11, 0x0a, 0x65, 0x58, 0x27, 0xe2, 0x60, 0x2b,
|
||||
0x2d, 0x46, 0xfd, 0xfa, 0xf0, 0x21, 0x98, 0xc5, 0x5d, 0x4c, 0x2d, 0xdc, 0xb2, 0x48, 0x44, 0x52,
|
||||
0x90, 0x24, 0xff, 0x56, 0x24, 0xb3, 0xab, 0xfd, 0x0a, 0x28, 0x8b, 0x81, 0xeb, 0x60, 0xae, 0xe3,
|
||||
0x64, 0xa9, 0x82, 0xb8, 0x3c, 0xab, 0xa8, 0xe6, 0xb6, 0xb2, 0x2a, 0x28, 0x0f, 0x07, 0x3d, 0x00,
|
||||
0x8c, 0xf0, 0xc9, 0x67, 0x95, 0x71, 0x59, 0x93, 0xdf, 0x1b, 0x22, 0x9f, 0xa2, 0xbe, 0x21, 0xae,
|
||||
0x7f, 0xd1, 0x12, 0x43, 0x09, 0x1b, 0x70, 0x05, 0x4c, 0xfb, 0x22, 0x43, 0x22, 0xd7, 0x27, 0xa4,
|
||||
0xeb, 0xff, 0x52, 0xb0, 0x69, 0x94, 0x14, 0xa2, 0xb4, 0x6e, 0xed, 0x57, 0x2d, 0xf9, 0x08, 0x85,
|
||||
0x29, 0x0b, 0xef, 0xa4, 0x5a, 0xa6, 0xf3, 0x7d, 0x2d, 0xd3, 0x99, 0x2c, 0x22, 0xd1, 0x31, 0xf5,
|
||||
0xc0, 0xb4, 0x08, 0x68, 0xea, 0x98, 0xc1, 0x25, 0xaa, 0x82, 0xf8, 0xfe, 0x89, 0xd2, 0x25, 0x42,
|
||||
0x27, 0x9e, 0xd1, 0x59, 0xb9, 0x9b, 0xa4, 0x10, 0xa5, 0x2d, 0xd5, 0xee, 0x82, 0x72, 0x3a, 0xd7,
|
||||
0x82, 0xb8, 0x0c, 0x12, 0x5f, 0x45, 0x76, 0x22, 0x2e, 0x83, 0x75, 0x14, 0x69, 0xd4, 0xde, 0x68,
|
||||
0x60, 0x61, 0x80, 0x75, 0x68, 0x81, 0xb2, 0x8d, 0x5f, 0x25, 0xe2, 0xe0, 0xc8, 0x1e, 0x5c, 0x4c,
|
||||
0x1e, 0x7a, 0x30, 0x79, 0xe8, 0x8f, 0x1c, 0xfe, 0xd8, 0x6f, 0x72, 0x9f, 0x3a, 0x66, 0x03, 0x8a,
|
||||
0xfe, 0x6a, 0x3d, 0xc5, 0x85, 0xfa, 0xb8, 0xe1, 0x33, 0x50, 0xb2, 0xf1, 0xab, 0x66, 0xc7, 0x37,
|
||||
0xc3, 0xf3, 0x3b, 0xb9, 0x1d, 0xf9, 0x9a, 0xac, 0x2b, 0x16, 0x14, 0xf1, 0xd5, 0xbe, 0x1b, 0x05,
|
||||
0xc5, 0xa6, 0x81, 0x2d, 0xf2, 0x0e, 0x26, 0x8a, 0xcd, 0xd4, 0x44, 0xb1, 0x7c, 0xec, 0x18, 0x90,
|
||||
0xfe, 0x0d, 0x1c, 0x26, 0x9e, 0xf7, 0x0d, 0x13, 0xd7, 0x4f, 0xc8, 0x7b, 0xf8, 0x1c, 0x71, 0x1b,
|
||||
0x4c, 0x46, 0xe6, 0x53, 0x85, 0x4d, 0x3b, 0xaa, 0xb0, 0xd5, 0x7e, 0x1c, 0x05, 0x53, 0x09, 0x13,
|
||||
0x27, 0x43, 0x43, 0x2f, 0xd5, 0x45, 0x88, 0xca, 0xd1, 0x18, 0x66, 0x63, 0x7a, 0xd8, 0x41, 0x04,
|
||||
0xcd, 0x5b, 0xfc, 0x20, 0x67, 0x1b, 0x8b, 0xbb, 0xa0, 0xcc, 0xb1, 0x6f, 0x12, 0x1e, 0xca, 0xe4,
|
||||
0x81, 0x4e, 0xc6, 0x63, 0xc0, 0x66, 0x4a, 0x8a, 0xfa, 0xb4, 0x17, 0x57, 0xc0, 0x74, 0xca, 0xd8,
|
||||
0x89, 0x3a, 0xae, 0x9f, 0xc5, 0x61, 0x71, 0xcc, 0xc9, 0x8b, 0x8e, 0xd5, 0x24, 0xef, 0x62, 0xbe,
|
||||
0x7d, 0x96, 0x8a, 0xc6, 0x5b, 0xc7, 0x3f, 0xdc, 0xd8, 0xcb, 0x81, 0x31, 0xd9, 0xea, 0x8b, 0xc9,
|
||||
0x3b, 0x43, 0xb1, 0x1f, 0x1e, 0x99, 0xbf, 0x68, 0x60, 0x26, 0xa1, 0xfd, 0x0e, 0xc6, 0x9f, 0xa7,
|
||||
0xe9, 0xf1, 0xe7, 0xfa, 0x30, 0x9b, 0x1a, 0x30, 0xff, 0xfc, 0x50, 0x48, 0x6d, 0xe6, 0x1f, 0xd4,
|
||||
0x71, 0x7f, 0xa9, 0x81, 0xf9, 0xae, 0x6b, 0x75, 0x6c, 0x72, 0xcf, 0xc2, 0xd4, 0x0e, 0x35, 0x44,
|
||||
0xff, 0x72, 0xc4, 0x8c, 0x29, 0x2d, 0x11, 0x9f, 0x51, 0xc6, 0x89, 0xc3, 0x9f, 0xc4, 0x1c, 0x8d,
|
||||
0xff, 0x28, 0x7b, 0xf3, 0x4f, 0x72, 0x88, 0x51, 0xae, 0x39, 0xf8, 0x7f, 0x30, 0x25, 0x1a, 0x39,
|
||||
0x6a, 0x10, 0x31, 0x5d, 0xaa, 0xff, 0x17, 0xe6, 0x14, 0xd1, 0x54, 0x33, 0x16, 0xa1, 0xa4, 0x1e,
|
||||
0xdc, 0x06, 0x73, 0x9e, 0xdb, 0x5e, 0xc7, 0x0e, 0x36, 0x89, 0x78, 0x1a, 0x37, 0xe4, 0xbf, 0x58,
|
||||
0xb2, 0x03, 0x9f, 0x6c, 0xdc, 0x08, 0x3b, 0xa6, 0x8d, 0xac, 0xca, 0x5b, 0xd1, 0xba, 0x66, 0x97,
|
||||
0x65, 0xef, 0x90, 0x47, 0x59, 0xfb, 0x4a, 0x03, 0xb3, 0x99, 0xec, 0x80, 0x1f, 0x1c, 0xd2, 0xb7,
|
||||
0x9e, 0xf9, 0xbb, 0x7a, 0xd6, 0xc6, 0xa5, 0xdd, 0xfd, 0xea, 0xc8, 0xeb, 0xfd, 0xea, 0xc8, 0x6f,
|
||||
0xfb, 0xd5, 0x91, 0x2f, 0x0e, 0xaa, 0xda, 0xee, 0x41, 0x55, 0x7b, 0x7d, 0x50, 0xd5, 0xfe, 0x38,
|
||||
0xa8, 0x6a, 0xdf, 0xbc, 0xa9, 0x8e, 0x3c, 0x9b, 0x50, 0xb1, 0xff, 0x67, 0x00, 0x00, 0x00, 0xff,
|
||||
0xff, 0xdb, 0x8b, 0x00, 0x6d, 0xbc, 0x15, 0x00, 0x00,
|
||||
0xe4, 0xe3, 0x21, 0x59, 0xbd, 0x38, 0x79, 0xf9, 0xb0, 0x8b, 0xa0, 0x96, 0x93, 0xa6, 0x29, 0xec,
|
||||
0xc6, 0xa0, 0xec, 0xa0, 0x49, 0x53, 0xa0, 0xd4, 0x8a, 0x59, 0x33, 0xde, 0x2f, 0x2c, 0x29, 0x21,
|
||||
0xba, 0xf5, 0xd2, 0x43, 0x81, 0x1e, 0xfa, 0x0f, 0x14, 0xed, 0xb9, 0x28, 0xd0, 0x7f, 0xc3, 0x68,
|
||||
0x2f, 0x41, 0x4f, 0x45, 0x0f, 0x46, 0xed, 0xfc, 0x17, 0x39, 0x15, 0xe4, 0x72, 0xbf, 0xb4, 0x92,
|
||||
0x2d, 0xab, 0x68, 0x2e, 0xbd, 0x69, 0x39, 0xf3, 0xfb, 0xcd, 0x90, 0x9c, 0x19, 0xce, 0x08, 0xdc,
|
||||
0xde, 0xbb, 0xc3, 0x74, 0xea, 0x56, 0xf7, 0x5a, 0x0d, 0xe2, 0x3b, 0x84, 0x13, 0x56, 0xf5, 0xf6,
|
||||
0xcc, 0x2a, 0xf6, 0x28, 0xab, 0x62, 0xcf, 0x63, 0xd5, 0xf6, 0xf5, 0x06, 0xe1, 0xf8, 0x7a, 0xd5,
|
||||
0x24, 0x0e, 0xf1, 0x31, 0x27, 0x4d, 0xdd, 0xf3, 0x5d, 0xee, 0xc2, 0x4b, 0x01, 0x50, 0x8f, 0x81,
|
||||
0xba, 0xb7, 0x67, 0xea, 0x02, 0xa8, 0x0b, 0xa0, 0xae, 0x80, 0x8b, 0xd7, 0x4c, 0xca, 0x77, 0x5b,
|
||||
0x0d, 0xdd, 0x70, 0xed, 0xaa, 0xe9, 0x9a, 0x6e, 0x55, 0xe2, 0x1b, 0xad, 0x17, 0xf2, 0x4b, 0x7e,
|
||||
0xc8, 0x5f, 0x01, 0xef, 0xe2, 0x4d, 0xe5, 0x10, 0xf6, 0xa8, 0x8d, 0x8d, 0x5d, 0xea, 0x10, 0xbf,
|
||||
0x13, 0xbb, 0x64, 0x13, 0x8e, 0xab, 0xed, 0x8c, 0x37, 0x8b, 0xd5, 0x7e, 0x28, 0xbf, 0xe5, 0x70,
|
||||
0x6a, 0x93, 0x0c, 0xe0, 0xd6, 0x49, 0x00, 0x66, 0xec, 0x12, 0x1b, 0x67, 0x70, 0x37, 0xfa, 0xe1,
|
||||
0x5a, 0x9c, 0x5a, 0x55, 0xea, 0x70, 0xc6, 0xfd, 0x0c, 0x28, 0xb1, 0x27, 0x46, 0xfc, 0x36, 0xf1,
|
||||
0xe3, 0x0d, 0x91, 0x57, 0xd8, 0xf6, 0x2c, 0xd2, 0x6b, 0x4f, 0x57, 0xfb, 0x5e, 0x4d, 0x2f, 0xed,
|
||||
0xbb, 0xc7, 0x5c, 0xa4, 0xe7, 0x5a, 0xd4, 0xe8, 0xf4, 0xbb, 0xca, 0xca, 0x8f, 0xa3, 0x00, 0xdc,
|
||||
0x27, 0x9e, 0xe5, 0x76, 0x6c, 0xe2, 0x70, 0xf8, 0x39, 0x28, 0x88, 0x63, 0x6e, 0x62, 0x8e, 0x4b,
|
||||
0xda, 0x05, 0xed, 0xf2, 0xd4, 0xf2, 0xff, 0x74, 0x75, 0xd9, 0xc9, 0x5d, 0xc7, 0xd7, 0x2d, 0xb4,
|
||||
0xf5, 0xf6, 0x75, 0xfd, 0x71, 0xe3, 0x25, 0x31, 0xf8, 0x26, 0xe1, 0xb8, 0x06, 0xf7, 0x0f, 0x96,
|
||||
0x46, 0x8e, 0x0e, 0x96, 0x40, 0xbc, 0x86, 0x22, 0x56, 0xf8, 0x14, 0xe4, 0x98, 0x47, 0x8c, 0xd2,
|
||||
0xa8, 0x64, 0xbf, 0xad, 0x0f, 0x18, 0x4a, 0x7a, 0xec, 0x64, 0xdd, 0x23, 0x46, 0xed, 0x8c, 0x32,
|
||||
0x92, 0x13, 0x5f, 0x48, 0x52, 0x42, 0x0c, 0xc6, 0x19, 0xc7, 0xbc, 0xc5, 0x4a, 0x63, 0x92, 0xfc,
|
||||
0xee, 0x30, 0xe4, 0x92, 0xa0, 0x56, 0x54, 0xf4, 0xe3, 0xc1, 0x37, 0x52, 0xc4, 0x95, 0xc3, 0x31,
|
||||
0x30, 0x17, 0x2b, 0xaf, 0xbb, 0x4e, 0x93, 0x72, 0xea, 0x3a, 0x70, 0x15, 0xe4, 0x78, 0xc7, 0x23,
|
||||
0xf2, 0xcc, 0x26, 0x6b, 0x97, 0x42, 0xe7, 0xb6, 0x3b, 0x1e, 0x79, 0x7b, 0xb0, 0xb4, 0xd0, 0x03,
|
||||
0x22, 0x44, 0x48, 0x82, 0xe0, 0x93, 0xc8, 0xef, 0x51, 0x09, 0xbf, 0x97, 0x36, 0xfe, 0xf6, 0x60,
|
||||
0xe9, 0xd8, 0x70, 0xd0, 0x23, 0xce, 0xb4, 0xb3, 0xf0, 0x22, 0x18, 0xf7, 0x09, 0x66, 0xae, 0x53,
|
||||
0xca, 0x49, 0xde, 0x68, 0x53, 0x48, 0xae, 0x22, 0x25, 0x85, 0x57, 0xc0, 0x84, 0x4d, 0x18, 0xc3,
|
||||
0x26, 0x29, 0xe5, 0xa5, 0xe2, 0x8c, 0x52, 0x9c, 0xd8, 0x0c, 0x96, 0x51, 0x28, 0x87, 0x2f, 0x41,
|
||||
0xd1, 0xc2, 0x8c, 0xef, 0x78, 0x4d, 0xcc, 0xc9, 0x36, 0xb5, 0x49, 0x69, 0x5c, 0x1e, 0xf5, 0x7f,
|
||||
0x07, 0x8b, 0x12, 0x81, 0xa8, 0x9d, 0x53, 0xec, 0xc5, 0x8d, 0x14, 0x13, 0xea, 0x62, 0x86, 0x6d,
|
||||
0x00, 0xc5, 0xca, 0xb6, 0x8f, 0x1d, 0x16, 0x1c, 0x99, 0xb0, 0x37, 0x71, 0x6a, 0x7b, 0x8b, 0xca,
|
||||
0x1e, 0xdc, 0xc8, 0xb0, 0xa1, 0x1e, 0x16, 0x2a, 0xfb, 0x1a, 0x28, 0xc6, 0x17, 0xb6, 0x41, 0x19,
|
||||
0x87, 0xcf, 0x33, 0x69, 0xa1, 0x0f, 0xe6, 0x80, 0x40, 0xcb, 0xa4, 0x38, 0xab, 0x9c, 0x28, 0x84,
|
||||
0x2b, 0x89, 0x94, 0xf8, 0x04, 0xe4, 0x29, 0x27, 0xb6, 0xb8, 0xfe, 0xb1, 0xcb, 0x53, 0xcb, 0x37,
|
||||
0x86, 0x08, 0xdb, 0xda, 0xb4, 0xe2, 0xcf, 0x3f, 0x12, 0x4c, 0x28, 0x20, 0xac, 0x7c, 0x3d, 0x06,
|
||||
0x60, 0xac, 0x84, 0x5c, 0xcb, 0x6a, 0x60, 0x63, 0x0f, 0x5e, 0x00, 0x39, 0x07, 0xdb, 0x61, 0xb4,
|
||||
0x46, 0xa9, 0xf4, 0x31, 0xb6, 0x09, 0x92, 0x12, 0xf8, 0x9d, 0x06, 0x60, 0x4b, 0x5e, 0x45, 0x73,
|
||||
0xcd, 0x71, 0x5c, 0x8e, 0xc5, 0xe9, 0x84, 0x0e, 0xd6, 0x87, 0x70, 0x30, 0xb4, 0xad, 0xef, 0x64,
|
||||
0x58, 0x1f, 0x38, 0xdc, 0xef, 0xc4, 0xb7, 0x94, 0x55, 0x40, 0x3d, 0x5c, 0x81, 0x7b, 0x00, 0xf8,
|
||||
0x8a, 0x73, 0xdb, 0x55, 0x09, 0x3f, 0x78, 0x35, 0x09, 0xdd, 0x59, 0x77, 0x9d, 0x17, 0xd4, 0x8c,
|
||||
0x4b, 0x16, 0x8a, 0x28, 0x51, 0x82, 0x7e, 0xf1, 0x01, 0x58, 0xe8, 0xe3, 0x37, 0x3c, 0x0b, 0xc6,
|
||||
0xf6, 0x48, 0x27, 0x38, 0x4a, 0x24, 0x7e, 0xc2, 0x79, 0x90, 0x6f, 0x63, 0xab, 0x45, 0x82, 0x6c,
|
||||
0x46, 0xc1, 0xc7, 0xca, 0xe8, 0x1d, 0xad, 0xf2, 0x7b, 0x3e, 0x19, 0x59, 0xa2, 0x72, 0xc1, 0xcb,
|
||||
0xa0, 0xe0, 0x13, 0xcf, 0xa2, 0x06, 0x66, 0x92, 0x23, 0x5f, 0x3b, 0x23, 0xa2, 0x04, 0xa9, 0x35,
|
||||
0x14, 0x49, 0xe1, 0x67, 0xa0, 0xc0, 0x88, 0x45, 0x0c, 0xee, 0xfa, 0xaa, 0x78, 0xde, 0x18, 0x30,
|
||||
0x06, 0x71, 0x83, 0x58, 0x75, 0x05, 0x0d, 0xe8, 0xc3, 0x2f, 0x14, 0x51, 0xc2, 0x4f, 0x41, 0x81,
|
||||
0x13, 0xdb, 0xb3, 0x30, 0x27, 0xea, 0x34, 0xaf, 0xf5, 0x3f, 0x4d, 0x41, 0xbb, 0xe5, 0x36, 0xb7,
|
||||
0x15, 0x40, 0x56, 0xe4, 0x28, 0xc2, 0xc3, 0x55, 0x14, 0x11, 0x42, 0x0a, 0x0a, 0x8c, 0x8b, 0x67,
|
||||
0xc7, 0xec, 0xc8, 0x5a, 0x34, 0xb5, 0xbc, 0x3a, 0x54, 0x6d, 0x0e, 0x28, 0x62, 0x53, 0xe1, 0x0a,
|
||||
0x8a, 0xe8, 0xe1, 0x1a, 0x98, 0xb1, 0xa9, 0x83, 0x08, 0x6e, 0x76, 0xea, 0xc4, 0x70, 0x9d, 0x26,
|
||||
0x93, 0x45, 0x2d, 0x5f, 0x5b, 0x50, 0xa0, 0x99, 0xcd, 0xb4, 0x18, 0x75, 0xeb, 0xc3, 0x0d, 0x30,
|
||||
0xef, 0x93, 0x36, 0x65, 0xd4, 0x75, 0x3e, 0xa4, 0x8c, 0xbb, 0x7e, 0x67, 0x83, 0xda, 0x94, 0xcb,
|
||||
0x52, 0x97, 0xaf, 0x95, 0x8e, 0x0e, 0x96, 0xe6, 0x51, 0x0f, 0x39, 0xea, 0x89, 0x12, 0x55, 0xd8,
|
||||
0xc3, 0x2d, 0x46, 0x9a, 0xb2, 0x74, 0x15, 0xe2, 0x2a, 0xbc, 0x25, 0x57, 0x91, 0x92, 0x42, 0x33,
|
||||
0x15, 0xd0, 0x85, 0xbf, 0x16, 0xd0, 0xc5, 0xfe, 0xc1, 0x0c, 0x77, 0xc0, 0x82, 0xe7, 0xbb, 0xa6,
|
||||
0x4f, 0x18, 0xbb, 0x4f, 0x70, 0xd3, 0xa2, 0x0e, 0x09, 0x4f, 0x6a, 0x52, 0xee, 0xf0, 0xfc, 0xd1,
|
||||
0xc1, 0xd2, 0xc2, 0x56, 0x6f, 0x15, 0xd4, 0x0f, 0x5b, 0xf9, 0x35, 0x07, 0xce, 0x76, 0xbf, 0xa3,
|
||||
0xf0, 0x23, 0x00, 0xdd, 0x86, 0xec, 0x7b, 0x9a, 0x0f, 0x83, 0xce, 0x83, 0xba, 0x8e, 0x0c, 0xf4,
|
||||
0xb1, 0x38, 0xe3, 0x1f, 0x67, 0x34, 0x50, 0x0f, 0x14, 0xbc, 0x9a, 0x48, 0x95, 0x51, 0xe9, 0x68,
|
||||
0x14, 0x07, 0x3d, 0xd2, 0x65, 0x0d, 0xcc, 0xa8, 0xaa, 0x11, 0x0a, 0x65, 0x58, 0x27, 0xe2, 0x60,
|
||||
0x27, 0x2d, 0x46, 0xdd, 0xfa, 0xf0, 0x21, 0x98, 0xc5, 0x6d, 0x4c, 0x2d, 0xdc, 0xb0, 0x48, 0x44,
|
||||
0x92, 0x93, 0x24, 0xff, 0x56, 0x24, 0xb3, 0x6b, 0xdd, 0x0a, 0x28, 0x8b, 0x81, 0x9b, 0x60, 0xae,
|
||||
0xe5, 0x64, 0xa9, 0x82, 0xb8, 0x3c, 0xaf, 0xa8, 0xe6, 0x76, 0xb2, 0x2a, 0xa8, 0x17, 0x0e, 0x7a,
|
||||
0x00, 0x18, 0xe1, 0x93, 0xcf, 0x4a, 0xe3, 0xb2, 0x26, 0xbf, 0x37, 0x44, 0x3e, 0x45, 0x7d, 0x43,
|
||||
0x5c, 0xff, 0xa2, 0x25, 0x86, 0x12, 0x36, 0xe0, 0x2a, 0x98, 0xf6, 0x45, 0x86, 0x44, 0xae, 0x4f,
|
||||
0x48, 0xd7, 0xff, 0xa5, 0x60, 0xd3, 0x28, 0x29, 0x44, 0x69, 0x5d, 0xb8, 0x02, 0x8a, 0x86, 0x6b,
|
||||
0x59, 0x32, 0x33, 0xd6, 0xdd, 0x96, 0xc3, 0x65, 0x70, 0x8f, 0xd5, 0xa0, 0xe8, 0x01, 0xd6, 0x53,
|
||||
0x12, 0xd4, 0xa5, 0x59, 0xf9, 0x45, 0x4b, 0x3e, 0x60, 0x61, 0xba, 0xc3, 0x95, 0x54, 0xbb, 0x75,
|
||||
0xb1, 0xab, 0xdd, 0x3a, 0x97, 0x45, 0x24, 0xba, 0xad, 0x0e, 0x98, 0x16, 0xc9, 0x40, 0x1d, 0x33,
|
||||
0x08, 0x00, 0x55, 0x4c, 0xdf, 0x3f, 0x55, 0xaa, 0x45, 0xe8, 0xc4, 0x13, 0x3c, 0x2b, 0x4f, 0x22,
|
||||
0x29, 0x44, 0x69, 0x4b, 0x95, 0x7b, 0xa0, 0x98, 0xce, 0xd3, 0x20, 0xa6, 0x83, 0xa2, 0xa1, 0xb2,
|
||||
0x22, 0x11, 0xd3, 0xc1, 0x3a, 0x8a, 0x34, 0x2a, 0x6f, 0x34, 0xb0, 0xd0, 0xc7, 0x3a, 0xb4, 0x40,
|
||||
0xd1, 0xc6, 0xaf, 0x12, 0x31, 0x74, 0x62, 0xff, 0x2e, 0xa6, 0x16, 0x3d, 0x98, 0x5a, 0xf4, 0x47,
|
||||
0x0e, 0x7f, 0xec, 0xd7, 0xb9, 0x4f, 0x1d, 0x33, 0xb8, 0x97, 0xcd, 0x14, 0x17, 0xea, 0xe2, 0x86,
|
||||
0xcf, 0x40, 0xc1, 0xc6, 0xaf, 0xea, 0x2d, 0xdf, 0x0c, 0xcf, 0xef, 0xf4, 0x76, 0xe4, 0x4b, 0xb4,
|
||||
0xa9, 0x58, 0x50, 0xc4, 0x57, 0xf9, 0x76, 0x14, 0xe4, 0xeb, 0x06, 0xb6, 0xc8, 0x3b, 0x98, 0x46,
|
||||
0xb6, 0x53, 0xd3, 0xc8, 0xf2, 0xc0, 0x31, 0x20, 0xfd, 0xeb, 0x3b, 0x88, 0x3c, 0xef, 0x1a, 0x44,
|
||||
0x6e, 0x9e, 0x92, 0xf7, 0xf8, 0x19, 0xe4, 0x2e, 0x98, 0x8c, 0xcc, 0xa7, 0x8a, 0xa2, 0x76, 0x52,
|
||||
0x51, 0xac, 0xfc, 0x30, 0x0a, 0xa6, 0x12, 0x26, 0x4e, 0x87, 0x86, 0x5e, 0xaa, 0x03, 0x11, 0x55,
|
||||
0xa7, 0x36, 0xcc, 0xc6, 0xf4, 0xb0, 0xfb, 0x08, 0x1a, 0xbf, 0xf8, 0x31, 0xcf, 0x36, 0x25, 0xf7,
|
||||
0x40, 0x91, 0x63, 0xdf, 0x24, 0x3c, 0x94, 0xc9, 0x03, 0x9d, 0x8c, 0x47, 0x88, 0xed, 0x94, 0x14,
|
||||
0x75, 0x69, 0x2f, 0xae, 0x82, 0xe9, 0x94, 0xb1, 0x53, 0x75, 0x6b, 0x3f, 0x89, 0xc3, 0xe2, 0x98,
|
||||
0x93, 0x17, 0x2d, 0xab, 0x4e, 0xde, 0xc5, 0x6c, 0xfc, 0x2c, 0x15, 0x8d, 0x77, 0x06, 0x3f, 0xdc,
|
||||
0xd8, 0xcb, 0xbe, 0x31, 0xd9, 0xe8, 0x8a, 0xc9, 0x95, 0xa1, 0xd8, 0x8f, 0x8f, 0xcc, 0x9f, 0x35,
|
||||
0x30, 0x93, 0xd0, 0x7e, 0x07, 0xa3, 0xd3, 0xd3, 0xf4, 0xe8, 0x74, 0x73, 0x98, 0x4d, 0xf5, 0x99,
|
||||
0x9d, 0xbe, 0xcf, 0xa5, 0x36, 0xf3, 0x0f, 0xea, 0xd6, 0xbf, 0xd4, 0xc0, 0x7c, 0xdb, 0xb5, 0x5a,
|
||||
0x36, 0x59, 0xb7, 0x30, 0xb5, 0x43, 0x0d, 0xd1, 0xfb, 0x9c, 0x30, 0x9f, 0x4a, 0x4b, 0xc4, 0x67,
|
||||
0x94, 0x71, 0xe2, 0xf0, 0x27, 0x31, 0x47, 0xed, 0x3f, 0xca, 0xde, 0xfc, 0x93, 0x1e, 0xc4, 0xa8,
|
||||
0xa7, 0x39, 0xf8, 0x7f, 0x30, 0x25, 0x9a, 0x40, 0x6a, 0x10, 0x31, 0x99, 0xaa, 0xff, 0x26, 0xe6,
|
||||
0x14, 0xd1, 0x54, 0x3d, 0x16, 0xa1, 0xa4, 0x1e, 0xdc, 0x05, 0x73, 0x9e, 0xdb, 0xdc, 0xc4, 0x0e,
|
||||
0x36, 0x89, 0x78, 0x1a, 0xb7, 0xe4, 0x3f, 0x60, 0xb2, 0x7b, 0x9f, 0xac, 0xdd, 0x0a, 0xbb, 0xad,
|
||||
0xad, 0xac, 0xca, 0x5b, 0xd1, 0xf6, 0x66, 0x97, 0x65, 0xef, 0xd0, 0x8b, 0xb2, 0xf2, 0x95, 0x06,
|
||||
0x66, 0x33, 0xd9, 0x01, 0x3f, 0x38, 0xa6, 0xe7, 0x3d, 0xf7, 0x77, 0xf5, 0xbb, 0xb5, 0x2b, 0xfb,
|
||||
0x87, 0xe5, 0x91, 0xd7, 0x87, 0xe5, 0x91, 0xdf, 0x0e, 0xcb, 0x23, 0x5f, 0x1c, 0x95, 0xb5, 0xfd,
|
||||
0xa3, 0xb2, 0xf6, 0xfa, 0xa8, 0xac, 0xfd, 0x71, 0x54, 0xd6, 0xbe, 0x79, 0x53, 0x1e, 0x79, 0x36,
|
||||
0xa1, 0x62, 0xff, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf2, 0xdb, 0x2f, 0x40, 0xf8, 0x15, 0x00,
|
||||
0x00,
|
||||
}
|
||||
|
@@ -170,6 +170,12 @@ message DeploymentStatus {
|
||||
// +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 int64 collisionCount = 8;
|
||||
}
|
||||
|
||||
// DeploymentStrategy describes how to replace existing pods with new ones.
|
||||
|
@@ -4672,7 +4672,7 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
} else {
|
||||
yysep2 := !z.EncBinary()
|
||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||
var yyq2 [7]bool
|
||||
var yyq2 [8]bool
|
||||
_, _, _ = yysep2, yyq2, yy2arr2
|
||||
const yyr2 bool = false
|
||||
yyq2[0] = x.ObservedGeneration != 0
|
||||
@@ -4682,9 +4682,10 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
yyq2[4] = x.AvailableReplicas != 0
|
||||
yyq2[5] = x.UnavailableReplicas != 0
|
||||
yyq2[6] = len(x.Conditions) != 0
|
||||
yyq2[7] = x.CollisionCount != nil
|
||||
var yynn2 int
|
||||
if yyr2 || yy2arr2 {
|
||||
r.EncodeArrayStart(7)
|
||||
r.EncodeArrayStart(8)
|
||||
} else {
|
||||
yynn2 = 0
|
||||
for _, b := range yyq2 {
|
||||
@@ -4878,6 +4879,41 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[7] {
|
||||
if x.CollisionCount == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yy25 := *x.CollisionCount
|
||||
yym26 := z.EncBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy25))
|
||||
}
|
||||
}
|
||||
} 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 {
|
||||
yy27 := *x.CollisionCount
|
||||
yym28 := z.EncBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy27))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
@@ -5023,6 +5059,22 @@ func (x *DeploymentStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv16), d)
|
||||
}
|
||||
}
|
||||
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:
|
||||
z.DecStructFieldNotFound(-1, yys3)
|
||||
} // end switch yys3
|
||||
@@ -5034,16 +5086,16 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj18 int
|
||||
var yyb18 bool
|
||||
var yyhl18 bool = l >= 0
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
var yyj20 int
|
||||
var yyb20 bool
|
||||
var yyhl20 bool = l >= 0
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5051,21 +5103,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObservedGeneration = 0
|
||||
} else {
|
||||
yyv19 := &x.ObservedGeneration
|
||||
yym20 := z.DecBinary()
|
||||
_ = yym20
|
||||
yyv21 := &x.ObservedGeneration
|
||||
yym22 := z.DecBinary()
|
||||
_ = yym22
|
||||
if false {
|
||||
} else {
|
||||
*((*int64)(yyv19)) = int64(r.DecodeInt(64))
|
||||
*((*int64)(yyv21)) = int64(r.DecodeInt(64))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5073,29 +5125,7 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Replicas = 0
|
||||
} else {
|
||||
yyv21 := &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.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv23 := &x.UpdatedReplicas
|
||||
yyv23 := &x.Replicas
|
||||
yym24 := z.DecBinary()
|
||||
_ = yym24
|
||||
if false {
|
||||
@@ -5103,21 +5133,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv23)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ReadyReplicas = 0
|
||||
x.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv25 := &x.ReadyReplicas
|
||||
yyv25 := &x.UpdatedReplicas
|
||||
yym26 := z.DecBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
@@ -5125,21 +5155,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv25)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.AvailableReplicas = 0
|
||||
x.ReadyReplicas = 0
|
||||
} else {
|
||||
yyv27 := &x.AvailableReplicas
|
||||
yyv27 := &x.ReadyReplicas
|
||||
yym28 := z.DecBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
@@ -5147,21 +5177,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv27)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
x.AvailableReplicas = 0
|
||||
} else {
|
||||
yyv29 := &x.UnavailableReplicas
|
||||
yyv29 := &x.AvailableReplicas
|
||||
yym30 := z.DecBinary()
|
||||
_ = yym30
|
||||
if false {
|
||||
@@ -5169,13 +5199,35 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv29)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
} else {
|
||||
yyv31 := &x.UnavailableReplicas
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
if false {
|
||||
} else {
|
||||
*((*int32)(yyv31)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5183,26 +5235,52 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Conditions = nil
|
||||
} else {
|
||||
yyv31 := &x.Conditions
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
yyv33 := &x.Conditions
|
||||
yym34 := z.DecBinary()
|
||||
_ = yym34
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv31), d)
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv33), d)
|
||||
}
|
||||
}
|
||||
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 {
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj18-1, "")
|
||||
z.DecStructFieldNotFound(yyj20-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@@ -6470,7 +6548,7 @@ func (x codecSelfer1234) decSliceDeployment(v *[]Deployment, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 960)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 968)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@@ -356,6 +356,12 @@ type DeploymentStatus struct {
|
||||
// +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 *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
|
||||
}
|
||||
|
||||
type DeploymentConditionType string
|
||||
|
@@ -99,6 +99,7 @@ var map_DeploymentStatus = map[string]string{
|
||||
"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.",
|
||||
"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 {
|
||||
|
@@ -184,6 +184,11 @@ func DeepCopy_v1beta1_DeploymentStatus(in interface{}, out interface{}, c *conve
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.CollisionCount != nil {
|
||||
in, out := &in.CollisionCount, &out.CollisionCount
|
||||
*out = new(int64)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -327,6 +327,12 @@ type DeploymentStatus struct {
|
||||
|
||||
// Represents the latest available observations of a deployment's current state.
|
||||
Conditions []DeploymentCondition
|
||||
|
||||
// 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 *int64
|
||||
}
|
||||
|
||||
type DeploymentConditionType string
|
||||
|
@@ -1069,6 +1069,11 @@ func (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {
|
||||
dAtA[i] = 0x38
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
dAtA[i] = 0x40
|
||||
i++
|
||||
i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))
|
||||
}
|
||||
return i, nil
|
||||
}
|
||||
|
||||
@@ -2911,6 +2916,9 @@ func (m *DeploymentStatus) Size() (n int) {
|
||||
}
|
||||
}
|
||||
n += 1 + sovGenerated(uint64(m.ReadyReplicas))
|
||||
if m.CollisionCount != nil {
|
||||
n += 1 + sovGenerated(uint64(*m.CollisionCount))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
@@ -3699,6 +3707,7 @@ func (this *DeploymentStatus) String() string {
|
||||
`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
|
||||
@@ -6558,6 +6567,26 @@ func (m *DeploymentStatus) Unmarshal(dAtA []byte) error {
|
||||
break
|
||||
}
|
||||
}
|
||||
case 8:
|
||||
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:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@@ -11794,217 +11823,218 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptorGenerated = []byte{
|
||||
// 3379 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0xdb, 0x6f, 0x1b, 0xc7,
|
||||
0xd5, 0xf7, 0x8a, 0xa4, 0x45, 0x1d, 0x59, 0x92, 0x35, 0x72, 0x64, 0x46, 0x49, 0x44, 0x67, 0x3f,
|
||||
0x7c, 0x89, 0xf3, 0x7d, 0x09, 0xf5, 0xc5, 0xf9, 0x9c, 0x26, 0x4e, 0xe2, 0x44, 0x94, 0x7c, 0x51,
|
||||
0x21, 0xc9, 0xcc, 0x90, 0x32, 0x1a, 0xe7, 0xd6, 0x15, 0x39, 0xa2, 0xd6, 0xde, 0x5b, 0x76, 0x67,
|
||||
0x15, 0x11, 0x41, 0xdb, 0x00, 0x45, 0xf3, 0x58, 0xb4, 0x2f, 0x45, 0x0a, 0xa4, 0x8f, 0x7d, 0xe8,
|
||||
0x4b, 0x9b, 0x3c, 0xb4, 0x69, 0xff, 0x82, 0xfa, 0xa1, 0x28, 0x52, 0xa0, 0x05, 0x8a, 0x22, 0x15,
|
||||
0x6a, 0x05, 0xcd, 0x3f, 0xd0, 0xe6, 0xc5, 0x4f, 0xc5, 0xcc, 0xce, 0xde, 0x77, 0x65, 0x93, 0xb2,
|
||||
0x89, 0x02, 0x7d, 0xe3, 0xce, 0x9c, 0xf3, 0x3b, 0x97, 0x39, 0x73, 0xe6, 0xcc, 0x85, 0xf0, 0xd2,
|
||||
// 3402 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5b, 0x4b, 0x6f, 0x1c, 0xc7,
|
||||
0xb5, 0x56, 0xcf, 0x43, 0x1c, 0x1e, 0x8a, 0xa4, 0x58, 0x94, 0xa9, 0x31, 0x6d, 0x93, 0x72, 0x5f,
|
||||
0x5c, 0x5b, 0xbe, 0xd7, 0x1e, 0x5e, 0xcb, 0x57, 0x8e, 0x2d, 0xdb, 0xb2, 0x39, 0xa4, 0x1e, 0x0c,
|
||||
0x48, 0x6a, 0x5c, 0x33, 0x14, 0x62, 0xf9, 0x95, 0xe6, 0x4c, 0x71, 0xd8, 0x52, 0xbf, 0xdc, 0x5d,
|
||||
0x4d, 0x73, 0x60, 0x24, 0x31, 0x10, 0xc4, 0xcb, 0x20, 0xd9, 0x04, 0x0e, 0x90, 0x2c, 0xb3, 0xc8,
|
||||
0x26, 0xb1, 0x17, 0x89, 0x93, 0x5f, 0x10, 0x2d, 0x82, 0xc0, 0x01, 0x12, 0xc0, 0x08, 0x1c, 0x22,
|
||||
0xa2, 0x11, 0xff, 0x81, 0xc4, 0x1b, 0xad, 0x82, 0xaa, 0xae, 0x7e, 0x77, 0x53, 0x9a, 0xa1, 0x34,
|
||||
0x08, 0x90, 0x1d, 0xa7, 0xea, 0x9c, 0xef, 0x3c, 0xea, 0xd4, 0xa9, 0x53, 0x75, 0x9a, 0xf0, 0xd2,
|
||||
0x8d, 0xe7, 0x9c, 0x9a, 0x6a, 0x2e, 0xdc, 0x70, 0x37, 0x89, 0x6d, 0x10, 0x4a, 0x9c, 0x05, 0xeb,
|
||||
0x46, 0x77, 0x41, 0xb1, 0x54, 0x67, 0x81, 0xec, 0x52, 0x62, 0x38, 0xaa, 0x69, 0x38, 0x0b, 0x3b,
|
||||
0x4f, 0x6f, 0x12, 0xaa, 0x3c, 0xbd, 0xd0, 0x25, 0x06, 0xb1, 0x15, 0x4a, 0x3a, 0x35, 0xcb, 0x36,
|
||||
0xa9, 0x89, 0x9e, 0xf2, 0xd8, 0x6b, 0x21, 0x7b, 0xcd, 0xba, 0xd1, 0xad, 0x31, 0xf6, 0x5a, 0xc8,
|
||||
0x5e, 0x13, 0xec, 0x73, 0x4f, 0x75, 0x55, 0xba, 0xed, 0x6e, 0xd6, 0xda, 0xa6, 0xbe, 0xd0, 0x35,
|
||||
0xbb, 0xe6, 0x02, 0x47, 0xd9, 0x74, 0xb7, 0xf8, 0x17, 0xff, 0xe0, 0xbf, 0x3c, 0xf4, 0xb9, 0xff,
|
||||
0x17, 0xca, 0x29, 0x96, 0xaa, 0x2b, 0xed, 0x6d, 0xd5, 0x20, 0x76, 0xcf, 0x57, 0x6f, 0xc1, 0x26,
|
||||
0x8e, 0xe9, 0xda, 0x6d, 0x92, 0xd4, 0xe9, 0x40, 0x2e, 0x67, 0x41, 0x27, 0x54, 0x59, 0xd8, 0x49,
|
||||
0x59, 0x32, 0xb7, 0x90, 0xc7, 0x65, 0xbb, 0x06, 0x55, 0xf5, 0xb4, 0x98, 0x67, 0xef, 0xc4, 0xe0,
|
||||
0xb4, 0xb7, 0x89, 0xae, 0xa4, 0xf8, 0x9e, 0xc9, 0xe3, 0x73, 0xa9, 0xaa, 0x2d, 0xa8, 0x06, 0x75,
|
||||
0xa8, 0x7d, 0x90, 0x4d, 0x0e, 0xb1, 0x77, 0x88, 0x1d, 0x1d, 0x25, 0x45, 0xb7, 0x34, 0x92, 0x65,
|
||||
0xd3, 0x93, 0xb9, 0x83, 0x9b, 0x45, 0xfd, 0xfc, 0x01, 0xa1, 0x60, 0x99, 0x9a, 0xda, 0xee, 0xe5,
|
||||
0x85, 0x81, 0x5c, 0x03, 0x58, 0x6c, 0xac, 0x5c, 0x25, 0x36, 0x1b, 0x6e, 0x74, 0x0a, 0x8a, 0x86,
|
||||
0xa2, 0x93, 0x8a, 0x74, 0x4a, 0x3a, 0x3d, 0x56, 0x3f, 0x76, 0x73, 0xaf, 0x7a, 0x64, 0x7f, 0xaf,
|
||||
0x5a, 0x5c, 0x57, 0x74, 0x82, 0x79, 0x8f, 0xfc, 0x63, 0x09, 0x1e, 0x5c, 0x72, 0x1d, 0x6a, 0xea,
|
||||
0x6b, 0x84, 0xda, 0x6a, 0x7b, 0xc9, 0xb5, 0x6d, 0x62, 0xd0, 0x26, 0x55, 0xa8, 0xeb, 0xdc, 0x99,
|
||||
0x1f, 0x5d, 0x83, 0xd2, 0x8e, 0xa2, 0xb9, 0xa4, 0x32, 0x72, 0x4a, 0x3a, 0x3d, 0x7e, 0xa6, 0x56,
|
||||
0x13, 0x61, 0x18, 0xf5, 0xa9, 0x1f, 0x88, 0x35, 0x3f, 0x50, 0x6a, 0xaf, 0xba, 0x8a, 0x41, 0x55,
|
||||
0xda, 0xab, 0x9f, 0x10, 0x90, 0xc7, 0x84, 0xdc, 0xab, 0x0c, 0x0b, 0x7b, 0x90, 0xf2, 0xf7, 0x25,
|
||||
0x78, 0x24, 0x57, 0xb7, 0x55, 0xd5, 0xa1, 0x48, 0x87, 0x92, 0x4a, 0x89, 0xee, 0x54, 0xa4, 0x53,
|
||||
0x85, 0xd3, 0xe3, 0x67, 0x2e, 0xd7, 0xfa, 0x9a, 0x04, 0xb5, 0x5c, 0xf0, 0xfa, 0x84, 0xd0, 0xab,
|
||||
0xb4, 0xc2, 0xe0, 0xb1, 0x27, 0x45, 0xfe, 0xa1, 0x04, 0x28, 0xca, 0xd3, 0x52, 0xec, 0x2e, 0xa1,
|
||||
0x77, 0xe1, 0xa5, 0xd7, 0x0e, 0xe7, 0xa5, 0x19, 0x01, 0x39, 0xee, 0x09, 0x8c, 0x39, 0xe9, 0x7d,
|
||||
0x09, 0x66, 0xd3, 0x3a, 0x71, 0xef, 0x6c, 0xc5, 0xbd, 0xb3, 0x78, 0x08, 0xef, 0x78, 0xa8, 0x39,
|
||||
0x6e, 0xf9, 0xe5, 0x08, 0x8c, 0x2d, 0x2b, 0x44, 0x37, 0x8d, 0x26, 0xa1, 0xe8, 0x9b, 0x50, 0x66,
|
||||
0x33, 0xbb, 0xa3, 0x50, 0x85, 0x7b, 0x64, 0xfc, 0xcc, 0xff, 0x1d, 0x64, 0xae, 0x53, 0x63, 0xd4,
|
||||
0xb5, 0x9d, 0xa7, 0x6b, 0x57, 0x36, 0xaf, 0x93, 0x36, 0x5d, 0x23, 0x54, 0xa9, 0x23, 0x21, 0x07,
|
||||
0xc2, 0x36, 0x1c, 0xa0, 0xa2, 0xb7, 0xa0, 0xe8, 0x58, 0xa4, 0x2d, 0x9c, 0xf9, 0x62, 0x9f, 0x66,
|
||||
0x05, 0x9a, 0x36, 0x2d, 0xd2, 0x0e, 0x47, 0x8b, 0x7d, 0x61, 0x8e, 0x8b, 0xb6, 0xe0, 0xa8, 0xc3,
|
||||
0xc3, 0xa0, 0x52, 0xe0, 0x12, 0xce, 0x0f, 0x2c, 0xc1, 0x0b, 0xa6, 0x49, 0x21, 0xe3, 0xa8, 0xf7,
|
||||
0x8d, 0x05, 0xba, 0xfc, 0x3b, 0x09, 0x26, 0x02, 0x5a, 0x3e, 0x62, 0x6f, 0xa4, 0x7c, 0x57, 0xbb,
|
||||
0x3b, 0xdf, 0x31, 0x6e, 0xee, 0xb9, 0xe3, 0x42, 0x56, 0xd9, 0x6f, 0x89, 0xf8, 0xed, 0x4d, 0x3f,
|
||||
0x1e, 0x46, 0x78, 0x3c, 0x3c, 0x37, 0xa8, 0x59, 0x39, 0x61, 0xf0, 0x45, 0x21, 0x62, 0x0e, 0x73,
|
||||
0x27, 0x7a, 0x13, 0xca, 0x0e, 0xd1, 0x48, 0x9b, 0x9a, 0xb6, 0x30, 0xe7, 0x99, 0xbb, 0x34, 0x47,
|
||||
0xd9, 0x24, 0x5a, 0x53, 0xb0, 0xd6, 0x8f, 0x31, 0x7b, 0xfc, 0x2f, 0x1c, 0x40, 0xa2, 0xd7, 0xa1,
|
||||
0x4c, 0x89, 0x6e, 0x69, 0x0a, 0xf5, 0x27, 0xd6, 0x53, 0xf9, 0x26, 0x31, 0xd8, 0x86, 0xd9, 0x69,
|
||||
0x09, 0x06, 0x3e, 0xf8, 0x81, 0xb3, 0xfc, 0x56, 0x1c, 0x00, 0xa2, 0x0f, 0x24, 0x98, 0x74, 0xad,
|
||||
0x0e, 0x23, 0xa5, 0x2c, 0xc1, 0x76, 0x7b, 0x22, 0x1a, 0x2e, 0x0e, 0xea, 0xb6, 0x8d, 0x18, 0x5a,
|
||||
0x7d, 0x56, 0x08, 0x9f, 0x8c, 0xb7, 0xe3, 0x84, 0x54, 0xb4, 0x08, 0x53, 0xba, 0x6a, 0x60, 0xa2,
|
||||
0x74, 0x7a, 0x4d, 0xd2, 0x36, 0x8d, 0x8e, 0x53, 0x29, 0x9e, 0x92, 0x4e, 0x97, 0xea, 0x27, 0x05,
|
||||
0xc0, 0xd4, 0x5a, 0xbc, 0x1b, 0x27, 0xe9, 0xd1, 0xd7, 0x01, 0xf9, 0x76, 0x5d, 0xf2, 0xd6, 0x0b,
|
||||
0xd5, 0x34, 0x2a, 0xa5, 0x53, 0xd2, 0xe9, 0x42, 0x7d, 0x4e, 0xa0, 0xa0, 0x56, 0x8a, 0x02, 0x67,
|
||||
0x70, 0xc9, 0xff, 0x2c, 0xc2, 0x54, 0x22, 0xc0, 0xd1, 0x55, 0x98, 0x6d, 0x7b, 0xe9, 0x73, 0xdd,
|
||||
0xd5, 0x37, 0x89, 0xdd, 0x6c, 0x6f, 0x93, 0x8e, 0xab, 0x91, 0x0e, 0x1f, 0xf5, 0x52, 0x7d, 0x5e,
|
||||
0xc8, 0x98, 0x5d, 0xca, 0xa4, 0xc2, 0x39, 0xdc, 0x4c, 0x6f, 0x83, 0x37, 0xad, 0xa9, 0x8e, 0x13,
|
||||
0x60, 0x8e, 0x70, 0xcc, 0x40, 0xef, 0xf5, 0x14, 0x05, 0xce, 0xe0, 0x62, 0x3a, 0x76, 0x88, 0xa3,
|
||||
0xda, 0xa4, 0x93, 0xd4, 0xb1, 0x10, 0xd7, 0x71, 0x39, 0x93, 0x0a, 0xe7, 0x70, 0xa3, 0xb3, 0x30,
|
||||
0xee, 0x49, 0xe3, 0x1e, 0x17, 0x43, 0x13, 0x24, 0xec, 0xf5, 0xb0, 0x0b, 0x47, 0xe9, 0x98, 0x69,
|
||||
0xe6, 0x26, 0x2f, 0x20, 0x3a, 0xf9, 0x43, 0x72, 0x25, 0x45, 0x81, 0x33, 0xb8, 0x98, 0x69, 0x5e,
|
||||
0xcc, 0xa4, 0x4c, 0x3b, 0x1a, 0x37, 0x6d, 0x23, 0x93, 0x0a, 0xe7, 0x70, 0xb3, 0xc8, 0xf3, 0x54,
|
||||
0x5e, 0xdc, 0x51, 0x54, 0x4d, 0xd9, 0xd4, 0x48, 0x65, 0x34, 0x1e, 0x79, 0xeb, 0xf1, 0x6e, 0x9c,
|
||||
0xa4, 0x47, 0x97, 0x60, 0xda, 0x6b, 0xda, 0x30, 0x94, 0x00, 0xa4, 0xcc, 0x41, 0x1e, 0x14, 0x20,
|
||||
0xd3, 0xeb, 0x49, 0x02, 0x9c, 0xe6, 0x91, 0xff, 0x22, 0xc1, 0xc9, 0x9c, 0x99, 0x84, 0x5e, 0x86,
|
||||
0x22, 0xed, 0x59, 0xfe, 0xfa, 0xfb, 0xbf, 0x7e, 0x46, 0x6f, 0xf5, 0x2c, 0x72, 0x7b, 0xaf, 0xfa,
|
||||
0x50, 0x0e, 0x1b, 0xeb, 0xc6, 0x9c, 0x11, 0x7d, 0x1b, 0x26, 0x6c, 0x53, 0xd3, 0x54, 0xa3, 0xeb,
|
||||
0x91, 0x88, 0x6c, 0x72, 0xa1, 0xcf, 0x99, 0x8e, 0xa3, 0x18, 0x61, 0xb6, 0x9c, 0xde, 0xdf, 0xab,
|
||||
0x4e, 0xc4, 0xfa, 0x70, 0x5c, 0x9c, 0xfc, 0xeb, 0x11, 0x80, 0x65, 0x62, 0x69, 0x66, 0x4f, 0x27,
|
||||
0xc6, 0x30, 0x56, 0xd0, 0xb7, 0x63, 0x2b, 0xe8, 0x4b, 0xfd, 0x66, 0xb4, 0x40, 0xd5, 0xdc, 0x25,
|
||||
0xb4, 0x9b, 0x58, 0x42, 0x5f, 0x1e, 0x5c, 0xc4, 0xc1, 0x6b, 0xe8, 0xad, 0x02, 0xcc, 0x84, 0xc4,
|
||||
0x4b, 0xa6, 0xd1, 0x51, 0xf9, 0x9c, 0x78, 0x21, 0x16, 0x13, 0x8f, 0x27, 0x62, 0xe2, 0x64, 0x06,
|
||||
0x4b, 0x24, 0x1e, 0xae, 0x06, 0xda, 0x8f, 0x70, 0xf6, 0xf3, 0x71, 0xe1, 0xb7, 0xf7, 0xaa, 0x07,
|
||||
0xd6, 0xf3, 0xb5, 0x00, 0x33, 0xae, 0x2c, 0x7a, 0x0c, 0x8e, 0xda, 0x44, 0x71, 0x4c, 0x83, 0xa7,
|
||||
0x89, 0xb1, 0xd0, 0x28, 0xcc, 0x5b, 0xb1, 0xe8, 0x45, 0x4f, 0xc0, 0xa8, 0x4e, 0x1c, 0x47, 0xe9,
|
||||
0x12, 0x9e, 0x11, 0xc6, 0xea, 0x53, 0x82, 0x70, 0x74, 0xcd, 0x6b, 0xc6, 0x7e, 0x3f, 0xba, 0x0e,
|
||||
0x93, 0x9a, 0xe2, 0x88, 0xd0, 0x6e, 0xa9, 0x3a, 0xe1, 0x73, 0x7e, 0xfc, 0xcc, 0xff, 0xdc, 0x5d,
|
||||
0xc4, 0x30, 0x8e, 0x70, 0x25, 0x5a, 0x8d, 0x21, 0xe1, 0x04, 0x32, 0xda, 0x01, 0xc4, 0x5a, 0x5a,
|
||||
0xb6, 0x62, 0x38, 0x9e, 0xcb, 0x98, 0xbc, 0xd1, 0xbe, 0xe5, 0x05, 0xf9, 0x6d, 0x35, 0x85, 0x86,
|
||||
0x33, 0x24, 0xc8, 0xbf, 0x97, 0x60, 0x32, 0x1c, 0xb0, 0x21, 0x14, 0x4a, 0x6f, 0xc5, 0x0b, 0xa5,
|
||||
0xe7, 0x07, 0x0e, 0xde, 0x9c, 0x4a, 0xe9, 0xc3, 0x02, 0xa0, 0x90, 0x88, 0xa5, 0x86, 0x4d, 0xa5,
|
||||
0x7d, 0xe3, 0x2e, 0xf6, 0x11, 0x3f, 0x95, 0x00, 0x89, 0x64, 0xbd, 0x68, 0x18, 0x26, 0xe5, 0xf9,
|
||||
0xdf, 0x57, 0xf3, 0xb5, 0x81, 0xd5, 0xf4, 0x35, 0xa8, 0x6d, 0xa4, 0xb0, 0x2f, 0x18, 0xd4, 0xee,
|
||||
0x85, 0x23, 0x96, 0x26, 0xc0, 0x19, 0x0a, 0xa1, 0x77, 0x00, 0x6c, 0x81, 0xd9, 0x32, 0x45, 0x0a,
|
||||
0x78, 0x69, 0x80, 0x6c, 0xca, 0x00, 0x96, 0x4c, 0x63, 0x4b, 0xed, 0x86, 0x09, 0x0d, 0x07, 0xc0,
|
||||
0x38, 0x22, 0x64, 0xee, 0x02, 0x9c, 0xcc, 0xd1, 0x1e, 0x1d, 0x87, 0xc2, 0x0d, 0xd2, 0xf3, 0xdc,
|
||||
0x8a, 0xd9, 0x4f, 0x74, 0x22, 0xba, 0x1f, 0x1b, 0x13, 0x5b, 0xa9, 0x73, 0x23, 0xcf, 0x49, 0xf2,
|
||||
0x97, 0xa5, 0x68, 0xac, 0xf1, 0x2a, 0xf6, 0x34, 0x94, 0x6d, 0x62, 0x69, 0x6a, 0x5b, 0x71, 0x44,
|
||||
0x3d, 0xc3, 0x0b, 0x52, 0x2c, 0xda, 0x70, 0xd0, 0x1b, 0xab, 0x77, 0x47, 0xee, 0x6f, 0xbd, 0x5b,
|
||||
0xb8, 0xd7, 0xf5, 0xae, 0x09, 0x65, 0xc7, 0x2f, 0x74, 0x8b, 0x1c, 0x7c, 0xf1, 0x10, 0x39, 0x5b,
|
||||
0xd4, 0xb8, 0x81, 0xc0, 0xa0, 0xba, 0x0d, 0x84, 0x64, 0xd5, 0xb5, 0xa5, 0x3e, 0xeb, 0xda, 0x55,
|
||||
0x38, 0x61, 0x93, 0x1d, 0x95, 0xa9, 0x71, 0x59, 0x75, 0xa8, 0x69, 0xf7, 0x56, 0x55, 0x5d, 0xa5,
|
||||
0xa2, 0xec, 0xa9, 0xec, 0xef, 0x55, 0x4f, 0xe0, 0x8c, 0x7e, 0x9c, 0xc9, 0xc5, 0xb2, 0xb3, 0xa5,
|
||||
0xb8, 0x0e, 0xe9, 0xf0, 0x94, 0x56, 0x0e, 0xb3, 0x73, 0x83, 0xb7, 0x62, 0xd1, 0x8b, 0xf4, 0x58,
|
||||
0x70, 0x97, 0xef, 0x45, 0x70, 0x4f, 0xe6, 0x07, 0x36, 0xda, 0x80, 0x93, 0x96, 0x6d, 0x76, 0x6d,
|
||||
0xe2, 0x38, 0xcb, 0x44, 0xe9, 0x68, 0xaa, 0x41, 0x7c, 0x7f, 0x8d, 0x71, 0x3b, 0x1f, 0xda, 0xdf,
|
||||
0xab, 0x9e, 0x6c, 0x64, 0x93, 0xe0, 0x3c, 0x5e, 0xf9, 0xa3, 0x22, 0x1c, 0x4f, 0xae, 0xb2, 0x39,
|
||||
0x55, 0xa9, 0x34, 0x50, 0x55, 0xfa, 0x64, 0x64, 0xda, 0x78, 0x25, 0x7b, 0x10, 0x0d, 0x19, 0x53,
|
||||
0x67, 0x11, 0xa6, 0x44, 0x1e, 0xf1, 0x3b, 0x45, 0x5d, 0x1e, 0x44, 0xc3, 0x46, 0xbc, 0x1b, 0x27,
|
||||
0xe9, 0x59, 0xad, 0x19, 0x96, 0x90, 0x3e, 0x48, 0x31, 0x5e, 0x6b, 0x2e, 0x26, 0x09, 0x70, 0x9a,
|
||||
0x07, 0xad, 0xc1, 0x8c, 0x6b, 0xa4, 0xa1, 0xbc, 0xe8, 0x7c, 0x48, 0x40, 0xcd, 0x6c, 0xa4, 0x49,
|
||||
0x70, 0x16, 0x1f, 0xda, 0x01, 0x68, 0xfb, 0x05, 0x81, 0x53, 0x39, 0xca, 0x73, 0x75, 0x7d, 0xe0,
|
||||
0xb9, 0x15, 0xd4, 0x16, 0x61, 0x46, 0x0c, 0x9a, 0x1c, 0x1c, 0x91, 0x84, 0x5e, 0x80, 0x09, 0x9b,
|
||||
0x6f, 0x3c, 0x7c, 0x03, 0xbc, 0xe2, 0xfd, 0x01, 0xc1, 0x36, 0x81, 0xa3, 0x9d, 0x38, 0x4e, 0x2b,
|
||||
0xff, 0x41, 0x8a, 0x2e, 0x51, 0x41, 0xa9, 0x7d, 0x2e, 0x56, 0x56, 0x3d, 0x96, 0x28, 0xab, 0x66,
|
||||
0xd3, 0x1c, 0x91, 0xaa, 0xea, 0x3b, 0xd9, 0x55, 0xf6, 0xc5, 0x43, 0x55, 0xd9, 0xe1, 0x52, 0x7b,
|
||||
0xe7, 0x32, 0xfb, 0x13, 0x09, 0x66, 0x2f, 0x36, 0x2f, 0xd9, 0xa6, 0x6b, 0xf9, 0xea, 0x5d, 0xb1,
|
||||
0x3c, 0x5f, 0x7d, 0x0d, 0x8a, 0xb6, 0xab, 0xf9, 0x76, 0xfd, 0x97, 0x6f, 0x17, 0x76, 0x35, 0x66,
|
||||
0xd7, 0x4c, 0x82, 0xcb, 0x33, 0x8a, 0x31, 0xa0, 0xb7, 0xe0, 0xa8, 0xad, 0x18, 0x5d, 0xe2, 0x2f,
|
||||
0xc2, 0xcf, 0xf6, 0x69, 0xcd, 0xca, 0x32, 0x66, 0xec, 0x91, 0x52, 0x90, 0xa3, 0x61, 0x81, 0x2a,
|
||||
0xff, 0x44, 0x82, 0xa9, 0xcb, 0xad, 0x56, 0x63, 0xc5, 0xe0, 0xb3, 0xb8, 0xa1, 0xd0, 0x6d, 0x56,
|
||||
0x27, 0x58, 0x0a, 0xdd, 0x4e, 0xd6, 0x09, 0xac, 0x0f, 0xf3, 0x1e, 0xb4, 0x0d, 0xa3, 0x2c, 0x7b,
|
||||
0x10, 0xa3, 0x33, 0x60, 0x89, 0x2f, 0xc4, 0xd5, 0x3d, 0x90, 0xb0, 0xfe, 0x14, 0x0d, 0xd8, 0x87,
|
||||
0x97, 0xdf, 0x83, 0x13, 0x11, 0xf5, 0x98, 0xbf, 0xf8, 0xe9, 0x24, 0x6a, 0x43, 0x89, 0x69, 0xe2,
|
||||
0x9f, 0x3d, 0xf6, 0x7b, 0x84, 0x96, 0x30, 0x39, 0xac, 0xa3, 0xd8, 0x97, 0x83, 0x3d, 0x6c, 0x79,
|
||||
0x0d, 0x26, 0x2e, 0x9b, 0x0e, 0x6d, 0x98, 0x36, 0xe5, 0x6e, 0x43, 0x8f, 0x40, 0x41, 0x57, 0x0d,
|
||||
0xb1, 0x4a, 0x8f, 0x0b, 0x9e, 0x02, 0x5b, 0x47, 0x58, 0x3b, 0xef, 0x56, 0x76, 0x45, 0x36, 0x0a,
|
||||
0xbb, 0x95, 0x5d, 0xcc, 0xda, 0xe5, 0x4b, 0x30, 0x2a, 0x86, 0x23, 0x0a, 0x54, 0x38, 0x18, 0xa8,
|
||||
0x90, 0x01, 0xf4, 0x8b, 0x11, 0x18, 0x15, 0xda, 0x0f, 0x61, 0x33, 0xf7, 0x46, 0x6c, 0x33, 0x77,
|
||||
0x6e, 0xb0, 0x91, 0xce, 0xdd, 0xc9, 0x75, 0x12, 0x3b, 0xb9, 0x17, 0x07, 0xc4, 0x3f, 0x78, 0x1b,
|
||||
0xf7, 0xb1, 0x04, 0x93, 0xf1, 0x98, 0x43, 0x67, 0x61, 0x9c, 0xad, 0x29, 0x6a, 0x9b, 0xac, 0x87,
|
||||
0x45, 0x71, 0x70, 0xb0, 0xd2, 0x0c, 0xbb, 0x70, 0x94, 0x0e, 0x75, 0x03, 0x36, 0x16, 0x16, 0xc2,
|
||||
0x29, 0xf9, 0x2e, 0x77, 0xa9, 0xaa, 0xd5, 0xbc, 0xab, 0x9e, 0xda, 0x8a, 0x41, 0xaf, 0xd8, 0x4d,
|
||||
0x6a, 0xab, 0x46, 0x37, 0x25, 0x88, 0xc7, 0x58, 0x14, 0x59, 0xbe, 0x29, 0xc1, 0xb8, 0x50, 0x79,
|
||||
0x08, 0x5b, 0x92, 0xd7, 0xe3, 0x5b, 0x92, 0x67, 0x07, 0x9c, 0xcf, 0xd9, 0xfb, 0x91, 0x4f, 0x43,
|
||||
0x53, 0xd8, 0x0c, 0x66, 0x09, 0x66, 0xdb, 0x74, 0x68, 0x32, 0xc1, 0xb0, 0xb9, 0x86, 0x79, 0x0f,
|
||||
0xfa, 0x9e, 0x04, 0xc7, 0xd5, 0xc4, 0x9c, 0x17, 0xbe, 0x7e, 0x79, 0x30, 0xd5, 0x02, 0x98, 0x7a,
|
||||
0x45, 0xc8, 0x3b, 0x9e, 0xec, 0xc1, 0x29, 0x91, 0xb2, 0x0b, 0x29, 0x2a, 0xa4, 0x40, 0x71, 0x9b,
|
||||
0x52, 0x4b, 0x0c, 0xc2, 0xd2, 0xe0, 0x99, 0x27, 0x54, 0xa9, 0xcc, 0xcd, 0x6f, 0xb5, 0x1a, 0x98,
|
||||
0x43, 0xcb, 0x3f, 0x1f, 0x09, 0x1c, 0xd6, 0xf4, 0x26, 0x49, 0x90, 0x6f, 0xa5, 0x7b, 0x91, 0x6f,
|
||||
0xc7, 0xb3, 0x72, 0x2d, 0xfa, 0x06, 0x14, 0xa8, 0x36, 0xe8, 0xa6, 0x54, 0x48, 0x68, 0xad, 0x36,
|
||||
0xc3, 0x84, 0xd5, 0x5a, 0x6d, 0x62, 0x06, 0x89, 0xde, 0x86, 0x12, 0x5b, 0xcd, 0xd8, 0x1c, 0x2f,
|
||||
0x0c, 0x9e, 0x43, 0x98, 0xbf, 0xc2, 0x08, 0x63, 0x5f, 0x0e, 0xf6, 0x70, 0xe5, 0xf7, 0x60, 0x22,
|
||||
0x96, 0x08, 0xd0, 0x75, 0x38, 0xa6, 0x99, 0x4a, 0xa7, 0xae, 0x68, 0x8a, 0xd1, 0x26, 0x76, 0x32,
|
||||
0x35, 0x66, 0xef, 0x67, 0x56, 0x23, 0x1c, 0x22, 0xa1, 0x04, 0x17, 0x88, 0xd1, 0x3e, 0x1c, 0xc3,
|
||||
0x96, 0x15, 0x80, 0xd0, 0x7a, 0x54, 0x85, 0x12, 0x0b, 0x61, 0x6f, 0x65, 0x1a, 0xab, 0x8f, 0x31,
|
||||
0x5d, 0x59, 0x64, 0x3b, 0xd8, 0x6b, 0x47, 0x67, 0x00, 0x1c, 0xd2, 0xb6, 0x09, 0xe5, 0x79, 0xc7,
|
||||
0x3b, 0x01, 0x0a, 0x32, 0x70, 0x33, 0xe8, 0xc1, 0x11, 0x2a, 0xf9, 0x4f, 0x12, 0x4c, 0xac, 0x13,
|
||||
0xfa, 0xae, 0x69, 0xdf, 0x68, 0xf0, 0x0b, 0xda, 0x21, 0xe4, 0xfd, 0xcd, 0x58, 0xde, 0x7f, 0xa5,
|
||||
0xcf, 0x31, 0x8b, 0x69, 0x9b, 0x97, 0xfd, 0xe5, 0xbf, 0x4b, 0x50, 0x89, 0x51, 0x46, 0xd3, 0x04,
|
||||
0x81, 0x92, 0x65, 0xda, 0xd4, 0x5f, 0xe3, 0x0f, 0xa5, 0x01, 0x4b, 0xa9, 0x91, 0x55, 0x9e, 0xc1,
|
||||
0x62, 0x0f, 0x9d, 0xd9, 0xb9, 0x65, 0x9b, 0xba, 0x88, 0xfb, 0xc3, 0x49, 0x21, 0xc4, 0x0e, 0xed,
|
||||
0xbc, 0x68, 0x9b, 0x3a, 0xe6, 0xd8, 0xf2, 0x1f, 0x25, 0x98, 0x8e, 0x51, 0x0e, 0x21, 0xa5, 0x2b,
|
||||
0xf1, 0x94, 0xfe, 0xe2, 0x61, 0x0c, 0xcb, 0x49, 0xec, 0x5f, 0x25, 0xcd, 0x62, 0x0e, 0x40, 0x5b,
|
||||
0x30, 0x6e, 0x99, 0x9d, 0xe6, 0x3d, 0xb8, 0x99, 0x9b, 0x62, 0x2b, 0x64, 0x23, 0xc4, 0xc2, 0x51,
|
||||
0x60, 0xb4, 0x0b, 0xd3, 0x86, 0xa2, 0x13, 0xc7, 0x52, 0xda, 0xa4, 0x79, 0x0f, 0xce, 0x45, 0x1e,
|
||||
0xe0, 0xb7, 0x05, 0x49, 0x44, 0x9c, 0x16, 0x22, 0xff, 0x2a, 0x65, 0xb7, 0x69, 0x53, 0xf4, 0x2a,
|
||||
0x94, 0xf9, 0x23, 0x89, 0xb6, 0xa9, 0x89, 0xa5, 0xed, 0x2c, 0x1b, 0x9a, 0x86, 0x68, 0xbb, 0xbd,
|
||||
0x57, 0xfd, 0xef, 0x03, 0x8f, 0x75, 0x7d, 0x42, 0x1c, 0xc0, 0xa0, 0x75, 0x28, 0x5a, 0x87, 0x29,
|
||||
0x33, 0xf8, 0xc2, 0xc2, 0x6b, 0x0b, 0x8e, 0x23, 0xff, 0x23, 0xa9, 0x38, 0x5f, 0x5e, 0xae, 0xdf,
|
||||
0xb3, 0x01, 0x0b, 0xca, 0x9a, 0xdc, 0x41, 0xb3, 0x61, 0x54, 0xac, 0xb2, 0x22, 0x2e, 0x2f, 0x1d,
|
||||
0x26, 0x2e, 0xa3, 0x2b, 0x43, 0xb0, 0x89, 0xf0, 0x1b, 0x7d, 0x41, 0xf2, 0x5f, 0x25, 0x98, 0xe6,
|
||||
0x0a, 0xb5, 0x5d, 0x5b, 0xa5, 0xbd, 0xa1, 0x65, 0xd0, 0xad, 0x58, 0x06, 0x5d, 0xee, 0xd3, 0xd0,
|
||||
0x94, 0xc6, 0xb9, 0x59, 0xf4, 0x73, 0x09, 0x1e, 0x48, 0x51, 0x0f, 0x21, 0xc3, 0x90, 0x78, 0x86,
|
||||
0x79, 0xe5, 0xb0, 0x06, 0xe6, 0x64, 0x99, 0x9b, 0x90, 0x61, 0x1e, 0x0f, 0xdc, 0x33, 0x00, 0x96,
|
||||
0xad, 0xee, 0xa8, 0x1a, 0xe9, 0x8a, 0xcb, 0xe0, 0x72, 0x38, 0x24, 0x8d, 0xa0, 0x07, 0x47, 0xa8,
|
||||
0xd0, 0xb7, 0x60, 0xb6, 0x43, 0xb6, 0x14, 0x57, 0xa3, 0x8b, 0x9d, 0xce, 0x92, 0x62, 0x29, 0x9b,
|
||||
0xaa, 0xa6, 0x52, 0x55, 0xec, 0xb0, 0xc7, 0xea, 0x17, 0xbc, 0x4b, 0xda, 0x2c, 0x8a, 0xdb, 0x7b,
|
||||
0xd5, 0xc7, 0x0f, 0xbe, 0x98, 0xf1, 0x89, 0x7b, 0x38, 0x47, 0x08, 0xfa, 0xae, 0x04, 0x15, 0x9b,
|
||||
0xbc, 0xe3, 0xaa, 0x36, 0xe9, 0x2c, 0xdb, 0xa6, 0x15, 0xd3, 0xa0, 0xc0, 0x35, 0xb8, 0xb4, 0xbf,
|
||||
0x57, 0xad, 0xe0, 0x1c, 0x9a, 0x7e, 0x74, 0xc8, 0x15, 0x84, 0x28, 0xcc, 0x28, 0x9a, 0x66, 0xbe,
|
||||
0x4b, 0xe2, 0x1e, 0x28, 0x72, 0xf9, 0xf5, 0xfd, 0xbd, 0xea, 0xcc, 0x62, 0xba, 0xbb, 0x1f, 0xd1,
|
||||
0x59, 0xf0, 0x68, 0x01, 0x46, 0x77, 0x4c, 0xcd, 0xd5, 0x89, 0x53, 0x29, 0x71, 0x49, 0x2c, 0xe3,
|
||||
0x8e, 0x5e, 0xf5, 0x9a, 0x6e, 0xef, 0x55, 0x8f, 0x5e, 0x6c, 0xf2, 0xa3, 0x0f, 0x9f, 0x8a, 0xed,
|
||||
0xd1, 0x58, 0xcd, 0x24, 0xa6, 0x3c, 0x3f, 0x77, 0x2d, 0x87, 0x39, 0xe6, 0x72, 0xd8, 0x85, 0xa3,
|
||||
0x74, 0x48, 0x87, 0xb1, 0x6d, 0xb1, 0x6f, 0x77, 0x2a, 0xa3, 0x03, 0xad, 0x7e, 0xb1, 0x7d, 0x7f,
|
||||
0x7d, 0x5a, 0x88, 0x1c, 0xf3, 0x9b, 0x1d, 0x1c, 0x4a, 0x40, 0x4f, 0xc0, 0x28, 0xff, 0x58, 0x59,
|
||||
0xe6, 0xa7, 0xb5, 0xe5, 0x30, 0x13, 0x5d, 0xf6, 0x9a, 0xb1, 0xdf, 0xef, 0x93, 0xae, 0x34, 0x96,
|
||||
0xf8, 0xe1, 0x6a, 0x82, 0x74, 0xa5, 0xb1, 0x84, 0xfd, 0x7e, 0x64, 0xc1, 0xa8, 0x43, 0x56, 0x55,
|
||||
0xc3, 0xdd, 0xad, 0xc0, 0x40, 0xd7, 0xc5, 0xcd, 0x0b, 0x9c, 0x3b, 0x71, 0x14, 0x15, 0x4a, 0x14,
|
||||
0xfd, 0xd8, 0x17, 0x83, 0x76, 0x61, 0xcc, 0x76, 0x8d, 0x45, 0x67, 0xc3, 0x21, 0x76, 0x65, 0x9c,
|
||||
0xcb, 0xec, 0x37, 0x39, 0x63, 0x9f, 0x3f, 0x29, 0x35, 0xf0, 0x60, 0x40, 0x81, 0x43, 0x61, 0xe8,
|
||||
0x23, 0x09, 0x90, 0xe3, 0x5a, 0x96, 0x46, 0x74, 0x62, 0x50, 0x45, 0xe3, 0xa7, 0x61, 0x4e, 0xe5,
|
||||
0x18, 0xd7, 0xa1, 0xd1, 0xaf, 0xdd, 0x29, 0xa0, 0xa4, 0x32, 0xc1, 0x51, 0x73, 0x9a, 0x14, 0x67,
|
||||
0xe8, 0xc1, 0x86, 0x62, 0xcb, 0xe1, 0xbf, 0x2b, 0x13, 0x03, 0x0d, 0x45, 0xf6, 0xa9, 0x60, 0x38,
|
||||
0x14, 0xa2, 0x1f, 0xfb, 0x62, 0xd0, 0x55, 0x98, 0xb5, 0x89, 0xd2, 0xb9, 0x62, 0x68, 0x3d, 0x6c,
|
||||
0x9a, 0xf4, 0xa2, 0xaa, 0x11, 0xa7, 0xe7, 0x50, 0xa2, 0x57, 0x26, 0x79, 0xd8, 0x04, 0x4f, 0x2e,
|
||||
0x70, 0x26, 0x15, 0xce, 0xe1, 0xe6, 0x2f, 0x01, 0xc4, 0x19, 0xec, 0x70, 0xde, 0xd2, 0x1d, 0xee,
|
||||
0x25, 0x40, 0xa8, 0xea, 0x7d, 0x7b, 0x09, 0x10, 0x11, 0x71, 0xf0, 0x11, 0xd2, 0x57, 0x23, 0x30,
|
||||
0x13, 0x12, 0xdf, 0xf5, 0x4b, 0x80, 0x0c, 0x96, 0x21, 0xbc, 0x04, 0xc8, 0xbe, 0x4a, 0x2f, 0xdc,
|
||||
0xef, 0xab, 0xf4, 0xfb, 0xf0, 0x02, 0x81, 0xdf, 0xce, 0x87, 0x4e, 0xfc, 0xf7, 0xbf, 0x9d, 0x0f,
|
||||
0x75, 0xcd, 0x29, 0x67, 0x7e, 0x33, 0x12, 0x35, 0xe8, 0x3f, 0xe8, 0x0a, 0xf8, 0xf0, 0x2f, 0x0d,
|
||||
0xe5, 0xcf, 0x0b, 0x70, 0x3c, 0x39, 0x63, 0x63, 0x37, 0x81, 0xd2, 0x1d, 0x6f, 0x02, 0x1b, 0x70,
|
||||
0x62, 0xcb, 0xd5, 0xb4, 0x1e, 0x77, 0x48, 0xe4, 0x3a, 0xd0, 0x3b, 0xb5, 0x7f, 0x58, 0x70, 0x9e,
|
||||
0xb8, 0x98, 0x41, 0x83, 0x33, 0x39, 0x73, 0x6e, 0x35, 0x0b, 0x03, 0xdd, 0x6a, 0xa6, 0x2e, 0xd5,
|
||||
0x8a, 0x77, 0x7f, 0xa9, 0x96, 0x7d, 0x43, 0x59, 0x1a, 0xe0, 0x86, 0xf2, 0x5e, 0x5c, 0x29, 0x66,
|
||||
0x24, 0xbe, 0x3b, 0x5d, 0x29, 0xca, 0x0f, 0xc3, 0x9c, 0x60, 0x63, 0xdf, 0x4b, 0xa6, 0x41, 0x6d,
|
||||
0x53, 0xd3, 0x88, 0xbd, 0xec, 0xea, 0x7a, 0x4f, 0x3e, 0x0f, 0x93, 0xf1, 0x7b, 0x6d, 0x6f, 0xe4,
|
||||
0xbd, 0xab, 0x76, 0x71, 0x97, 0x12, 0x19, 0x79, 0xaf, 0x1d, 0x07, 0x14, 0xf2, 0x07, 0x12, 0xcc,
|
||||
0x66, 0xbf, 0xa1, 0x43, 0x1a, 0x4c, 0xea, 0xca, 0x6e, 0xf4, 0x11, 0xa1, 0x34, 0xe0, 0x8e, 0x1b,
|
||||
0xed, 0xef, 0x55, 0x27, 0xd7, 0x62, 0x58, 0x38, 0x81, 0x2d, 0x7f, 0x21, 0xc1, 0xc9, 0x9c, 0x6b,
|
||||
0xc6, 0xe1, 0x6a, 0x82, 0xae, 0x41, 0x59, 0x57, 0x76, 0x9b, 0xae, 0xdd, 0x25, 0x03, 0x9f, 0x31,
|
||||
0xf0, 0x5c, 0xb2, 0x26, 0x50, 0x70, 0x80, 0x27, 0x7f, 0x22, 0x41, 0x25, 0xaf, 0x1e, 0x44, 0x67,
|
||||
0x63, 0x17, 0xa2, 0x8f, 0x26, 0x2e, 0x44, 0xa7, 0x53, 0x7c, 0x43, 0xba, 0x0e, 0xfd, 0x54, 0x82,
|
||||
0xd9, 0xec, 0xba, 0x19, 0x3d, 0x13, 0xd3, 0xb8, 0x9a, 0xd0, 0x78, 0x2a, 0xc1, 0x25, 0xf4, 0xdd,
|
||||
0x86, 0x49, 0x51, 0x5d, 0x0b, 0x18, 0xe1, 0xe5, 0x27, 0x0f, 0xce, 0xaa, 0x02, 0xcc, 0xaf, 0x13,
|
||||
0xf9, 0x48, 0xc6, 0xdb, 0x70, 0x02, 0x57, 0xfe, 0xd9, 0x08, 0x94, 0x9a, 0x6d, 0x45, 0x23, 0x43,
|
||||
0x28, 0xea, 0xae, 0xc5, 0x8a, 0xba, 0x7e, 0xdf, 0xf9, 0x73, 0x2d, 0x73, 0xeb, 0xb9, 0xcd, 0x44,
|
||||
0x3d, 0x77, 0x6e, 0x20, 0xf4, 0x83, 0x4b, 0xb9, 0xe7, 0x61, 0x2c, 0x50, 0xa2, 0xbf, 0xd5, 0x43,
|
||||
0xfe, 0x78, 0x04, 0xc6, 0x23, 0x22, 0xfa, 0x5c, 0x7b, 0x76, 0x62, 0xab, 0xf7, 0x20, 0x7f, 0x29,
|
||||
0x8a, 0xc8, 0xae, 0xf9, 0xeb, 0xb7, 0xf7, 0x86, 0x2e, 0x7c, 0x0b, 0x95, 0x5e, 0xd6, 0xcf, 0xc3,
|
||||
0x24, 0xe5, 0xff, 0xb0, 0x09, 0xce, 0xf8, 0x0a, 0x3c, 0x8a, 0x83, 0x97, 0x99, 0xad, 0x58, 0x2f,
|
||||
0x4e, 0x50, 0xcf, 0xbd, 0x00, 0x13, 0x31, 0x61, 0x7d, 0x3d, 0x79, 0xfb, 0xad, 0x04, 0x8f, 0xde,
|
||||
0x71, 0x4f, 0x86, 0xea, 0xb1, 0xe9, 0x55, 0x4b, 0x4c, 0xaf, 0xf9, 0x7c, 0x80, 0x21, 0x3e, 0x96,
|
||||
0xf8, 0xd1, 0x08, 0xa0, 0xd6, 0xb6, 0x6a, 0x77, 0x1a, 0x8a, 0x4d, 0x7b, 0x58, 0xfc, 0x8f, 0x6a,
|
||||
0x08, 0x13, 0xee, 0x2c, 0x8c, 0x77, 0x88, 0xd3, 0xb6, 0x55, 0xee, 0x2c, 0xb1, 0x57, 0x08, 0xce,
|
||||
0x41, 0x96, 0xc3, 0x2e, 0x1c, 0xa5, 0x43, 0x5d, 0x28, 0xef, 0x78, 0xff, 0xd4, 0xf3, 0x6f, 0xde,
|
||||
0xfa, 0x2d, 0x66, 0xc3, 0xff, 0xfa, 0x85, 0xf1, 0x25, 0x1a, 0x1c, 0x1c, 0x80, 0xcb, 0x1f, 0x4a,
|
||||
0x30, 0x9b, 0x76, 0xcc, 0x32, 0x53, 0xfd, 0xfe, 0x3b, 0xe7, 0x61, 0x28, 0x72, 0x74, 0xe6, 0x95,
|
||||
0x63, 0xde, 0x89, 0x37, 0x93, 0x8c, 0x79, 0xab, 0xfc, 0xa5, 0x04, 0x73, 0xd9, 0xaa, 0x0d, 0x61,
|
||||
0x2b, 0x71, 0x3d, 0xbe, 0x95, 0xe8, 0xf7, 0xd8, 0x20, 0x5b, 0xef, 0x9c, 0x6d, 0xc5, 0x5e, 0xe6,
|
||||
0x18, 0x0c, 0xc1, 0xc8, 0xad, 0xb8, 0x91, 0x8b, 0x87, 0x36, 0x32, 0xdb, 0xc0, 0xfa, 0x13, 0x37,
|
||||
0x6f, 0xcd, 0x1f, 0xf9, 0xec, 0xd6, 0xfc, 0x91, 0x3f, 0xdf, 0x9a, 0x3f, 0xf2, 0xfe, 0xfe, 0xbc,
|
||||
0x74, 0x73, 0x7f, 0x5e, 0xfa, 0x6c, 0x7f, 0x5e, 0xfa, 0xdb, 0xfe, 0xbc, 0xf4, 0x83, 0x2f, 0xe6,
|
||||
0x8f, 0x5c, 0x1b, 0x15, 0x98, 0xff, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xdb, 0xfb, 0x34, 0x4b, 0xec,
|
||||
0x3c, 0x00, 0x00,
|
||||
0x5e, 0x13, 0xec, 0xb3, 0x4f, 0x75, 0x55, 0xba, 0xed, 0x6e, 0xd6, 0xda, 0xa6, 0xbe, 0xd0, 0x35,
|
||||
0xbb, 0xe6, 0x02, 0x47, 0xd9, 0x74, 0xb7, 0xf8, 0x2f, 0xfe, 0x83, 0xff, 0xe5, 0xa1, 0xcf, 0xfe,
|
||||
0xbf, 0x50, 0x4e, 0xb1, 0x54, 0x5d, 0x69, 0x6f, 0xab, 0x06, 0xb1, 0x7b, 0xbe, 0x7a, 0x0b, 0x36,
|
||||
0x71, 0x4c, 0xd7, 0x6e, 0x93, 0xa4, 0x4e, 0x07, 0x72, 0x39, 0x0b, 0x3a, 0xa1, 0xca, 0xc2, 0x4e,
|
||||
0xca, 0x92, 0xd9, 0x85, 0x3c, 0x2e, 0xdb, 0x35, 0xa8, 0xaa, 0xa7, 0xc5, 0x3c, 0x7b, 0x27, 0x06,
|
||||
0xa7, 0xbd, 0x4d, 0x74, 0x25, 0xc5, 0xf7, 0x4c, 0x1e, 0x9f, 0x4b, 0x55, 0x6d, 0x41, 0x35, 0xa8,
|
||||
0x43, 0xed, 0x83, 0x6c, 0x72, 0x88, 0xbd, 0x43, 0xec, 0xe8, 0x2a, 0x29, 0xba, 0xa5, 0x91, 0x2c,
|
||||
0x9b, 0x9e, 0xcc, 0x5d, 0xdc, 0x2c, 0xea, 0xe7, 0x0f, 0x08, 0x05, 0xcb, 0xd4, 0xd4, 0x76, 0x2f,
|
||||
0x2f, 0x0c, 0xe4, 0x1a, 0xc0, 0x62, 0x63, 0xe5, 0x2a, 0xb1, 0xd9, 0x72, 0xa3, 0x53, 0x50, 0x32,
|
||||
0x14, 0x9d, 0x54, 0xa5, 0x53, 0xd2, 0xe9, 0xd1, 0xfa, 0xb1, 0x9b, 0x7b, 0xf3, 0x47, 0xf6, 0xf7,
|
||||
0xe6, 0x4b, 0xeb, 0x8a, 0x4e, 0x30, 0x9f, 0x91, 0x7f, 0x2c, 0xc1, 0x83, 0x4b, 0xae, 0x43, 0x4d,
|
||||
0x7d, 0x8d, 0x50, 0x5b, 0x6d, 0x2f, 0xb9, 0xb6, 0x4d, 0x0c, 0xda, 0xa4, 0x0a, 0x75, 0x9d, 0x3b,
|
||||
0xf3, 0xa3, 0x6b, 0x50, 0xde, 0x51, 0x34, 0x97, 0x54, 0x0b, 0xa7, 0xa4, 0xd3, 0x63, 0x67, 0x6a,
|
||||
0x35, 0x11, 0x86, 0x51, 0x9f, 0xfa, 0x81, 0x58, 0xf3, 0x03, 0xa5, 0xf6, 0xaa, 0xab, 0x18, 0x54,
|
||||
0xa5, 0xbd, 0xfa, 0x09, 0x01, 0x79, 0x4c, 0xc8, 0xbd, 0xca, 0xb0, 0xb0, 0x07, 0x29, 0x7f, 0x5f,
|
||||
0x82, 0x47, 0x72, 0x75, 0x5b, 0x55, 0x1d, 0x8a, 0x74, 0x28, 0xab, 0x94, 0xe8, 0x4e, 0x55, 0x3a,
|
||||
0x55, 0x3c, 0x3d, 0x76, 0xe6, 0x72, 0xad, 0xaf, 0x4d, 0x50, 0xcb, 0x05, 0xaf, 0x8f, 0x0b, 0xbd,
|
||||
0xca, 0x2b, 0x0c, 0x1e, 0x7b, 0x52, 0xe4, 0x1f, 0x4a, 0x80, 0xa2, 0x3c, 0x2d, 0xc5, 0xee, 0x12,
|
||||
0x7a, 0x17, 0x5e, 0x7a, 0xed, 0x70, 0x5e, 0x9a, 0x16, 0x90, 0x63, 0x9e, 0xc0, 0x98, 0x93, 0xde,
|
||||
0x97, 0x60, 0x26, 0xad, 0x13, 0xf7, 0xce, 0x56, 0xdc, 0x3b, 0x8b, 0x87, 0xf0, 0x8e, 0x87, 0x9a,
|
||||
0xe3, 0x96, 0x5f, 0x15, 0x60, 0x74, 0x59, 0x21, 0xba, 0x69, 0x34, 0x09, 0x45, 0xdf, 0x84, 0x0a,
|
||||
0xdb, 0xd9, 0x1d, 0x85, 0x2a, 0xdc, 0x23, 0x63, 0x67, 0xfe, 0xef, 0x20, 0x73, 0x9d, 0x1a, 0xa3,
|
||||
0xae, 0xed, 0x3c, 0x5d, 0xbb, 0xb2, 0x79, 0x9d, 0xb4, 0xe9, 0x1a, 0xa1, 0x4a, 0x1d, 0x09, 0x39,
|
||||
0x10, 0x8e, 0xe1, 0x00, 0x15, 0xbd, 0x05, 0x25, 0xc7, 0x22, 0x6d, 0xe1, 0xcc, 0x17, 0xfb, 0x34,
|
||||
0x2b, 0xd0, 0xb4, 0x69, 0x91, 0x76, 0xb8, 0x5a, 0xec, 0x17, 0xe6, 0xb8, 0x68, 0x0b, 0x8e, 0x3a,
|
||||
0x3c, 0x0c, 0xaa, 0x45, 0x2e, 0xe1, 0xfc, 0xc0, 0x12, 0xbc, 0x60, 0x9a, 0x10, 0x32, 0x8e, 0x7a,
|
||||
0xbf, 0xb1, 0x40, 0x97, 0x7f, 0x2f, 0xc1, 0x78, 0x40, 0xcb, 0x57, 0xec, 0x8d, 0x94, 0xef, 0x6a,
|
||||
0x77, 0xe7, 0x3b, 0xc6, 0xcd, 0x3d, 0x77, 0x5c, 0xc8, 0xaa, 0xf8, 0x23, 0x11, 0xbf, 0xbd, 0xe9,
|
||||
0xc7, 0x43, 0x81, 0xc7, 0xc3, 0x73, 0x83, 0x9a, 0x95, 0x13, 0x06, 0x5f, 0x14, 0x23, 0xe6, 0x30,
|
||||
0x77, 0xa2, 0x37, 0xa1, 0xe2, 0x10, 0x8d, 0xb4, 0xa9, 0x69, 0x0b, 0x73, 0x9e, 0xb9, 0x4b, 0x73,
|
||||
0x94, 0x4d, 0xa2, 0x35, 0x05, 0x6b, 0xfd, 0x18, 0xb3, 0xc7, 0xff, 0x85, 0x03, 0x48, 0xf4, 0x3a,
|
||||
0x54, 0x28, 0xd1, 0x2d, 0x4d, 0xa1, 0xfe, 0xc6, 0x7a, 0x2a, 0xdf, 0x24, 0x06, 0xdb, 0x30, 0x3b,
|
||||
0x2d, 0xc1, 0xc0, 0x17, 0x3f, 0x70, 0x96, 0x3f, 0x8a, 0x03, 0x40, 0xf4, 0x81, 0x04, 0x13, 0xae,
|
||||
0xd5, 0x61, 0xa4, 0x94, 0x25, 0xd8, 0x6e, 0x4f, 0x44, 0xc3, 0xc5, 0x41, 0xdd, 0xb6, 0x11, 0x43,
|
||||
0xab, 0xcf, 0x08, 0xe1, 0x13, 0xf1, 0x71, 0x9c, 0x90, 0x8a, 0x16, 0x61, 0x52, 0x57, 0x0d, 0x4c,
|
||||
0x94, 0x4e, 0xaf, 0x49, 0xda, 0xa6, 0xd1, 0x71, 0xaa, 0xa5, 0x53, 0xd2, 0xe9, 0x72, 0xfd, 0xa4,
|
||||
0x00, 0x98, 0x5c, 0x8b, 0x4f, 0xe3, 0x24, 0x3d, 0xfa, 0x3a, 0x20, 0xdf, 0xae, 0x4b, 0xde, 0x79,
|
||||
0xa1, 0x9a, 0x46, 0xb5, 0x7c, 0x4a, 0x3a, 0x5d, 0xac, 0xcf, 0x0a, 0x14, 0xd4, 0x4a, 0x51, 0xe0,
|
||||
0x0c, 0x2e, 0xf9, 0x9f, 0x25, 0x98, 0x4c, 0x04, 0x38, 0xba, 0x0a, 0x33, 0x6d, 0x2f, 0x7d, 0xae,
|
||||
0xbb, 0xfa, 0x26, 0xb1, 0x9b, 0xed, 0x6d, 0xd2, 0x71, 0x35, 0xd2, 0xe1, 0xab, 0x5e, 0xae, 0xcf,
|
||||
0x09, 0x19, 0x33, 0x4b, 0x99, 0x54, 0x38, 0x87, 0x9b, 0xe9, 0x6d, 0xf0, 0xa1, 0x35, 0xd5, 0x71,
|
||||
0x02, 0xcc, 0x02, 0xc7, 0x0c, 0xf4, 0x5e, 0x4f, 0x51, 0xe0, 0x0c, 0x2e, 0xa6, 0x63, 0x87, 0x38,
|
||||
0xaa, 0x4d, 0x3a, 0x49, 0x1d, 0x8b, 0x71, 0x1d, 0x97, 0x33, 0xa9, 0x70, 0x0e, 0x37, 0x3a, 0x0b,
|
||||
0x63, 0x9e, 0x34, 0xee, 0x71, 0xb1, 0x34, 0x41, 0xc2, 0x5e, 0x0f, 0xa7, 0x70, 0x94, 0x8e, 0x99,
|
||||
0x66, 0x6e, 0xf2, 0x02, 0xa2, 0x93, 0xbf, 0x24, 0x57, 0x52, 0x14, 0x38, 0x83, 0x8b, 0x99, 0xe6,
|
||||
0xc5, 0x4c, 0xca, 0xb4, 0xa3, 0x71, 0xd3, 0x36, 0x32, 0xa9, 0x70, 0x0e, 0x37, 0x8b, 0x3c, 0x4f,
|
||||
0xe5, 0xc5, 0x1d, 0x45, 0xd5, 0x94, 0x4d, 0x8d, 0x54, 0x47, 0xe2, 0x91, 0xb7, 0x1e, 0x9f, 0xc6,
|
||||
0x49, 0x7a, 0x74, 0x09, 0xa6, 0xbc, 0xa1, 0x0d, 0x43, 0x09, 0x40, 0x2a, 0x1c, 0xe4, 0x41, 0x01,
|
||||
0x32, 0xb5, 0x9e, 0x24, 0xc0, 0x69, 0x1e, 0xf9, 0x2f, 0x12, 0x9c, 0xcc, 0xd9, 0x49, 0xe8, 0x65,
|
||||
0x28, 0xd1, 0x9e, 0xe5, 0x9f, 0xbf, 0xff, 0xeb, 0x67, 0xf4, 0x56, 0xcf, 0x22, 0xb7, 0xf7, 0xe6,
|
||||
0x1f, 0xca, 0x61, 0x63, 0xd3, 0x98, 0x33, 0xa2, 0x6f, 0xc3, 0xb8, 0x6d, 0x6a, 0x9a, 0x6a, 0x74,
|
||||
0x3d, 0x12, 0x91, 0x4d, 0x2e, 0xf4, 0xb9, 0xd3, 0x71, 0x14, 0x23, 0xcc, 0x96, 0x53, 0xfb, 0x7b,
|
||||
0xf3, 0xe3, 0xb1, 0x39, 0x1c, 0x17, 0x27, 0xff, 0xa6, 0x00, 0xb0, 0x4c, 0x2c, 0xcd, 0xec, 0xe9,
|
||||
0xc4, 0x18, 0xc6, 0x09, 0xfa, 0x76, 0xec, 0x04, 0x7d, 0xa9, 0xdf, 0x8c, 0x16, 0xa8, 0x9a, 0x7b,
|
||||
0x84, 0x76, 0x13, 0x47, 0xe8, 0xcb, 0x83, 0x8b, 0x38, 0xf8, 0x0c, 0xbd, 0x55, 0x84, 0xe9, 0x90,
|
||||
0x78, 0xc9, 0x34, 0x3a, 0x2a, 0xdf, 0x13, 0x2f, 0xc4, 0x62, 0xe2, 0xf1, 0x44, 0x4c, 0x9c, 0xcc,
|
||||
0x60, 0x89, 0xc4, 0xc3, 0xd5, 0x40, 0xfb, 0x02, 0x67, 0x3f, 0x1f, 0x17, 0x7e, 0x7b, 0x6f, 0xfe,
|
||||
0xc0, 0x7a, 0xbe, 0x16, 0x60, 0xc6, 0x95, 0x45, 0x8f, 0xc1, 0x51, 0x9b, 0x28, 0x8e, 0x69, 0xf0,
|
||||
0x34, 0x31, 0x1a, 0x1a, 0x85, 0xf9, 0x28, 0x16, 0xb3, 0xe8, 0x09, 0x18, 0xd1, 0x89, 0xe3, 0x28,
|
||||
0x5d, 0xc2, 0x33, 0xc2, 0x68, 0x7d, 0x52, 0x10, 0x8e, 0xac, 0x79, 0xc3, 0xd8, 0x9f, 0x47, 0xd7,
|
||||
0x61, 0x42, 0x53, 0x1c, 0x11, 0xda, 0x2d, 0x55, 0x27, 0x7c, 0xcf, 0x8f, 0x9d, 0xf9, 0x9f, 0xbb,
|
||||
0x8b, 0x18, 0xc6, 0x11, 0x9e, 0x44, 0xab, 0x31, 0x24, 0x9c, 0x40, 0x46, 0x3b, 0x80, 0xd8, 0x48,
|
||||
0xcb, 0x56, 0x0c, 0xc7, 0x73, 0x19, 0x93, 0x37, 0xd2, 0xb7, 0xbc, 0x20, 0xbf, 0xad, 0xa6, 0xd0,
|
||||
0x70, 0x86, 0x04, 0xf9, 0x0f, 0x12, 0x4c, 0x84, 0x0b, 0x36, 0x84, 0x42, 0xe9, 0xad, 0x78, 0xa1,
|
||||
0xf4, 0xfc, 0xc0, 0xc1, 0x9b, 0x53, 0x29, 0x7d, 0x58, 0x04, 0x14, 0x12, 0xb1, 0xd4, 0xb0, 0xa9,
|
||||
0xb4, 0x6f, 0xdc, 0xc5, 0x3d, 0xe2, 0x67, 0x12, 0x20, 0x91, 0xac, 0x17, 0x0d, 0xc3, 0xa4, 0x3c,
|
||||
0xff, 0xfb, 0x6a, 0xbe, 0x36, 0xb0, 0x9a, 0xbe, 0x06, 0xb5, 0x8d, 0x14, 0xf6, 0x05, 0x83, 0xda,
|
||||
0xbd, 0x70, 0xc5, 0xd2, 0x04, 0x38, 0x43, 0x21, 0xf4, 0x0e, 0x80, 0x2d, 0x30, 0x5b, 0xa6, 0x48,
|
||||
0x01, 0x2f, 0x0d, 0x90, 0x4d, 0x19, 0xc0, 0x92, 0x69, 0x6c, 0xa9, 0xdd, 0x30, 0xa1, 0xe1, 0x00,
|
||||
0x18, 0x47, 0x84, 0xcc, 0x5e, 0x80, 0x93, 0x39, 0xda, 0xa3, 0xe3, 0x50, 0xbc, 0x41, 0x7a, 0x9e,
|
||||
0x5b, 0x31, 0xfb, 0x13, 0x9d, 0x88, 0xde, 0xc7, 0x46, 0xc5, 0x55, 0xea, 0x5c, 0xe1, 0x39, 0x49,
|
||||
0xfe, 0xb2, 0x1c, 0x8d, 0x35, 0x5e, 0xc5, 0x9e, 0x86, 0x8a, 0x4d, 0x2c, 0x4d, 0x6d, 0x2b, 0x8e,
|
||||
0xa8, 0x67, 0x78, 0x41, 0x8a, 0xc5, 0x18, 0x0e, 0x66, 0x63, 0xf5, 0x6e, 0xe1, 0xfe, 0xd6, 0xbb,
|
||||
0xc5, 0x7b, 0x5d, 0xef, 0x9a, 0x50, 0x71, 0xfc, 0x42, 0xb7, 0xc4, 0xc1, 0x17, 0x0f, 0x91, 0xb3,
|
||||
0x45, 0x8d, 0x1b, 0x08, 0x0c, 0xaa, 0xdb, 0x40, 0x48, 0x56, 0x5d, 0x5b, 0xee, 0xb3, 0xae, 0x5d,
|
||||
0x85, 0x13, 0x36, 0xd9, 0x51, 0x99, 0x1a, 0x97, 0x55, 0x87, 0x9a, 0x76, 0x6f, 0x55, 0xd5, 0x55,
|
||||
0x2a, 0xca, 0x9e, 0xea, 0xfe, 0xde, 0xfc, 0x09, 0x9c, 0x31, 0x8f, 0x33, 0xb9, 0x58, 0x76, 0xb6,
|
||||
0x14, 0xd7, 0x21, 0x1d, 0x9e, 0xd2, 0x2a, 0x61, 0x76, 0x6e, 0xf0, 0x51, 0x2c, 0x66, 0x91, 0x1e,
|
||||
0x0b, 0xee, 0xca, 0xbd, 0x08, 0xee, 0x89, 0xfc, 0xc0, 0x46, 0x1b, 0x70, 0xd2, 0xb2, 0xcd, 0xae,
|
||||
0x4d, 0x1c, 0x67, 0x99, 0x28, 0x1d, 0x4d, 0x35, 0x88, 0xef, 0xaf, 0x51, 0x6e, 0xe7, 0x43, 0xfb,
|
||||
0x7b, 0xf3, 0x27, 0x1b, 0xd9, 0x24, 0x38, 0x8f, 0x57, 0xfe, 0xac, 0x04, 0xc7, 0x93, 0xa7, 0x6c,
|
||||
0x4e, 0x55, 0x2a, 0x0d, 0x54, 0x95, 0x3e, 0x19, 0xd9, 0x36, 0x5e, 0xc9, 0x1e, 0x44, 0x43, 0xc6,
|
||||
0xd6, 0x59, 0x84, 0x49, 0x91, 0x47, 0xfc, 0x49, 0x51, 0x97, 0x07, 0xd1, 0xb0, 0x11, 0x9f, 0xc6,
|
||||
0x49, 0x7a, 0x56, 0x6b, 0x86, 0x25, 0xa4, 0x0f, 0x52, 0x8a, 0xd7, 0x9a, 0x8b, 0x49, 0x02, 0x9c,
|
||||
0xe6, 0x41, 0x6b, 0x30, 0xed, 0x1a, 0x69, 0x28, 0x2f, 0x3a, 0x1f, 0x12, 0x50, 0xd3, 0x1b, 0x69,
|
||||
0x12, 0x9c, 0xc5, 0x87, 0x76, 0x00, 0xda, 0x7e, 0x41, 0xe0, 0x54, 0x8f, 0xf2, 0x5c, 0x5d, 0x1f,
|
||||
0x78, 0x6f, 0x05, 0xb5, 0x45, 0x98, 0x11, 0x83, 0x21, 0x07, 0x47, 0x24, 0xa1, 0x17, 0x60, 0xdc,
|
||||
0xe6, 0x17, 0x0f, 0xdf, 0x00, 0xaf, 0x78, 0x7f, 0x40, 0xb0, 0x8d, 0xe3, 0xe8, 0x24, 0x8e, 0xd3,
|
||||
0xa2, 0x73, 0x30, 0xd1, 0x66, 0x35, 0x2a, 0x53, 0x63, 0xc9, 0x74, 0x0d, 0xca, 0x03, 0xbd, 0x58,
|
||||
0x47, 0xac, 0x4e, 0x58, 0x8a, 0xcd, 0xe0, 0x04, 0xa5, 0xfc, 0x47, 0x29, 0x7a, 0xbc, 0x05, 0x65,
|
||||
0xfa, 0xb9, 0x58, 0x49, 0xf6, 0x58, 0xa2, 0x24, 0x9b, 0x49, 0x73, 0x44, 0x2a, 0xb2, 0xef, 0x64,
|
||||
0x57, 0xe8, 0x17, 0x0f, 0x55, 0xa1, 0x87, 0xc7, 0xf4, 0x9d, 0x4b, 0xf4, 0x8f, 0x25, 0x98, 0xb9,
|
||||
0xd8, 0xbc, 0x64, 0x9b, 0xae, 0xe5, 0xab, 0x77, 0xc5, 0xf2, 0xfc, 0xfc, 0x35, 0x28, 0xd9, 0xae,
|
||||
0xe6, 0xdb, 0xf5, 0x5f, 0xbe, 0x5d, 0xd8, 0xd5, 0x98, 0x5d, 0xd3, 0x09, 0x2e, 0xcf, 0x28, 0xc6,
|
||||
0x80, 0xde, 0x82, 0xa3, 0xb6, 0x62, 0x74, 0x89, 0x7f, 0x80, 0x3f, 0xdb, 0xa7, 0x35, 0x2b, 0xcb,
|
||||
0x98, 0xb1, 0x47, 0xca, 0x48, 0x8e, 0x86, 0x05, 0xaa, 0xfc, 0x53, 0x09, 0x26, 0x2f, 0xb7, 0x5a,
|
||||
0x8d, 0x15, 0x83, 0x67, 0x80, 0x86, 0x42, 0xb7, 0x59, 0x8d, 0x61, 0x29, 0x74, 0x3b, 0x59, 0x63,
|
||||
0xb0, 0x39, 0xcc, 0x67, 0xd0, 0x36, 0x8c, 0xb0, 0xcc, 0x43, 0x8c, 0xce, 0x80, 0xd7, 0x03, 0x21,
|
||||
0xae, 0xee, 0x81, 0x84, 0xb5, 0xab, 0x18, 0xc0, 0x3e, 0xbc, 0xfc, 0x1e, 0x9c, 0x88, 0xa8, 0xc7,
|
||||
0xfc, 0xc5, 0x5f, 0x36, 0x51, 0x1b, 0xca, 0x4c, 0x13, 0xff, 0xdd, 0xb2, 0xdf, 0xe7, 0xb7, 0x84,
|
||||
0xc9, 0x61, 0x0d, 0xc6, 0x7e, 0x39, 0xd8, 0xc3, 0x96, 0xd7, 0x60, 0xfc, 0xb2, 0xe9, 0xd0, 0x86,
|
||||
0x69, 0x53, 0xee, 0x36, 0xf4, 0x08, 0x14, 0x75, 0xd5, 0x10, 0x27, 0xfc, 0x98, 0xe0, 0x29, 0xb2,
|
||||
0x33, 0x88, 0x8d, 0xf3, 0x69, 0x65, 0x57, 0x64, 0xb2, 0x70, 0x5a, 0xd9, 0xc5, 0x6c, 0x5c, 0xbe,
|
||||
0x04, 0x23, 0x62, 0x39, 0xa2, 0x40, 0xc5, 0x83, 0x81, 0x8a, 0x19, 0x40, 0xbf, 0x2c, 0xc0, 0x88,
|
||||
0xd0, 0x7e, 0x08, 0x17, 0xc1, 0x37, 0x62, 0x17, 0xc1, 0x73, 0x83, 0xad, 0x74, 0xee, 0x2d, 0xb0,
|
||||
0x93, 0xb8, 0x05, 0xbe, 0x38, 0x20, 0xfe, 0xc1, 0x57, 0xc0, 0x8f, 0x24, 0x98, 0x88, 0xc7, 0x1c,
|
||||
0x3a, 0x0b, 0x63, 0xec, 0x3c, 0x52, 0xdb, 0x64, 0x3d, 0x2c, 0xa8, 0x83, 0x47, 0x99, 0x66, 0x38,
|
||||
0x85, 0xa3, 0x74, 0xa8, 0x1b, 0xb0, 0xb1, 0xb0, 0x10, 0x4e, 0xc9, 0x77, 0xb9, 0x4b, 0x55, 0xad,
|
||||
0xe6, 0xb5, 0x89, 0x6a, 0x2b, 0x06, 0xbd, 0x62, 0x37, 0xa9, 0xad, 0x1a, 0xdd, 0x94, 0x20, 0x1e,
|
||||
0x63, 0x51, 0x64, 0xf9, 0xa6, 0x04, 0x63, 0x42, 0xe5, 0x21, 0x5c, 0x67, 0x5e, 0x8f, 0x5f, 0x67,
|
||||
0x9e, 0x1d, 0x70, 0x3f, 0x67, 0xdf, 0x65, 0x3e, 0x09, 0x4d, 0x61, 0x3b, 0x98, 0x25, 0x98, 0x6d,
|
||||
0xd3, 0xa1, 0xc9, 0x04, 0xc3, 0xf6, 0x1a, 0xe6, 0x33, 0xe8, 0x7b, 0x12, 0x1c, 0x57, 0x13, 0x7b,
|
||||
0x5e, 0xf8, 0xfa, 0xe5, 0xc1, 0x54, 0x0b, 0x60, 0xea, 0x55, 0x21, 0xef, 0x78, 0x72, 0x06, 0xa7,
|
||||
0x44, 0xca, 0x2e, 0xa4, 0xa8, 0x90, 0x02, 0xa5, 0x6d, 0x4a, 0x2d, 0xb1, 0x08, 0x4b, 0x83, 0x67,
|
||||
0x9e, 0x50, 0xa5, 0x0a, 0x37, 0xbf, 0xd5, 0x6a, 0x60, 0x0e, 0x2d, 0xff, 0xa2, 0x10, 0x38, 0xac,
|
||||
0xe9, 0x6d, 0x92, 0x20, 0xdf, 0x4a, 0xf7, 0x22, 0xdf, 0x8e, 0x65, 0xe5, 0x5a, 0xf4, 0x0d, 0x28,
|
||||
0x52, 0x6d, 0xd0, 0x0b, 0xad, 0x90, 0xd0, 0x5a, 0x6d, 0x86, 0x09, 0xab, 0xb5, 0xda, 0xc4, 0x0c,
|
||||
0x12, 0xbd, 0x0d, 0x65, 0x76, 0x9a, 0xb1, 0x3d, 0x5e, 0x1c, 0x3c, 0x87, 0x30, 0x7f, 0x85, 0x11,
|
||||
0xc6, 0x7e, 0x39, 0xd8, 0xc3, 0x95, 0xdf, 0x83, 0xf1, 0x58, 0x22, 0x40, 0xd7, 0xe1, 0x98, 0x66,
|
||||
0x2a, 0x9d, 0xba, 0xa2, 0x29, 0x46, 0x9b, 0xd8, 0xc9, 0xd4, 0x98, 0x7d, 0x17, 0x5a, 0x8d, 0x70,
|
||||
0x88, 0x84, 0x12, 0x34, 0x1f, 0xa3, 0x73, 0x38, 0x86, 0x2d, 0x2b, 0x00, 0xa1, 0xf5, 0x68, 0x1e,
|
||||
0xca, 0x2c, 0x84, 0xbd, 0x93, 0x69, 0xb4, 0x3e, 0xca, 0x74, 0x65, 0x91, 0xed, 0x60, 0x6f, 0x1c,
|
||||
0x9d, 0x01, 0x70, 0x48, 0xdb, 0x26, 0x94, 0xe7, 0x1d, 0xef, 0xf5, 0x28, 0xc8, 0xc0, 0xcd, 0x60,
|
||||
0x06, 0x47, 0xa8, 0xe4, 0x3f, 0x4b, 0x30, 0xbe, 0x4e, 0xe8, 0xbb, 0xa6, 0x7d, 0xa3, 0xc1, 0x9b,
|
||||
0xbb, 0x43, 0xc8, 0xfb, 0x9b, 0xb1, 0xbc, 0xff, 0x4a, 0x9f, 0x6b, 0x16, 0xd3, 0x36, 0x2f, 0xfb,
|
||||
0xcb, 0x7f, 0x97, 0xa0, 0x1a, 0xa3, 0x8c, 0xa6, 0x09, 0x02, 0x65, 0xcb, 0xb4, 0xa9, 0x7f, 0xc6,
|
||||
0x1f, 0x4a, 0x03, 0x96, 0x52, 0x23, 0xa7, 0x3c, 0x83, 0xc5, 0x1e, 0x3a, 0xb3, 0x73, 0xcb, 0x36,
|
||||
0x75, 0x11, 0xf7, 0x87, 0x93, 0x42, 0x88, 0x1d, 0xda, 0x79, 0xd1, 0x36, 0x75, 0xcc, 0xb1, 0xe5,
|
||||
0x3f, 0x49, 0x30, 0x15, 0xa3, 0x1c, 0x42, 0x4a, 0x57, 0xe2, 0x29, 0xfd, 0xc5, 0xc3, 0x18, 0x96,
|
||||
0x93, 0xd8, 0xbf, 0x4a, 0x9a, 0xc5, 0x1c, 0x80, 0xb6, 0x60, 0xcc, 0x32, 0x3b, 0xcd, 0x7b, 0xd0,
|
||||
0xd5, 0x9b, 0x64, 0x27, 0x64, 0x23, 0xc4, 0xc2, 0x51, 0x60, 0xb4, 0x0b, 0x53, 0x86, 0xa2, 0x13,
|
||||
0xc7, 0x52, 0xda, 0xa4, 0x79, 0x0f, 0xde, 0x54, 0x1e, 0xe0, 0x9d, 0x86, 0x24, 0x22, 0x4e, 0x0b,
|
||||
0x91, 0x7f, 0x9d, 0xb2, 0xdb, 0xb4, 0x29, 0x7a, 0x15, 0x2a, 0xfc, 0x03, 0x8b, 0xb6, 0xa9, 0x89,
|
||||
0xa3, 0xed, 0x2c, 0x5b, 0x9a, 0x86, 0x18, 0xbb, 0xbd, 0x37, 0xff, 0xdf, 0x07, 0x3e, 0x09, 0xfb,
|
||||
0x84, 0x38, 0x80, 0x41, 0xeb, 0x50, 0xb2, 0x0e, 0x53, 0x66, 0xf0, 0x83, 0x85, 0xd7, 0x16, 0x1c,
|
||||
0x47, 0xfe, 0x47, 0x52, 0x71, 0x7e, 0xbc, 0x5c, 0xbf, 0x67, 0x0b, 0x16, 0x94, 0x35, 0xb9, 0x8b,
|
||||
0x66, 0xc3, 0x88, 0x38, 0x65, 0x45, 0x5c, 0x5e, 0x3a, 0x4c, 0x5c, 0x46, 0x4f, 0x86, 0xe0, 0x12,
|
||||
0xe1, 0x0f, 0xfa, 0x82, 0xe4, 0xbf, 0x4a, 0x30, 0xc5, 0x15, 0x6a, 0xbb, 0xb6, 0x4a, 0x7b, 0x43,
|
||||
0xcb, 0xa0, 0x5b, 0xb1, 0x0c, 0xba, 0xdc, 0xa7, 0xa1, 0x29, 0x8d, 0x73, 0xb3, 0xe8, 0xe7, 0x12,
|
||||
0x3c, 0x90, 0xa2, 0x1e, 0x42, 0x86, 0x21, 0xf1, 0x0c, 0xf3, 0xca, 0x61, 0x0d, 0xcc, 0xc9, 0x32,
|
||||
0x37, 0x21, 0xc3, 0x3c, 0x1e, 0xb8, 0x67, 0x00, 0x2c, 0x5b, 0xdd, 0x51, 0x35, 0xd2, 0x15, 0x8d,
|
||||
0xe4, 0x4a, 0xb8, 0x24, 0x8d, 0x60, 0x06, 0x47, 0xa8, 0xd0, 0xb7, 0x60, 0xa6, 0x43, 0xb6, 0x14,
|
||||
0x57, 0xa3, 0x8b, 0x9d, 0xce, 0x92, 0x62, 0x29, 0x9b, 0xaa, 0xa6, 0x52, 0x55, 0xdc, 0xb0, 0x47,
|
||||
0xeb, 0x17, 0xbc, 0x06, 0x6f, 0x16, 0xc5, 0xed, 0xbd, 0xf9, 0xc7, 0x0f, 0x6e, 0xea, 0xf8, 0xc4,
|
||||
0x3d, 0x9c, 0x23, 0x04, 0x7d, 0x57, 0x82, 0xaa, 0x4d, 0xde, 0x71, 0x55, 0x9b, 0x74, 0x96, 0x6d,
|
||||
0xd3, 0x8a, 0x69, 0x50, 0xe4, 0x1a, 0x5c, 0xda, 0xdf, 0x9b, 0xaf, 0xe2, 0x1c, 0x9a, 0x7e, 0x74,
|
||||
0xc8, 0x15, 0x84, 0x28, 0x4c, 0x2b, 0x9a, 0x66, 0xbe, 0x4b, 0xe2, 0x1e, 0x28, 0x71, 0xf9, 0xf5,
|
||||
0xfd, 0xbd, 0xf9, 0xe9, 0xc5, 0xf4, 0x74, 0x3f, 0xa2, 0xb3, 0xe0, 0xd1, 0x02, 0x8c, 0xec, 0x98,
|
||||
0x9a, 0xab, 0x13, 0xa7, 0x5a, 0xe6, 0x92, 0x58, 0xc6, 0x1d, 0xb9, 0xea, 0x0d, 0xdd, 0xde, 0x9b,
|
||||
0x3f, 0x7a, 0xb1, 0xc9, 0x9f, 0x3e, 0x7c, 0x2a, 0x76, 0x47, 0x63, 0x35, 0x93, 0xd8, 0xf2, 0xfc,
|
||||
0xcd, 0xb6, 0x12, 0xe6, 0x98, 0xcb, 0xe1, 0x14, 0x8e, 0xd2, 0x21, 0x1d, 0x46, 0xb7, 0xc5, 0xbd,
|
||||
0xdd, 0xa9, 0x8e, 0x0c, 0x74, 0xfa, 0xc5, 0xee, 0xfd, 0xf5, 0x29, 0x21, 0x72, 0xd4, 0x1f, 0x76,
|
||||
0x70, 0x28, 0x01, 0x3d, 0x01, 0x23, 0xfc, 0xc7, 0xca, 0x32, 0x7f, 0x00, 0xab, 0x84, 0x99, 0xe8,
|
||||
0xb2, 0x37, 0x8c, 0xfd, 0x79, 0x9f, 0x74, 0xa5, 0xb1, 0xc4, 0x1f, 0x66, 0x13, 0xa4, 0x2b, 0x8d,
|
||||
0x25, 0xec, 0xcf, 0x23, 0x0b, 0x46, 0x1c, 0xb2, 0xaa, 0x1a, 0xee, 0x6e, 0x15, 0x06, 0x6a, 0x35,
|
||||
0x37, 0x2f, 0x70, 0xee, 0xc4, 0x53, 0x54, 0x28, 0x51, 0xcc, 0x63, 0x5f, 0x0c, 0xda, 0x85, 0x51,
|
||||
0xdb, 0x35, 0x16, 0x9d, 0x0d, 0x87, 0xd8, 0xd5, 0x31, 0x2e, 0xb3, 0xdf, 0xe4, 0x8c, 0x7d, 0xfe,
|
||||
0xa4, 0xd4, 0xc0, 0x83, 0x01, 0x05, 0x0e, 0x85, 0xa1, 0x9f, 0x48, 0x80, 0x1c, 0xd7, 0xb2, 0x34,
|
||||
0xa2, 0x13, 0x83, 0x2a, 0x1a, 0x7f, 0x0d, 0x73, 0xaa, 0xc7, 0xb8, 0x0e, 0x8d, 0x7e, 0xed, 0x4e,
|
||||
0x01, 0x25, 0x95, 0x09, 0x9e, 0xa9, 0xd3, 0xa4, 0x38, 0x43, 0x0f, 0xb6, 0x14, 0x5b, 0x0e, 0xff,
|
||||
0xbb, 0x3a, 0x3e, 0xd0, 0x52, 0x64, 0xbf, 0x0a, 0x86, 0x4b, 0x21, 0xe6, 0xb1, 0x2f, 0x06, 0x5d,
|
||||
0x85, 0x19, 0x9b, 0x28, 0x9d, 0x2b, 0x86, 0xd6, 0xc3, 0xa6, 0x49, 0x2f, 0xaa, 0x1a, 0x71, 0x7a,
|
||||
0x0e, 0x25, 0x7a, 0x75, 0x82, 0x87, 0x4d, 0xf0, 0xb9, 0x06, 0xce, 0xa4, 0xc2, 0x39, 0xdc, 0xfc,
|
||||
0x2b, 0x02, 0xf1, 0x7e, 0x3b, 0x9c, 0xef, 0xf0, 0x0e, 0xf7, 0x15, 0x41, 0xa8, 0xea, 0x7d, 0xfb,
|
||||
0x8a, 0x20, 0x22, 0xe2, 0xe0, 0x27, 0xa4, 0xaf, 0x0a, 0x30, 0x1d, 0x12, 0xdf, 0xf5, 0x57, 0x04,
|
||||
0x19, 0x2c, 0x43, 0xf8, 0x8a, 0x20, 0xbb, 0x0d, 0x5f, 0xbc, 0xdf, 0x6d, 0xf8, 0xfb, 0xf0, 0xf5,
|
||||
0x02, 0xef, 0xec, 0x87, 0x4e, 0xfc, 0xf7, 0xef, 0xec, 0x87, 0xba, 0xe6, 0x94, 0x33, 0xbf, 0x2d,
|
||||
0x44, 0x0d, 0xfa, 0x0f, 0x6a, 0x1f, 0x1f, 0xfe, 0x2b, 0x45, 0xf9, 0xf3, 0x22, 0x1c, 0x4f, 0xee,
|
||||
0xd8, 0x58, 0x17, 0x51, 0xba, 0x63, 0x17, 0xb1, 0x01, 0x27, 0xb6, 0x5c, 0x4d, 0xeb, 0x71, 0x87,
|
||||
0x44, 0x5a, 0x89, 0xde, 0xab, 0xfd, 0xc3, 0x82, 0xf3, 0xc4, 0xc5, 0x0c, 0x1a, 0x9c, 0xc9, 0x99,
|
||||
0xd3, 0x11, 0x2d, 0x0e, 0xd4, 0x11, 0x4d, 0x35, 0xe4, 0x4a, 0x7d, 0x34, 0xe4, 0x32, 0xbb, 0x9b,
|
||||
0xe5, 0x01, 0xba, 0x9b, 0xf7, 0xa2, 0x1d, 0x99, 0x91, 0xf8, 0xee, 0xd4, 0x8e, 0x94, 0x1f, 0x86,
|
||||
0x59, 0xc1, 0x46, 0x79, 0xa7, 0xd0, 0xa0, 0xb6, 0xa9, 0x69, 0xc4, 0x5e, 0x76, 0x75, 0xbd, 0x27,
|
||||
0x9f, 0x87, 0x89, 0x78, 0x4f, 0xdc, 0x5b, 0x79, 0xaf, 0x4d, 0x2f, 0x7a, 0x29, 0x91, 0x95, 0xf7,
|
||||
0xc6, 0x71, 0x40, 0x21, 0x7f, 0x20, 0xc1, 0x4c, 0xf6, 0xf7, 0x77, 0x48, 0x83, 0x09, 0x5d, 0xd9,
|
||||
0x8d, 0x7e, 0x80, 0x28, 0x0d, 0x78, 0xe3, 0xe6, 0xcd, 0xcf, 0xb5, 0x18, 0x16, 0x4e, 0x60, 0xcb,
|
||||
0x5f, 0x48, 0x70, 0x32, 0xa7, 0xcd, 0x38, 0x5c, 0x4d, 0xd0, 0x35, 0xa8, 0xe8, 0xca, 0x6e, 0xd3,
|
||||
0xb5, 0xbb, 0x64, 0xe0, 0x37, 0x06, 0x9e, 0x4b, 0xd6, 0x04, 0x0a, 0x0e, 0xf0, 0xe4, 0x8f, 0x25,
|
||||
0xa8, 0xe6, 0xd5, 0x83, 0xe8, 0x6c, 0xac, 0x21, 0xfa, 0x68, 0xa2, 0x21, 0x3a, 0x95, 0xe2, 0x1b,
|
||||
0x52, 0x3b, 0xf4, 0x13, 0x09, 0x66, 0xb2, 0xeb, 0x66, 0xf4, 0x4c, 0x4c, 0xe3, 0xf9, 0x84, 0xc6,
|
||||
0x93, 0x09, 0x2e, 0xa1, 0xef, 0x36, 0x4c, 0x88, 0xea, 0x5a, 0xc0, 0x08, 0x2f, 0x3f, 0x79, 0x70,
|
||||
0x56, 0x15, 0x60, 0x7e, 0x9d, 0xc8, 0x57, 0x32, 0x3e, 0x86, 0x13, 0xb8, 0xf2, 0xcf, 0x0b, 0x50,
|
||||
0x6e, 0xb6, 0x15, 0x8d, 0x0c, 0xa1, 0xa8, 0xbb, 0x16, 0x2b, 0xea, 0xfa, 0xfd, 0x1f, 0x01, 0xae,
|
||||
0x65, 0x6e, 0x3d, 0xb7, 0x99, 0xa8, 0xe7, 0xce, 0x0d, 0x84, 0x7e, 0x70, 0x29, 0xf7, 0x3c, 0x8c,
|
||||
0x06, 0x4a, 0xf4, 0x77, 0x7a, 0xc8, 0x1f, 0x15, 0x60, 0x2c, 0x22, 0xa2, 0xcf, 0xb3, 0x67, 0x27,
|
||||
0x76, 0x7a, 0x0f, 0xf2, 0xef, 0x48, 0x11, 0xd9, 0x35, 0xff, 0xfc, 0xf6, 0xbe, 0xbf, 0x0b, 0xbf,
|
||||
0xa3, 0x4a, 0x1f, 0xeb, 0xe7, 0x61, 0x82, 0xf2, 0xff, 0xce, 0x09, 0xde, 0xf8, 0x8a, 0x3c, 0x8a,
|
||||
0x83, 0xaf, 0x3a, 0x5b, 0xb1, 0x59, 0x9c, 0xa0, 0x9e, 0x7d, 0x01, 0xc6, 0x63, 0xc2, 0xfa, 0xfa,
|
||||
0x5c, 0xee, 0x77, 0x12, 0x3c, 0x7a, 0xc7, 0x3b, 0x19, 0xaa, 0xc7, 0xb6, 0x57, 0x2d, 0xb1, 0xbd,
|
||||
0xe6, 0xf2, 0x01, 0x86, 0xf8, 0xb1, 0xc4, 0x8f, 0x0a, 0x80, 0x5a, 0xdb, 0xaa, 0xdd, 0x69, 0x28,
|
||||
0x36, 0xed, 0x61, 0xf1, 0x3f, 0x58, 0x43, 0xd8, 0x70, 0x67, 0x61, 0xac, 0x43, 0x9c, 0xb6, 0xad,
|
||||
0x72, 0x67, 0x89, 0xbb, 0x42, 0xf0, 0x0e, 0xb2, 0x1c, 0x4e, 0xe1, 0x28, 0x1d, 0xea, 0x42, 0x65,
|
||||
0xc7, 0xfb, 0x2f, 0x3f, 0xbf, 0xf3, 0xd6, 0x6f, 0x31, 0x1b, 0xfe, 0x9f, 0x60, 0x18, 0x5f, 0x62,
|
||||
0xc0, 0xc1, 0x01, 0xb8, 0xfc, 0xa1, 0x04, 0x33, 0x69, 0xc7, 0x2c, 0x33, 0xd5, 0xef, 0xbf, 0x73,
|
||||
0x1e, 0x86, 0x12, 0x47, 0x67, 0x5e, 0x39, 0xe6, 0xbd, 0x78, 0x33, 0xc9, 0x98, 0x8f, 0xca, 0x5f,
|
||||
0x4a, 0x30, 0x9b, 0xad, 0xda, 0x10, 0xae, 0x12, 0xd7, 0xe3, 0x57, 0x89, 0x7e, 0x9f, 0x0d, 0xb2,
|
||||
0xf5, 0xce, 0xb9, 0x56, 0xec, 0x65, 0xae, 0xc1, 0x10, 0x8c, 0xdc, 0x8a, 0x1b, 0xb9, 0x78, 0x68,
|
||||
0x23, 0xb3, 0x0d, 0xac, 0x3f, 0x71, 0xf3, 0xd6, 0xdc, 0x91, 0x4f, 0x6f, 0xcd, 0x1d, 0xf9, 0xec,
|
||||
0xd6, 0xdc, 0x91, 0xf7, 0xf7, 0xe7, 0xa4, 0x9b, 0xfb, 0x73, 0xd2, 0xa7, 0xfb, 0x73, 0xd2, 0xdf,
|
||||
0xf6, 0xe7, 0xa4, 0x1f, 0x7c, 0x31, 0x77, 0xe4, 0xda, 0x88, 0xc0, 0xfc, 0x57, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0x5a, 0xe3, 0x5a, 0x1b, 0x28, 0x3d, 0x00, 0x00,
|
||||
}
|
||||
|
@@ -325,6 +325,12 @@ message DeploymentStatus {
|
||||
// +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 int64 collisionCount = 8;
|
||||
}
|
||||
|
||||
// DeploymentStrategy describes how to replace existing pods with new ones.
|
||||
|
@@ -5606,7 +5606,7 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
} else {
|
||||
yysep2 := !z.EncBinary()
|
||||
yy2arr2 := z.EncBasicHandle().StructToArray
|
||||
var yyq2 [7]bool
|
||||
var yyq2 [8]bool
|
||||
_, _, _ = yysep2, yyq2, yy2arr2
|
||||
const yyr2 bool = false
|
||||
yyq2[0] = x.ObservedGeneration != 0
|
||||
@@ -5616,9 +5616,10 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
yyq2[4] = x.AvailableReplicas != 0
|
||||
yyq2[5] = x.UnavailableReplicas != 0
|
||||
yyq2[6] = len(x.Conditions) != 0
|
||||
yyq2[7] = x.CollisionCount != nil
|
||||
var yynn2 int
|
||||
if yyr2 || yy2arr2 {
|
||||
r.EncodeArrayStart(7)
|
||||
r.EncodeArrayStart(8)
|
||||
} else {
|
||||
yynn2 = 0
|
||||
for _, b := range yyq2 {
|
||||
@@ -5812,6 +5813,41 @@ func (x *DeploymentStatus) CodecEncodeSelf(e *codec1978.Encoder) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if yyq2[7] {
|
||||
if x.CollisionCount == nil {
|
||||
r.EncodeNil()
|
||||
} else {
|
||||
yy25 := *x.CollisionCount
|
||||
yym26 := z.EncBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy25))
|
||||
}
|
||||
}
|
||||
} 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 {
|
||||
yy27 := *x.CollisionCount
|
||||
yym28 := z.EncBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
} else {
|
||||
r.EncodeInt(int64(yy27))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if yyr2 || yy2arr2 {
|
||||
z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
} else {
|
||||
@@ -5957,6 +5993,22 @@ func (x *DeploymentStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv16), d)
|
||||
}
|
||||
}
|
||||
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:
|
||||
z.DecStructFieldNotFound(-1, yys3)
|
||||
} // end switch yys3
|
||||
@@ -5968,16 +6020,16 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
var h codecSelfer1234
|
||||
z, r := codec1978.GenHelperDecoder(d)
|
||||
_, _, _ = h, z, r
|
||||
var yyj18 int
|
||||
var yyb18 bool
|
||||
var yyhl18 bool = l >= 0
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
var yyj20 int
|
||||
var yyb20 bool
|
||||
var yyhl20 bool = l >= 0
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -5985,21 +6037,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ObservedGeneration = 0
|
||||
} else {
|
||||
yyv19 := &x.ObservedGeneration
|
||||
yym20 := z.DecBinary()
|
||||
_ = yym20
|
||||
yyv21 := &x.ObservedGeneration
|
||||
yym22 := z.DecBinary()
|
||||
_ = yym22
|
||||
if false {
|
||||
} else {
|
||||
*((*int64)(yyv19)) = int64(r.DecodeInt(64))
|
||||
*((*int64)(yyv21)) = int64(r.DecodeInt(64))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -6007,29 +6059,7 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Replicas = 0
|
||||
} else {
|
||||
yyv21 := &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.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv23 := &x.UpdatedReplicas
|
||||
yyv23 := &x.Replicas
|
||||
yym24 := z.DecBinary()
|
||||
_ = yym24
|
||||
if false {
|
||||
@@ -6037,21 +6067,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv23)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.ReadyReplicas = 0
|
||||
x.UpdatedReplicas = 0
|
||||
} else {
|
||||
yyv25 := &x.ReadyReplicas
|
||||
yyv25 := &x.UpdatedReplicas
|
||||
yym26 := z.DecBinary()
|
||||
_ = yym26
|
||||
if false {
|
||||
@@ -6059,21 +6089,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv25)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.AvailableReplicas = 0
|
||||
x.ReadyReplicas = 0
|
||||
} else {
|
||||
yyv27 := &x.AvailableReplicas
|
||||
yyv27 := &x.ReadyReplicas
|
||||
yym28 := z.DecBinary()
|
||||
_ = yym28
|
||||
if false {
|
||||
@@ -6081,21 +6111,21 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv27)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
x.AvailableReplicas = 0
|
||||
} else {
|
||||
yyv29 := &x.UnavailableReplicas
|
||||
yyv29 := &x.AvailableReplicas
|
||||
yym30 := z.DecBinary()
|
||||
_ = yym30
|
||||
if false {
|
||||
@@ -6103,13 +6133,35 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
*((*int32)(yyv29)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.UnavailableReplicas = 0
|
||||
} else {
|
||||
yyv31 := &x.UnavailableReplicas
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
if false {
|
||||
} else {
|
||||
*((*int32)(yyv31)) = int32(r.DecodeInt(32))
|
||||
}
|
||||
}
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb20 {
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
return
|
||||
}
|
||||
@@ -6117,26 +6169,52 @@ func (x *DeploymentStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder)
|
||||
if r.TryDecodeAsNil() {
|
||||
x.Conditions = nil
|
||||
} else {
|
||||
yyv31 := &x.Conditions
|
||||
yym32 := z.DecBinary()
|
||||
_ = yym32
|
||||
yyv33 := &x.Conditions
|
||||
yym34 := z.DecBinary()
|
||||
_ = yym34
|
||||
if false {
|
||||
} else {
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv31), d)
|
||||
h.decSliceDeploymentCondition((*[]DeploymentCondition)(yyv33), d)
|
||||
}
|
||||
}
|
||||
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 {
|
||||
yyj18++
|
||||
if yyhl18 {
|
||||
yyb18 = yyj18 > l
|
||||
yyj20++
|
||||
if yyhl20 {
|
||||
yyb20 = yyj20 > l
|
||||
} else {
|
||||
yyb18 = r.CheckBreak()
|
||||
yyb20 = r.CheckBreak()
|
||||
}
|
||||
if yyb18 {
|
||||
if yyb20 {
|
||||
break
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayElem1234)
|
||||
z.DecStructFieldNotFound(yyj18-1, "")
|
||||
z.DecStructFieldNotFound(yyj20-1, "")
|
||||
}
|
||||
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
|
||||
}
|
||||
@@ -19652,7 +19730,7 @@ func (x codecSelfer1234) decSliceDeployment(v *[]Deployment, d *codec1978.Decode
|
||||
|
||||
yyrg1 := len(yyv1) > 0
|
||||
yyv21 := yyv1
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 960)
|
||||
yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 968)
|
||||
if yyrt1 {
|
||||
if yyrl1 <= cap(yyv1) {
|
||||
yyv1 = yyv1[:yyrl1]
|
||||
|
@@ -325,6 +325,12 @@ type DeploymentStatus struct {
|
||||
// +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 *int64 `json:"collisionCount,omitempty" protobuf:"varint,8,opt,name=collisionCount"`
|
||||
}
|
||||
|
||||
type DeploymentConditionType string
|
||||
|
@@ -186,6 +186,7 @@ var map_DeploymentStatus = map[string]string{
|
||||
"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.",
|
||||
"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 {
|
||||
|
@@ -628,6 +628,7 @@ func autoConvert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in *Dep
|
||||
out.AvailableReplicas = in.AvailableReplicas
|
||||
out.UnavailableReplicas = in.UnavailableReplicas
|
||||
out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions))
|
||||
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -644,6 +645,7 @@ func autoConvert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in *ext
|
||||
out.AvailableReplicas = in.AvailableReplicas
|
||||
out.UnavailableReplicas = in.UnavailableReplicas
|
||||
out.Conditions = *(*[]DeploymentCondition)(unsafe.Pointer(&in.Conditions))
|
||||
out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@@ -384,6 +384,11 @@ func DeepCopy_v1beta1_DeploymentStatus(in interface{}, out interface{}, c *conve
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.CollisionCount != nil {
|
||||
in, out := &in.CollisionCount, &out.CollisionCount
|
||||
*out = new(int64)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -378,6 +378,11 @@ func DeepCopy_extensions_DeploymentStatus(in interface{}, out interface{}, c *co
|
||||
}
|
||||
}
|
||||
}
|
||||
if in.CollisionCount != nil {
|
||||
in, out := &in.CollisionCount, &out.CollisionCount
|
||||
*out = new(int64)
|
||||
**out = **in
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@@ -164,6 +164,7 @@ go_library(
|
||||
"//test/e2e_federation:go_default_library",
|
||||
"//test/images/net/nat:go_default_library",
|
||||
"//test/utils:go_default_library",
|
||||
"//vendor/github.com/davecgh/go-spew/spew:go_default_library",
|
||||
"//vendor/github.com/elazarl/goproxy:go_default_library",
|
||||
"//vendor/github.com/ghodss/yaml:go_default_library",
|
||||
"//vendor/github.com/golang/glog:go_default_library",
|
||||
|
@@ -21,8 +21,10 @@ import (
|
||||
"math/rand"
|
||||
"time"
|
||||
|
||||
"github.com/davecgh/go-spew/spew"
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
@@ -108,6 +110,9 @@ var _ = framework.KubeDescribe("Deployment", func() {
|
||||
It("test Deployment ReplicaSet orphaning and adoption regarding controllerRef", func() {
|
||||
testDeploymentsControllerRef(f)
|
||||
})
|
||||
It("deployment can avoid hash collisions", func() {
|
||||
testDeploymentHashCollisionAvoidance(f)
|
||||
})
|
||||
// TODO: add tests that cover deployment.Spec.MinReadySeconds once we solved clock-skew issues
|
||||
// See https://github.com/kubernetes/kubernetes/issues/29229
|
||||
})
|
||||
@@ -1359,3 +1364,47 @@ func orphanDeploymentReplicaSets(c clientset.Interface, d *extensions.Deployment
|
||||
deleteOptions.Preconditions = metav1.NewUIDPreconditions(string(d.UID))
|
||||
return c.Extensions().Deployments(d.Namespace).Delete(d.Name, deleteOptions)
|
||||
}
|
||||
|
||||
func testDeploymentHashCollisionAvoidance(f *framework.Framework) {
|
||||
ns := f.Namespace.Name
|
||||
c := f.ClientSet
|
||||
|
||||
deploymentName := "test-hash-collision"
|
||||
framework.Logf("Creating Deployment %q", deploymentName)
|
||||
podLabels := map[string]string{"name": nginxImageName}
|
||||
d := framework.NewDeployment(deploymentName, int32(0), podLabels, nginxImageName, nginxImage, extensions.RollingUpdateDeploymentStrategyType)
|
||||
deployment, err := c.Extensions().Deployments(ns).Create(d)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "1", nginxImage)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
// TODO: Switch this to do a non-cascading deletion of the Deployment, mutate the ReplicaSet
|
||||
// once it has no owner reference, then recreate the Deployment if we ever proceed with
|
||||
// https://github.com/kubernetes/kubernetes/issues/44237
|
||||
framework.Logf("Mock a hash collision")
|
||||
newRS, err := deploymentutil.GetNewReplicaSet(deployment, c)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
var nilRs *extensions.ReplicaSet
|
||||
Expect(newRS).NotTo(Equal(nilRs))
|
||||
_, err = framework.UpdateReplicaSetWithRetries(c, ns, newRS.Name, func(update *extensions.ReplicaSet) {
|
||||
*update.Spec.Template.Spec.TerminationGracePeriodSeconds = int64(5)
|
||||
})
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
framework.Logf("Expect deployment collision counter to increment")
|
||||
if err := wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
|
||||
d, err := c.Extensions().Deployments(ns).Get(deploymentName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
framework.Logf("cannot get deployment %q: %v", deploymentName, err)
|
||||
return false, nil
|
||||
}
|
||||
framework.Logf(spew.Sprintf("deployment status: %#v", d.Status))
|
||||
return d.Status.CollisionCount != nil && *d.Status.CollisionCount == int64(1), nil
|
||||
}); err != nil {
|
||||
framework.Failf("Failed to increment collision counter for deployment %q: %v", deploymentName, err)
|
||||
}
|
||||
|
||||
framework.Logf("Expect a new ReplicaSet to be created")
|
||||
err = framework.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, "2", nginxImage)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
}
|
||||
|
@@ -3348,9 +3348,10 @@ func WatchRecreateDeployment(c clientset.Interface, d *extensions.Deployment) er
|
||||
}
|
||||
|
||||
// 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.
|
||||
// Note that deployment revision and its new RS revision should be updated shortly most of the time, but an overwhelmed RS controller
|
||||
// may result in taking longer to relabel a RS.
|
||||
func WaitForDeploymentRevisionAndImage(c clientset.Interface, ns, deploymentName string, revision, image string) error {
|
||||
return testutil.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, revision, image, Logf, Poll, pollShortTimeout)
|
||||
return testutil.WaitForDeploymentRevisionAndImage(c, ns, deploymentName, revision, image, Logf, Poll, pollLongTimeout)
|
||||
}
|
||||
|
||||
// CheckNewRSAnnotations check if the new RS's annotation is as expected
|
||||
@@ -3486,16 +3487,17 @@ func WaitForPartialEvents(c clientset.Interface, ns string, objOrRef runtime.Obj
|
||||
|
||||
type updateDeploymentFunc func(d *extensions.Deployment)
|
||||
|
||||
func UpdateDeploymentWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateDeploymentFunc) (deployment *extensions.Deployment, err error) {
|
||||
deployments := c.Extensions().Deployments(namespace)
|
||||
func UpdateDeploymentWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateDeploymentFunc) (*extensions.Deployment, error) {
|
||||
var deployment *extensions.Deployment
|
||||
var updateErr error
|
||||
pollErr := wait.Poll(10*time.Millisecond, 1*time.Minute, func() (bool, error) {
|
||||
if deployment, err = deployments.Get(name, metav1.GetOptions{}); err != nil {
|
||||
pollErr := wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) {
|
||||
var err error
|
||||
if deployment, err = c.Extensions().Deployments(namespace).Get(name, metav1.GetOptions{}); err != nil {
|
||||
return false, err
|
||||
}
|
||||
// Apply the update, then attempt to push it to the apiserver.
|
||||
applyUpdate(deployment)
|
||||
if deployment, err = deployments.Update(deployment); err == nil {
|
||||
if deployment, err = c.Extensions().Deployments(namespace).Update(deployment); err == nil {
|
||||
Logf("Updating deployment %s", name)
|
||||
return true, nil
|
||||
}
|
||||
@@ -3513,7 +3515,7 @@ type updateRsFunc func(d *extensions.ReplicaSet)
|
||||
func UpdateReplicaSetWithRetries(c clientset.Interface, namespace, name string, applyUpdate updateRsFunc) (*extensions.ReplicaSet, error) {
|
||||
var rs *extensions.ReplicaSet
|
||||
var updateErr error
|
||||
pollErr := wait.PollImmediate(10*time.Millisecond, 1*time.Minute, func() (bool, error) {
|
||||
pollErr := wait.PollImmediate(1*time.Second, 1*time.Minute, func() (bool, error) {
|
||||
var err error
|
||||
if rs, err = c.Extensions().ReplicaSets(namespace).Get(name, metav1.GetOptions{}); err != nil {
|
||||
return false, err
|
||||
|
Reference in New Issue
Block a user