Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
| ... | ... |
@@ -139,7 +139,7 @@ clone git github.com/docker/docker-credential-helpers v0.3.0 |
| 139 | 139 |
clone git github.com/docker/containerd 0ac3cd1be170d180b2baed755e8f0da547ceb267 |
| 140 | 140 |
|
| 141 | 141 |
# cluster |
| 142 |
-clone git github.com/docker/swarmkit 9ee5fc3b8db5de8c8593a57bc45fc178f74ceee1 |
|
| 142 |
+clone git github.com/docker/swarmkit 38857c06dafcf939a56d2650d8e0011b5aace384 |
|
| 143 | 143 |
clone git github.com/golang/mock bd3c8e81be01eef76d4b503f5e687d2d1354d2d9 |
| 144 | 144 |
clone git github.com/gogo/protobuf 43a2e0b1c32252bfbbdf81f7faa7a88fb3fa4028 |
| 145 | 145 |
clone git github.com/cloudflare/cfssl b895b0549c0ff676f92cf09ba971ae02bb41367b |
| ... | ... |
@@ -43,11 +43,8 @@ type NodeConfig struct {
|
| 43 | 43 |
// remote managers and certificates. |
| 44 | 44 |
StateDir string |
| 45 | 45 |
|
| 46 |
- // CAHash to be used on the first certificate request. |
|
| 47 |
- CAHash string |
|
| 48 |
- |
|
| 49 |
- // Secret to be used on the first certificate request. |
|
| 50 |
- Secret string |
|
| 46 |
+ // JoinToken is the token to be used on the first certificate request. |
|
| 47 |
+ JoinToken string |
|
| 51 | 48 |
|
| 52 | 49 |
// ExternalCAs is a list of CAs to which a manager node |
| 53 | 50 |
// will make certificate signing requests for node certificates. |
| ... | ... |
@@ -73,9 +70,6 @@ type NodeConfig struct {
|
| 73 | 73 |
// HeartbeatTick defines the amount of ticks between each |
| 74 | 74 |
// heartbeat sent to other members for health-check purposes |
| 75 | 75 |
HeartbeatTick uint32 |
| 76 |
- |
|
| 77 |
- // todo: temporary to bypass promotion not working yet |
|
| 78 |
- IsManager bool |
|
| 79 | 76 |
} |
| 80 | 77 |
|
| 81 | 78 |
// Node implements the primary node functionality for a member of a swarm |
| ... | ... |
@@ -193,11 +187,6 @@ func (n *Node) run(ctx context.Context) (err error) {
|
| 193 | 193 |
} |
| 194 | 194 |
} |
| 195 | 195 |
|
| 196 |
- csrRole := n.role |
|
| 197 |
- if n.config.IsManager { // todo: temporary
|
|
| 198 |
- csrRole = ca.ManagerRole |
|
| 199 |
- } |
|
| 200 |
- |
|
| 201 | 196 |
// Obtain new certs and setup TLS certificates renewal for this node: |
| 202 | 197 |
// - We call LoadOrCreateSecurityConfig which blocks until a valid certificate has been issued |
| 203 | 198 |
// - We retrieve the nodeID from LoadOrCreateSecurityConfig through the info channel. This allows |
| ... | ... |
@@ -220,7 +209,7 @@ func (n *Node) run(ctx context.Context) (err error) {
|
| 220 | 220 |
}() |
| 221 | 221 |
|
| 222 | 222 |
certDir := filepath.Join(n.config.StateDir, "certificates") |
| 223 |
- securityConfig, err := ca.LoadOrCreateSecurityConfig(ctx, certDir, n.config.CAHash, n.config.Secret, csrRole, picker.NewPicker(n.remotes), issueResponseChan) |
|
| 223 |
+ securityConfig, err := ca.LoadOrCreateSecurityConfig(ctx, certDir, n.config.JoinToken, ca.ManagerRole, picker.NewPicker(n.remotes), issueResponseChan) |
|
| 224 | 224 |
if err != nil {
|
| 225 | 225 |
return err |
| 226 | 226 |
} |
| ... | ... |
@@ -93,7 +93,7 @@ func (tm *taskManager) run(ctx context.Context) {
|
| 93 | 93 |
case <-run: |
| 94 | 94 |
// always check for shutdown before running. |
| 95 | 95 |
select {
|
| 96 |
- case <-shutdown: |
|
| 96 |
+ case <-tm.shutdown: |
|
| 97 | 97 |
continue // ignore run request and handle shutdown |
| 98 | 98 |
case <-tm.closed: |
| 99 | 99 |
continue |
| ... | ... |
@@ -142,6 +142,13 @@ func (tm *taskManager) run(ctx context.Context) {
|
| 142 | 142 |
// goal is to decide whether or not we re-dispatch the operation. |
| 143 | 143 |
cancel = nil |
| 144 | 144 |
|
| 145 |
+ select {
|
|
| 146 |
+ case <-tm.shutdown: |
|
| 147 |
+ shutdown = tm.shutdown // re-enable the shutdown branch |
|
| 148 |
+ continue // no dispatch if we are in shutdown. |
|
| 149 |
+ default: |
|
| 150 |
+ } |
|
| 151 |
+ |
|
| 145 | 152 |
switch err {
|
| 146 | 153 |
case exec.ErrTaskNoop: |
| 147 | 154 |
if !updated {
|
| ... | ... |
@@ -203,6 +210,12 @@ func (tm *taskManager) run(ctx context.Context) {
|
| 203 | 203 |
if cancel != nil {
|
| 204 | 204 |
// cancel outstanding operation. |
| 205 | 205 |
cancel() |
| 206 |
+ |
|
| 207 |
+ // subtle: after a cancellation, we want to avoid busy wait |
|
| 208 |
+ // here. this gets renabled in the errs branch and we'll come |
|
| 209 |
+ // back around and try shutdown again. |
|
| 210 |
+ shutdown = nil // turn off this branch until op proceeds |
|
| 211 |
+ continue // wait until operation actually exits. |
|
| 206 | 212 |
} |
| 207 | 213 |
|
| 208 | 214 |
// TODO(stevvooe): This should be left for the repear. |
| ... | ... |
@@ -51,11 +51,13 @@ func (*NodeCertificateStatusResponse) ProtoMessage() {}
|
| 51 | 51 |
func (*NodeCertificateStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorCa, []int{1} }
|
| 52 | 52 |
|
| 53 | 53 |
type IssueNodeCertificateRequest struct {
|
| 54 |
+ // DEPRECATED: Role is now selected based on which secret is matched. |
|
| 54 | 55 |
Role NodeRole `protobuf:"varint,1,opt,name=role,proto3,enum=docker.swarmkit.v1.NodeRole" json:"role,omitempty"` |
| 55 |
- CSR []byte `protobuf:"bytes,2,opt,name=csr,proto3" json:"csr,omitempty"` |
|
| 56 |
- // Secret represents a user-provided string that is necessary for new |
|
| 56 |
+ // CSR is the certificate signing request. |
|
| 57 |
+ CSR []byte `protobuf:"bytes,2,opt,name=csr,proto3" json:"csr,omitempty"` |
|
| 58 |
+ // Token represents a user-provided string that is necessary for new |
|
| 57 | 59 |
// nodes to join the cluster |
| 58 |
- Secret string `protobuf:"bytes,3,opt,name=secret,proto3" json:"secret,omitempty"` |
|
| 60 |
+ Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` |
|
| 59 | 61 |
} |
| 60 | 62 |
|
| 61 | 63 |
func (m *IssueNodeCertificateRequest) Reset() { *m = IssueNodeCertificateRequest{} }
|
| ... | ... |
@@ -165,9 +167,9 @@ func (m *IssueNodeCertificateRequest) Copy() *IssueNodeCertificateRequest {
|
| 165 | 165 |
} |
| 166 | 166 |
|
| 167 | 167 |
o := &IssueNodeCertificateRequest{
|
| 168 |
- Role: m.Role, |
|
| 169 |
- CSR: m.CSR, |
|
| 170 |
- Secret: m.Secret, |
|
| 168 |
+ Role: m.Role, |
|
| 169 |
+ CSR: m.CSR, |
|
| 170 |
+ Token: m.Token, |
|
| 171 | 171 |
} |
| 172 | 172 |
|
| 173 | 173 |
return o |
| ... | ... |
@@ -241,7 +243,7 @@ func (this *IssueNodeCertificateRequest) GoString() string {
|
| 241 | 241 |
s = append(s, "&api.IssueNodeCertificateRequest{")
|
| 242 | 242 |
s = append(s, "Role: "+fmt.Sprintf("%#v", this.Role)+",\n")
|
| 243 | 243 |
s = append(s, "CSR: "+fmt.Sprintf("%#v", this.CSR)+",\n")
|
| 244 |
- s = append(s, "Secret: "+fmt.Sprintf("%#v", this.Secret)+",\n")
|
|
| 244 |
+ s = append(s, "Token: "+fmt.Sprintf("%#v", this.Token)+",\n")
|
|
| 245 | 245 |
s = append(s, "}") |
| 246 | 246 |
return strings.Join(s, "") |
| 247 | 247 |
} |
| ... | ... |
@@ -556,11 +558,11 @@ func (m *IssueNodeCertificateRequest) MarshalTo(data []byte) (int, error) {
|
| 556 | 556 |
i = encodeVarintCa(data, i, uint64(len(m.CSR))) |
| 557 | 557 |
i += copy(data[i:], m.CSR) |
| 558 | 558 |
} |
| 559 |
- if len(m.Secret) > 0 {
|
|
| 559 |
+ if len(m.Token) > 0 {
|
|
| 560 | 560 |
data[i] = 0x1a |
| 561 | 561 |
i++ |
| 562 |
- i = encodeVarintCa(data, i, uint64(len(m.Secret))) |
|
| 563 |
- i += copy(data[i:], m.Secret) |
|
| 562 |
+ i = encodeVarintCa(data, i, uint64(len(m.Token))) |
|
| 563 |
+ i += copy(data[i:], m.Token) |
|
| 564 | 564 |
} |
| 565 | 565 |
return i, nil |
| 566 | 566 |
} |
| ... | ... |
@@ -836,7 +838,7 @@ func (m *IssueNodeCertificateRequest) Size() (n int) {
|
| 836 | 836 |
if l > 0 {
|
| 837 | 837 |
n += 1 + l + sovCa(uint64(l)) |
| 838 | 838 |
} |
| 839 |
- l = len(m.Secret) |
|
| 839 |
+ l = len(m.Token) |
|
| 840 | 840 |
if l > 0 {
|
| 841 | 841 |
n += 1 + l + sovCa(uint64(l)) |
| 842 | 842 |
} |
| ... | ... |
@@ -913,7 +915,7 @@ func (this *IssueNodeCertificateRequest) String() string {
|
| 913 | 913 |
s := strings.Join([]string{`&IssueNodeCertificateRequest{`,
|
| 914 | 914 |
`Role:` + fmt.Sprintf("%v", this.Role) + `,`,
|
| 915 | 915 |
`CSR:` + fmt.Sprintf("%v", this.CSR) + `,`,
|
| 916 |
- `Secret:` + fmt.Sprintf("%v", this.Secret) + `,`,
|
|
| 916 |
+ `Token:` + fmt.Sprintf("%v", this.Token) + `,`,
|
|
| 917 | 917 |
`}`, |
| 918 | 918 |
}, "") |
| 919 | 919 |
return s |
| ... | ... |
@@ -1232,7 +1234,7 @@ func (m *IssueNodeCertificateRequest) Unmarshal(data []byte) error {
|
| 1232 | 1232 |
iNdEx = postIndex |
| 1233 | 1233 |
case 3: |
| 1234 | 1234 |
if wireType != 2 {
|
| 1235 |
- return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType)
|
|
| 1235 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Token", wireType)
|
|
| 1236 | 1236 |
} |
| 1237 | 1237 |
var stringLen uint64 |
| 1238 | 1238 |
for shift := uint(0); ; shift += 7 {
|
| ... | ... |
@@ -1257,7 +1259,7 @@ func (m *IssueNodeCertificateRequest) Unmarshal(data []byte) error {
|
| 1257 | 1257 |
if postIndex > l {
|
| 1258 | 1258 |
return io.ErrUnexpectedEOF |
| 1259 | 1259 |
} |
| 1260 |
- m.Secret = string(data[iNdEx:postIndex]) |
|
| 1260 |
+ m.Token = string(data[iNdEx:postIndex]) |
|
| 1261 | 1261 |
iNdEx = postIndex |
| 1262 | 1262 |
default: |
| 1263 | 1263 |
iNdEx = preIndex |
| ... | ... |
@@ -1615,36 +1617,36 @@ var ( |
| 1615 | 1615 |
) |
| 1616 | 1616 |
|
| 1617 | 1617 |
var fileDescriptorCa = []byte{
|
| 1618 |
- // 487 bytes of a gzipped FileDescriptorProto |
|
| 1619 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x94, 0xcf, 0x6e, 0xd3, 0x40, |
|
| 1620 |
- 0x10, 0xc6, 0x59, 0x07, 0xa5, 0x65, 0x52, 0x05, 0xb4, 0x14, 0x14, 0x52, 0x37, 0xad, 0xcc, 0x01, |
|
| 1621 |
- 0x4e, 0x4e, 0x6a, 0x6e, 0x9c, 0x48, 0x8c, 0x84, 0x72, 0x00, 0xa1, 0xcd, 0x03, 0x20, 0xd7, 0x19, |
|
| 1622 |
- 0x82, 0xd5, 0x26, 0x6b, 0x76, 0x37, 0x20, 0x6e, 0x08, 0x24, 0x0e, 0xdc, 0x11, 0x9c, 0x78, 0x04, |
|
| 1623 |
- 0x9e, 0xa3, 0xe2, 0xc4, 0x91, 0x13, 0xa2, 0x7d, 0x00, 0xc4, 0x23, 0xb0, 0xbb, 0x71, 0x48, 0xff, |
|
| 1624 |
- 0xac, 0xa3, 0xf6, 0x30, 0x8a, 0x77, 0x76, 0xbe, 0x2f, 0xbf, 0x9d, 0xf1, 0x1a, 0x56, 0xd3, 0x24, |
|
| 1625 |
- 0xcc, 0x05, 0x57, 0x9c, 0xd2, 0x21, 0x4f, 0xf7, 0x50, 0x84, 0xf2, 0x75, 0x22, 0xc6, 0x7b, 0x99, |
|
| 1626 |
- 0x0a, 0x5f, 0xed, 0x34, 0x6b, 0xea, 0x4d, 0x8e, 0x72, 0x56, 0xd0, 0xac, 0xc9, 0x1c, 0xd3, 0xf9, |
|
| 1627 |
- 0x62, 0x7d, 0xc4, 0x47, 0xdc, 0x3e, 0xb6, 0xcd, 0x53, 0x91, 0xbd, 0x9e, 0xef, 0x4f, 0x47, 0xd9, |
|
| 1628 |
- 0xa4, 0x3d, 0xfb, 0x99, 0x25, 0x83, 0x18, 0xfc, 0x27, 0x7c, 0x88, 0x31, 0x0a, 0x95, 0x3d, 0xcf, |
|
| 1629 |
- 0xd2, 0x44, 0xe1, 0x40, 0x25, 0x6a, 0x2a, 0x19, 0xbe, 0x9c, 0xa2, 0x54, 0xf4, 0x36, 0xac, 0x4c, |
|
| 1630 |
- 0xf4, 0xfe, 0xb3, 0x6c, 0xd8, 0x20, 0xdb, 0xe4, 0xee, 0x95, 0x1e, 0x1c, 0xfd, 0xda, 0xaa, 0x1a, |
|
| 1631 |
- 0x49, 0xff, 0x21, 0xab, 0x9a, 0xad, 0xfe, 0x30, 0xf8, 0x4a, 0x60, 0xb3, 0xc4, 0x45, 0xe6, 0x7c, |
|
| 1632 |
- 0x22, 0x91, 0xde, 0x87, 0xaa, 0xb4, 0x19, 0xeb, 0x52, 0x8b, 0x82, 0xf0, 0xec, 0x81, 0xc2, 0xbe, |
|
| 1633 |
- 0x94, 0xd3, 0x64, 0x92, 0xce, 0xb5, 0x85, 0x82, 0x76, 0xa1, 0x96, 0x2e, 0x8c, 0x1b, 0x9e, 0x35, |
|
| 1634 |
- 0xd8, 0x72, 0x19, 0x1c, 0xfb, 0x7f, 0x76, 0x5c, 0x13, 0xbc, 0x23, 0xb0, 0x61, 0xdc, 0xf1, 0x14, |
|
| 1635 |
- 0xe5, 0xfc, 0x94, 0x1d, 0xb8, 0x2c, 0xf8, 0x3e, 0x5a, 0xb8, 0x7a, 0xe4, 0xbb, 0xbc, 0x8d, 0x92, |
|
| 1636 |
- 0xe9, 0x1a, 0x66, 0x2b, 0xe9, 0x2d, 0xa8, 0xa4, 0x52, 0x58, 0x98, 0xb5, 0xde, 0x8a, 0xee, 0x49, |
|
| 1637 |
- 0x25, 0x1e, 0x30, 0x66, 0x72, 0xf4, 0xa6, 0x3e, 0x2b, 0xa6, 0x02, 0x55, 0xa3, 0x62, 0x3a, 0xc6, |
|
| 1638 |
- 0x8a, 0x55, 0xf0, 0x89, 0x80, 0xef, 0x86, 0x28, 0x9a, 0x74, 0x9e, 0x5e, 0xd3, 0xa7, 0x70, 0xd5, |
|
| 1639 |
- 0x16, 0x8d, 0x71, 0xbc, 0x8b, 0x42, 0xbe, 0xc8, 0x72, 0x0b, 0x51, 0x8f, 0xee, 0x94, 0x51, 0x0f, |
|
| 1640 |
- 0xf4, 0x9b, 0x11, 0x3e, 0xfe, 0x5f, 0xce, 0xea, 0x46, 0xbf, 0x58, 0x07, 0x9b, 0xb0, 0xf1, 0x08, |
|
| 1641 |
- 0x15, 0xe3, 0x5c, 0xc5, 0xdd, 0xb3, 0xbd, 0x09, 0x1e, 0x80, 0xef, 0xde, 0x2e, 0xa8, 0xb7, 0x4f, |
|
| 1642 |
- 0x8e, 0xc7, 0x90, 0xaf, 0x9d, 0xe8, 0x7e, 0xf4, 0x91, 0x80, 0x17, 0x77, 0xe9, 0x7b, 0x02, 0xeb, |
|
| 1643 |
- 0x2e, 0x27, 0xda, 0x76, 0x91, 0x2f, 0x41, 0x6a, 0x76, 0xce, 0x2f, 0x98, 0x41, 0x06, 0xab, 0xdf, |
|
| 1644 |
- 0xbf, 0xfd, 0xf9, 0xe2, 0x79, 0xd7, 0x48, 0xf4, 0xd9, 0x03, 0xdb, 0xd2, 0x02, 0xc8, 0x35, 0x10, |
|
| 1645 |
- 0x37, 0xd0, 0x92, 0xf7, 0xc7, 0x0d, 0xb4, 0x6c, 0xd6, 0x0b, 0x20, 0xfa, 0x81, 0xc0, 0x0d, 0xe7, |
|
| 1646 |
- 0xe5, 0xa1, 0x9d, 0xb2, 0x89, 0x96, 0xdd, 0xd6, 0xe6, 0xce, 0x05, 0x14, 0xa7, 0x41, 0x7a, 0xfe, |
|
| 1647 |
- 0xc1, 0x61, 0xeb, 0xd2, 0x4f, 0x1d, 0x7f, 0x0f, 0x5b, 0xe4, 0xed, 0x51, 0x8b, 0x1c, 0xe8, 0xf8, |
|
| 1648 |
- 0xa1, 0xe3, 0xb7, 0x8e, 0xdd, 0xaa, 0xfd, 0x5e, 0xdc, 0xfb, 0x17, 0x00, 0x00, 0xff, 0xff, 0x72, |
|
| 1649 |
- 0xd0, 0xad, 0xdf, 0x94, 0x04, 0x00, 0x00, |
|
| 1618 |
+ // 490 bytes of a gzipped FileDescriptorProto |
|
| 1619 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x94, 0xcf, 0x8e, 0xd3, 0x30, |
|
| 1620 |
+ 0x10, 0xc6, 0x71, 0x0a, 0xdd, 0x65, 0xba, 0x2a, 0xc8, 0x14, 0xa9, 0x74, 0xb3, 0xdd, 0x95, 0x39, |
|
| 1621 |
+ 0xc0, 0x29, 0xdd, 0x0d, 0x9c, 0x38, 0xd1, 0x06, 0x09, 0xf5, 0x00, 0x42, 0xee, 0x03, 0xa0, 0x6c, |
|
| 1622 |
+ 0x6a, 0x4a, 0xd4, 0x6d, 0x1c, 0x62, 0x07, 0xc4, 0x0d, 0x09, 0xc4, 0x81, 0x3b, 0x82, 0x13, 0x8f, |
|
| 1623 |
+ 0xc0, 0x73, 0xac, 0x38, 0x71, 0xe4, 0x84, 0xd8, 0x7d, 0x00, 0xc4, 0x23, 0x60, 0x3b, 0x29, 0xdd, |
|
| 1624 |
+ 0x3f, 0x4e, 0x55, 0x0e, 0xa3, 0xc6, 0xe3, 0xf9, 0xbe, 0xfe, 0x32, 0x63, 0x07, 0xd6, 0xa3, 0xd0, |
|
| 1625 |
+ 0x4b, 0x33, 0x2e, 0x39, 0xc6, 0x63, 0x1e, 0x4d, 0x59, 0xe6, 0x89, 0x57, 0x61, 0x36, 0x9b, 0xc6, |
|
| 1626 |
+ 0xd2, 0x7b, 0xb9, 0xd7, 0x69, 0xc8, 0xd7, 0x29, 0x13, 0x45, 0x41, 0xa7, 0x21, 0x52, 0x16, 0xcd, |
|
| 1627 |
+ 0x17, 0xad, 0x09, 0x9f, 0x70, 0xf3, 0xd8, 0xd3, 0x4f, 0x65, 0xf6, 0x5a, 0x7a, 0x90, 0x4f, 0xe2, |
|
| 1628 |
+ 0xa4, 0x57, 0xfc, 0x14, 0x49, 0x12, 0x80, 0xfb, 0x98, 0x8f, 0x59, 0xc0, 0x32, 0x19, 0x3f, 0x8b, |
|
| 1629 |
+ 0xa3, 0x50, 0xb2, 0x91, 0x0c, 0x65, 0x2e, 0x28, 0x7b, 0x91, 0x33, 0x21, 0xf1, 0x4d, 0x58, 0x4b, |
|
| 1630 |
+ 0xd4, 0xfe, 0xd3, 0x78, 0xdc, 0x46, 0x3b, 0xe8, 0xf6, 0xe5, 0x01, 0x1c, 0xff, 0xdc, 0xae, 0x6b, |
|
| 1631 |
+ 0xc9, 0xf0, 0x01, 0xad, 0xeb, 0xad, 0xe1, 0x98, 0x7c, 0x41, 0xb0, 0x55, 0xe1, 0x22, 0x52, 0x9e, |
|
| 1632 |
+ 0x08, 0x86, 0xef, 0x41, 0x5d, 0x98, 0x8c, 0x71, 0x69, 0xf8, 0xc4, 0x3b, 0xff, 0x42, 0xde, 0x50, |
|
| 1633 |
+ 0x88, 0x3c, 0x4c, 0xa2, 0xb9, 0xb6, 0x54, 0xe0, 0x3e, 0x34, 0xa2, 0x85, 0x71, 0xdb, 0x31, 0x06, |
|
| 1634 |
+ 0xdb, 0x36, 0x83, 0x13, 0xff, 0x4f, 0x4f, 0x6a, 0xc8, 0x3b, 0x04, 0x9b, 0xda, 0x9d, 0x9d, 0xa1, |
|
| 1635 |
+ 0x9c, 0xbf, 0xe5, 0x5d, 0xb8, 0x98, 0xf1, 0x03, 0x66, 0xe0, 0x9a, 0xbe, 0x6b, 0xf3, 0xd6, 0x4a, |
|
| 1636 |
+ 0xaa, 0x6a, 0x06, 0x4e, 0x1b, 0x51, 0x53, 0x8d, 0x6f, 0x40, 0x2d, 0x12, 0x99, 0x01, 0xda, 0x18, |
|
| 1637 |
+ 0xac, 0xa9, 0xbe, 0xd4, 0x82, 0x11, 0xa5, 0x3a, 0x87, 0x5b, 0x70, 0x49, 0xf2, 0x29, 0x4b, 0xda, |
|
| 1638 |
+ 0x35, 0xdd, 0x34, 0x5a, 0x2c, 0xc8, 0x47, 0x04, 0xae, 0x1d, 0xa3, 0x6c, 0xd3, 0x2a, 0xdd, 0xc6, |
|
| 1639 |
+ 0x4f, 0xe0, 0x8a, 0x29, 0x9a, 0xb1, 0xd9, 0x3e, 0xcb, 0xc4, 0xf3, 0x38, 0x35, 0x08, 0x4d, 0xff, |
|
| 1640 |
+ 0x56, 0x15, 0xf7, 0x48, 0x9d, 0x0d, 0xef, 0xd1, 0xbf, 0x72, 0xda, 0xd4, 0xfa, 0xc5, 0x9a, 0x6c, |
|
| 1641 |
+ 0xc1, 0xe6, 0x43, 0x26, 0x29, 0xe7, 0x32, 0xe8, 0x9f, 0xef, 0x0e, 0xb9, 0x0f, 0xae, 0x7d, 0xbb, |
|
| 1642 |
+ 0xa4, 0xde, 0x39, 0x3d, 0x20, 0x4d, 0xbe, 0x71, 0xaa, 0xff, 0xfe, 0x07, 0x04, 0x4e, 0xd0, 0xc7, |
|
| 1643 |
+ 0x6f, 0x11, 0xb4, 0x6c, 0x4e, 0xb8, 0x67, 0x23, 0x5f, 0x82, 0xd4, 0xd9, 0x5d, 0x5d, 0x50, 0x40, |
|
| 1644 |
+ 0x92, 0xf5, 0x6f, 0x5f, 0x7f, 0x7f, 0x76, 0x9c, 0xab, 0xc8, 0xff, 0xe4, 0x80, 0x69, 0x69, 0x09, |
|
| 1645 |
+ 0x64, 0x1b, 0x88, 0x1d, 0x68, 0xc9, 0x09, 0xb2, 0x03, 0x2d, 0x9b, 0xf5, 0x02, 0x08, 0xbf, 0x47, |
|
| 1646 |
+ 0x70, 0xdd, 0x7a, 0x7d, 0xf0, 0x6e, 0xd5, 0x44, 0xab, 0xee, 0x6b, 0x67, 0xef, 0x3f, 0x14, 0x67, |
|
| 1647 |
+ 0x41, 0x06, 0xee, 0xe1, 0x51, 0xf7, 0xc2, 0x0f, 0x15, 0x7f, 0x8e, 0xba, 0xe8, 0xcd, 0x71, 0x17, |
|
| 1648 |
+ 0x1d, 0xaa, 0xf8, 0xae, 0xe2, 0x97, 0x8a, 0xfd, 0xba, 0xf9, 0x62, 0xdc, 0xf9, 0x1b, 0x00, 0x00, |
|
| 1649 |
+ 0xff, 0xff, 0xb3, 0xf8, 0x41, 0xef, 0x96, 0x04, 0x00, 0x00, |
|
| 1650 | 1650 |
} |
| ... | ... |
@@ -34,11 +34,15 @@ message NodeCertificateStatusResponse {
|
| 34 | 34 |
} |
| 35 | 35 |
|
| 36 | 36 |
message IssueNodeCertificateRequest {
|
| 37 |
- NodeRole role = 1; |
|
| 37 |
+ // DEPRECATED: Role is now selected based on which secret is matched. |
|
| 38 |
+ NodeRole role = 1 [deprecated=true]; |
|
| 39 |
+ |
|
| 40 |
+ // CSR is the certificate signing request. |
|
| 38 | 41 |
bytes csr = 2 [(gogoproto.customname) = "CSR"]; |
| 39 |
- // Secret represents a user-provided string that is necessary for new |
|
| 42 |
+ |
|
| 43 |
+ // Token represents a user-provided string that is necessary for new |
|
| 40 | 44 |
// nodes to join the cluster |
| 41 |
- string secret = 3; |
|
| 45 |
+ string token = 3; |
|
| 42 | 46 |
} |
| 43 | 47 |
|
| 44 | 48 |
message IssueNodeCertificateResponse {
|
| ... | ... |
@@ -403,6 +403,17 @@ func (m *ListClustersResponse) Reset() { *m = ListClustersRes
|
| 403 | 403 |
func (*ListClustersResponse) ProtoMessage() {}
|
| 404 | 404 |
func (*ListClustersResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{35} }
|
| 405 | 405 |
|
| 406 |
+type JoinTokenRotation struct {
|
|
| 407 |
+ // RotateWorkerToken tells UpdateCluster to rotate the worker secret. |
|
| 408 |
+ RotateWorkerToken bool `protobuf:"varint,1,opt,name=rotate_worker_token,json=rotateWorkerToken,proto3" json:"rotate_worker_token,omitempty"` |
|
| 409 |
+ // RotateManagerSecret tells UpdateCluster to rotate the manager secret. |
|
| 410 |
+ RotateManagerToken bool `protobuf:"varint,2,opt,name=rotate_manager_token,json=rotateManagerToken,proto3" json:"rotate_manager_token,omitempty"` |
|
| 411 |
+} |
|
| 412 |
+ |
|
| 413 |
+func (m *JoinTokenRotation) Reset() { *m = JoinTokenRotation{} }
|
|
| 414 |
+func (*JoinTokenRotation) ProtoMessage() {}
|
|
| 415 |
+func (*JoinTokenRotation) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{36} }
|
|
| 416 |
+ |
|
| 406 | 417 |
type UpdateClusterRequest struct {
|
| 407 | 418 |
// ClusterID is the cluster ID to update. |
| 408 | 419 |
ClusterID string `protobuf:"bytes,1,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` |
| ... | ... |
@@ -410,11 +421,13 @@ type UpdateClusterRequest struct {
|
| 410 | 410 |
ClusterVersion *Version `protobuf:"bytes,2,opt,name=cluster_version,json=clusterVersion" json:"cluster_version,omitempty"` |
| 411 | 411 |
// Spec is the new spec to apply to the cluster. |
| 412 | 412 |
Spec *ClusterSpec `protobuf:"bytes,3,opt,name=spec" json:"spec,omitempty"` |
| 413 |
+ // Rotation contains flags for join token rotation |
|
| 414 |
+ Rotation JoinTokenRotation `protobuf:"bytes,4,opt,name=rotation" json:"rotation"` |
|
| 413 | 415 |
} |
| 414 | 416 |
|
| 415 | 417 |
func (m *UpdateClusterRequest) Reset() { *m = UpdateClusterRequest{} }
|
| 416 | 418 |
func (*UpdateClusterRequest) ProtoMessage() {}
|
| 417 |
-func (*UpdateClusterRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{36} }
|
|
| 419 |
+func (*UpdateClusterRequest) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{37} }
|
|
| 418 | 420 |
|
| 419 | 421 |
type UpdateClusterResponse struct {
|
| 420 | 422 |
Cluster *Cluster `protobuf:"bytes,1,opt,name=cluster" json:"cluster,omitempty"` |
| ... | ... |
@@ -422,7 +435,7 @@ type UpdateClusterResponse struct {
|
| 422 | 422 |
|
| 423 | 423 |
func (m *UpdateClusterResponse) Reset() { *m = UpdateClusterResponse{} }
|
| 424 | 424 |
func (*UpdateClusterResponse) ProtoMessage() {}
|
| 425 |
-func (*UpdateClusterResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{37} }
|
|
| 425 |
+func (*UpdateClusterResponse) Descriptor() ([]byte, []int) { return fileDescriptorControl, []int{38} }
|
|
| 426 | 426 |
|
| 427 | 427 |
func init() {
|
| 428 | 428 |
proto.RegisterType((*GetNodeRequest)(nil), "docker.swarmkit.v1.GetNodeRequest") |
| ... | ... |
@@ -466,6 +479,7 @@ func init() {
|
| 466 | 466 |
proto.RegisterType((*ListClustersRequest)(nil), "docker.swarmkit.v1.ListClustersRequest") |
| 467 | 467 |
proto.RegisterType((*ListClustersRequest_Filters)(nil), "docker.swarmkit.v1.ListClustersRequest.Filters") |
| 468 | 468 |
proto.RegisterType((*ListClustersResponse)(nil), "docker.swarmkit.v1.ListClustersResponse") |
| 469 |
+ proto.RegisterType((*JoinTokenRotation)(nil), "docker.swarmkit.v1.JoinTokenRotation") |
|
| 469 | 470 |
proto.RegisterType((*UpdateClusterRequest)(nil), "docker.swarmkit.v1.UpdateClusterRequest") |
| 470 | 471 |
proto.RegisterType((*UpdateClusterResponse)(nil), "docker.swarmkit.v1.UpdateClusterResponse") |
| 471 | 472 |
} |
| ... | ... |
@@ -1314,6 +1328,19 @@ func (m *ListClustersResponse) Copy() *ListClustersResponse {
|
| 1314 | 1314 |
return o |
| 1315 | 1315 |
} |
| 1316 | 1316 |
|
| 1317 |
+func (m *JoinTokenRotation) Copy() *JoinTokenRotation {
|
|
| 1318 |
+ if m == nil {
|
|
| 1319 |
+ return nil |
|
| 1320 |
+ } |
|
| 1321 |
+ |
|
| 1322 |
+ o := &JoinTokenRotation{
|
|
| 1323 |
+ RotateWorkerToken: m.RotateWorkerToken, |
|
| 1324 |
+ RotateManagerToken: m.RotateManagerToken, |
|
| 1325 |
+ } |
|
| 1326 |
+ |
|
| 1327 |
+ return o |
|
| 1328 |
+} |
|
| 1329 |
+ |
|
| 1317 | 1330 |
func (m *UpdateClusterRequest) Copy() *UpdateClusterRequest {
|
| 1318 | 1331 |
if m == nil {
|
| 1319 | 1332 |
return nil |
| ... | ... |
@@ -1323,6 +1350,7 @@ func (m *UpdateClusterRequest) Copy() *UpdateClusterRequest {
|
| 1323 | 1323 |
ClusterID: m.ClusterID, |
| 1324 | 1324 |
ClusterVersion: m.ClusterVersion.Copy(), |
| 1325 | 1325 |
Spec: m.Spec.Copy(), |
| 1326 |
+ Rotation: *m.Rotation.Copy(), |
|
| 1326 | 1327 |
} |
| 1327 | 1328 |
|
| 1328 | 1329 |
return o |
| ... | ... |
@@ -1882,11 +1910,22 @@ func (this *ListClustersResponse) GoString() string {
|
| 1882 | 1882 |
s = append(s, "}") |
| 1883 | 1883 |
return strings.Join(s, "") |
| 1884 | 1884 |
} |
| 1885 |
+func (this *JoinTokenRotation) GoString() string {
|
|
| 1886 |
+ if this == nil {
|
|
| 1887 |
+ return "nil" |
|
| 1888 |
+ } |
|
| 1889 |
+ s := make([]string, 0, 6) |
|
| 1890 |
+ s = append(s, "&api.JoinTokenRotation{")
|
|
| 1891 |
+ s = append(s, "RotateWorkerToken: "+fmt.Sprintf("%#v", this.RotateWorkerToken)+",\n")
|
|
| 1892 |
+ s = append(s, "RotateManagerToken: "+fmt.Sprintf("%#v", this.RotateManagerToken)+",\n")
|
|
| 1893 |
+ s = append(s, "}") |
|
| 1894 |
+ return strings.Join(s, "") |
|
| 1895 |
+} |
|
| 1885 | 1896 |
func (this *UpdateClusterRequest) GoString() string {
|
| 1886 | 1897 |
if this == nil {
|
| 1887 | 1898 |
return "nil" |
| 1888 | 1899 |
} |
| 1889 |
- s := make([]string, 0, 7) |
|
| 1900 |
+ s := make([]string, 0, 8) |
|
| 1890 | 1901 |
s = append(s, "&api.UpdateClusterRequest{")
|
| 1891 | 1902 |
s = append(s, "ClusterID: "+fmt.Sprintf("%#v", this.ClusterID)+",\n")
|
| 1892 | 1903 |
if this.ClusterVersion != nil {
|
| ... | ... |
@@ -1895,6 +1934,7 @@ func (this *UpdateClusterRequest) GoString() string {
|
| 1895 | 1895 |
if this.Spec != nil {
|
| 1896 | 1896 |
s = append(s, "Spec: "+fmt.Sprintf("%#v", this.Spec)+",\n")
|
| 1897 | 1897 |
} |
| 1898 |
+ s = append(s, "Rotation: "+strings.Replace(this.Rotation.GoString(), `&`, ``, 1)+",\n") |
|
| 1898 | 1899 |
s = append(s, "}") |
| 1899 | 1900 |
return strings.Join(s, "") |
| 1900 | 1901 |
} |
| ... | ... |
@@ -4038,6 +4078,44 @@ func (m *ListClustersResponse) MarshalTo(data []byte) (int, error) {
|
| 4038 | 4038 |
return i, nil |
| 4039 | 4039 |
} |
| 4040 | 4040 |
|
| 4041 |
+func (m *JoinTokenRotation) Marshal() (data []byte, err error) {
|
|
| 4042 |
+ size := m.Size() |
|
| 4043 |
+ data = make([]byte, size) |
|
| 4044 |
+ n, err := m.MarshalTo(data) |
|
| 4045 |
+ if err != nil {
|
|
| 4046 |
+ return nil, err |
|
| 4047 |
+ } |
|
| 4048 |
+ return data[:n], nil |
|
| 4049 |
+} |
|
| 4050 |
+ |
|
| 4051 |
+func (m *JoinTokenRotation) MarshalTo(data []byte) (int, error) {
|
|
| 4052 |
+ var i int |
|
| 4053 |
+ _ = i |
|
| 4054 |
+ var l int |
|
| 4055 |
+ _ = l |
|
| 4056 |
+ if m.RotateWorkerToken {
|
|
| 4057 |
+ data[i] = 0x8 |
|
| 4058 |
+ i++ |
|
| 4059 |
+ if m.RotateWorkerToken {
|
|
| 4060 |
+ data[i] = 1 |
|
| 4061 |
+ } else {
|
|
| 4062 |
+ data[i] = 0 |
|
| 4063 |
+ } |
|
| 4064 |
+ i++ |
|
| 4065 |
+ } |
|
| 4066 |
+ if m.RotateManagerToken {
|
|
| 4067 |
+ data[i] = 0x10 |
|
| 4068 |
+ i++ |
|
| 4069 |
+ if m.RotateManagerToken {
|
|
| 4070 |
+ data[i] = 1 |
|
| 4071 |
+ } else {
|
|
| 4072 |
+ data[i] = 0 |
|
| 4073 |
+ } |
|
| 4074 |
+ i++ |
|
| 4075 |
+ } |
|
| 4076 |
+ return i, nil |
|
| 4077 |
+} |
|
| 4078 |
+ |
|
| 4041 | 4079 |
func (m *UpdateClusterRequest) Marshal() (data []byte, err error) {
|
| 4042 | 4080 |
size := m.Size() |
| 4043 | 4081 |
data = make([]byte, size) |
| ... | ... |
@@ -4079,6 +4157,14 @@ func (m *UpdateClusterRequest) MarshalTo(data []byte) (int, error) {
|
| 4079 | 4079 |
} |
| 4080 | 4080 |
i += n22 |
| 4081 | 4081 |
} |
| 4082 |
+ data[i] = 0x22 |
|
| 4083 |
+ i++ |
|
| 4084 |
+ i = encodeVarintControl(data, i, uint64(m.Rotation.Size())) |
|
| 4085 |
+ n23, err := m.Rotation.MarshalTo(data[i:]) |
|
| 4086 |
+ if err != nil {
|
|
| 4087 |
+ return 0, err |
|
| 4088 |
+ } |
|
| 4089 |
+ i += n23 |
|
| 4082 | 4090 |
return i, nil |
| 4083 | 4091 |
} |
| 4084 | 4092 |
|
| ... | ... |
@@ -4101,11 +4187,11 @@ func (m *UpdateClusterResponse) MarshalTo(data []byte) (int, error) {
|
| 4101 | 4101 |
data[i] = 0xa |
| 4102 | 4102 |
i++ |
| 4103 | 4103 |
i = encodeVarintControl(data, i, uint64(m.Cluster.Size())) |
| 4104 |
- n23, err := m.Cluster.MarshalTo(data[i:]) |
|
| 4104 |
+ n24, err := m.Cluster.MarshalTo(data[i:]) |
|
| 4105 | 4105 |
if err != nil {
|
| 4106 | 4106 |
return 0, err |
| 4107 | 4107 |
} |
| 4108 |
- i += n23 |
|
| 4108 |
+ i += n24 |
|
| 4109 | 4109 |
} |
| 4110 | 4110 |
return i, nil |
| 4111 | 4111 |
} |
| ... | ... |
@@ -5052,6 +5138,18 @@ func (m *ListClustersResponse) Size() (n int) {
|
| 5052 | 5052 |
return n |
| 5053 | 5053 |
} |
| 5054 | 5054 |
|
| 5055 |
+func (m *JoinTokenRotation) Size() (n int) {
|
|
| 5056 |
+ var l int |
|
| 5057 |
+ _ = l |
|
| 5058 |
+ if m.RotateWorkerToken {
|
|
| 5059 |
+ n += 2 |
|
| 5060 |
+ } |
|
| 5061 |
+ if m.RotateManagerToken {
|
|
| 5062 |
+ n += 2 |
|
| 5063 |
+ } |
|
| 5064 |
+ return n |
|
| 5065 |
+} |
|
| 5066 |
+ |
|
| 5055 | 5067 |
func (m *UpdateClusterRequest) Size() (n int) {
|
| 5056 | 5068 |
var l int |
| 5057 | 5069 |
_ = l |
| ... | ... |
@@ -5067,6 +5165,8 @@ func (m *UpdateClusterRequest) Size() (n int) {
|
| 5067 | 5067 |
l = m.Spec.Size() |
| 5068 | 5068 |
n += 1 + l + sovControl(uint64(l)) |
| 5069 | 5069 |
} |
| 5070 |
+ l = m.Rotation.Size() |
|
| 5071 |
+ n += 1 + l + sovControl(uint64(l)) |
|
| 5070 | 5072 |
return n |
| 5071 | 5073 |
} |
| 5072 | 5074 |
|
| ... | ... |
@@ -5575,6 +5675,17 @@ func (this *ListClustersResponse) String() string {
|
| 5575 | 5575 |
}, "") |
| 5576 | 5576 |
return s |
| 5577 | 5577 |
} |
| 5578 |
+func (this *JoinTokenRotation) String() string {
|
|
| 5579 |
+ if this == nil {
|
|
| 5580 |
+ return "nil" |
|
| 5581 |
+ } |
|
| 5582 |
+ s := strings.Join([]string{`&JoinTokenRotation{`,
|
|
| 5583 |
+ `RotateWorkerToken:` + fmt.Sprintf("%v", this.RotateWorkerToken) + `,`,
|
|
| 5584 |
+ `RotateManagerToken:` + fmt.Sprintf("%v", this.RotateManagerToken) + `,`,
|
|
| 5585 |
+ `}`, |
|
| 5586 |
+ }, "") |
|
| 5587 |
+ return s |
|
| 5588 |
+} |
|
| 5578 | 5589 |
func (this *UpdateClusterRequest) String() string {
|
| 5579 | 5590 |
if this == nil {
|
| 5580 | 5591 |
return "nil" |
| ... | ... |
@@ -5583,6 +5694,7 @@ func (this *UpdateClusterRequest) String() string {
|
| 5583 | 5583 |
`ClusterID:` + fmt.Sprintf("%v", this.ClusterID) + `,`,
|
| 5584 | 5584 |
`ClusterVersion:` + strings.Replace(fmt.Sprintf("%v", this.ClusterVersion), "Version", "Version", 1) + `,`,
|
| 5585 | 5585 |
`Spec:` + strings.Replace(fmt.Sprintf("%v", this.Spec), "ClusterSpec", "ClusterSpec", 1) + `,`,
|
| 5586 |
+ `Rotation:` + strings.Replace(strings.Replace(this.Rotation.String(), "JoinTokenRotation", "JoinTokenRotation", 1), `&`, ``, 1) + `,`, |
|
| 5586 | 5587 |
`}`, |
| 5587 | 5588 |
}, "") |
| 5588 | 5589 |
return s |
| ... | ... |
@@ -9955,6 +10067,96 @@ func (m *ListClustersResponse) Unmarshal(data []byte) error {
|
| 9955 | 9955 |
} |
| 9956 | 9956 |
return nil |
| 9957 | 9957 |
} |
| 9958 |
+func (m *JoinTokenRotation) Unmarshal(data []byte) error {
|
|
| 9959 |
+ l := len(data) |
|
| 9960 |
+ iNdEx := 0 |
|
| 9961 |
+ for iNdEx < l {
|
|
| 9962 |
+ preIndex := iNdEx |
|
| 9963 |
+ var wire uint64 |
|
| 9964 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9965 |
+ if shift >= 64 {
|
|
| 9966 |
+ return ErrIntOverflowControl |
|
| 9967 |
+ } |
|
| 9968 |
+ if iNdEx >= l {
|
|
| 9969 |
+ return io.ErrUnexpectedEOF |
|
| 9970 |
+ } |
|
| 9971 |
+ b := data[iNdEx] |
|
| 9972 |
+ iNdEx++ |
|
| 9973 |
+ wire |= (uint64(b) & 0x7F) << shift |
|
| 9974 |
+ if b < 0x80 {
|
|
| 9975 |
+ break |
|
| 9976 |
+ } |
|
| 9977 |
+ } |
|
| 9978 |
+ fieldNum := int32(wire >> 3) |
|
| 9979 |
+ wireType := int(wire & 0x7) |
|
| 9980 |
+ if wireType == 4 {
|
|
| 9981 |
+ return fmt.Errorf("proto: JoinTokenRotation: wiretype end group for non-group")
|
|
| 9982 |
+ } |
|
| 9983 |
+ if fieldNum <= 0 {
|
|
| 9984 |
+ return fmt.Errorf("proto: JoinTokenRotation: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 9985 |
+ } |
|
| 9986 |
+ switch fieldNum {
|
|
| 9987 |
+ case 1: |
|
| 9988 |
+ if wireType != 0 {
|
|
| 9989 |
+ return fmt.Errorf("proto: wrong wireType = %d for field RotateWorkerToken", wireType)
|
|
| 9990 |
+ } |
|
| 9991 |
+ var v int |
|
| 9992 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9993 |
+ if shift >= 64 {
|
|
| 9994 |
+ return ErrIntOverflowControl |
|
| 9995 |
+ } |
|
| 9996 |
+ if iNdEx >= l {
|
|
| 9997 |
+ return io.ErrUnexpectedEOF |
|
| 9998 |
+ } |
|
| 9999 |
+ b := data[iNdEx] |
|
| 10000 |
+ iNdEx++ |
|
| 10001 |
+ v |= (int(b) & 0x7F) << shift |
|
| 10002 |
+ if b < 0x80 {
|
|
| 10003 |
+ break |
|
| 10004 |
+ } |
|
| 10005 |
+ } |
|
| 10006 |
+ m.RotateWorkerToken = bool(v != 0) |
|
| 10007 |
+ case 2: |
|
| 10008 |
+ if wireType != 0 {
|
|
| 10009 |
+ return fmt.Errorf("proto: wrong wireType = %d for field RotateManagerToken", wireType)
|
|
| 10010 |
+ } |
|
| 10011 |
+ var v int |
|
| 10012 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 10013 |
+ if shift >= 64 {
|
|
| 10014 |
+ return ErrIntOverflowControl |
|
| 10015 |
+ } |
|
| 10016 |
+ if iNdEx >= l {
|
|
| 10017 |
+ return io.ErrUnexpectedEOF |
|
| 10018 |
+ } |
|
| 10019 |
+ b := data[iNdEx] |
|
| 10020 |
+ iNdEx++ |
|
| 10021 |
+ v |= (int(b) & 0x7F) << shift |
|
| 10022 |
+ if b < 0x80 {
|
|
| 10023 |
+ break |
|
| 10024 |
+ } |
|
| 10025 |
+ } |
|
| 10026 |
+ m.RotateManagerToken = bool(v != 0) |
|
| 10027 |
+ default: |
|
| 10028 |
+ iNdEx = preIndex |
|
| 10029 |
+ skippy, err := skipControl(data[iNdEx:]) |
|
| 10030 |
+ if err != nil {
|
|
| 10031 |
+ return err |
|
| 10032 |
+ } |
|
| 10033 |
+ if skippy < 0 {
|
|
| 10034 |
+ return ErrInvalidLengthControl |
|
| 10035 |
+ } |
|
| 10036 |
+ if (iNdEx + skippy) > l {
|
|
| 10037 |
+ return io.ErrUnexpectedEOF |
|
| 10038 |
+ } |
|
| 10039 |
+ iNdEx += skippy |
|
| 10040 |
+ } |
|
| 10041 |
+ } |
|
| 10042 |
+ |
|
| 10043 |
+ if iNdEx > l {
|
|
| 10044 |
+ return io.ErrUnexpectedEOF |
|
| 10045 |
+ } |
|
| 10046 |
+ return nil |
|
| 10047 |
+} |
|
| 9958 | 10048 |
func (m *UpdateClusterRequest) Unmarshal(data []byte) error {
|
| 9959 | 10049 |
l := len(data) |
| 9960 | 10050 |
iNdEx := 0 |
| ... | ... |
@@ -10079,6 +10281,36 @@ func (m *UpdateClusterRequest) Unmarshal(data []byte) error {
|
| 10079 | 10079 |
return err |
| 10080 | 10080 |
} |
| 10081 | 10081 |
iNdEx = postIndex |
| 10082 |
+ case 4: |
|
| 10083 |
+ if wireType != 2 {
|
|
| 10084 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Rotation", wireType)
|
|
| 10085 |
+ } |
|
| 10086 |
+ var msglen int |
|
| 10087 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 10088 |
+ if shift >= 64 {
|
|
| 10089 |
+ return ErrIntOverflowControl |
|
| 10090 |
+ } |
|
| 10091 |
+ if iNdEx >= l {
|
|
| 10092 |
+ return io.ErrUnexpectedEOF |
|
| 10093 |
+ } |
|
| 10094 |
+ b := data[iNdEx] |
|
| 10095 |
+ iNdEx++ |
|
| 10096 |
+ msglen |= (int(b) & 0x7F) << shift |
|
| 10097 |
+ if b < 0x80 {
|
|
| 10098 |
+ break |
|
| 10099 |
+ } |
|
| 10100 |
+ } |
|
| 10101 |
+ if msglen < 0 {
|
|
| 10102 |
+ return ErrInvalidLengthControl |
|
| 10103 |
+ } |
|
| 10104 |
+ postIndex := iNdEx + msglen |
|
| 10105 |
+ if postIndex > l {
|
|
| 10106 |
+ return io.ErrUnexpectedEOF |
|
| 10107 |
+ } |
|
| 10108 |
+ if err := m.Rotation.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
|
| 10109 |
+ return err |
|
| 10110 |
+ } |
|
| 10111 |
+ iNdEx = postIndex |
|
| 10082 | 10112 |
default: |
| 10083 | 10113 |
iNdEx = preIndex |
| 10084 | 10114 |
skippy, err := skipControl(data[iNdEx:]) |
| ... | ... |
@@ -10289,93 +10521,99 @@ var ( |
| 10289 | 10289 |
) |
| 10290 | 10290 |
|
| 10291 | 10291 |
var fileDescriptorControl = []byte{
|
| 10292 |
- // 1406 bytes of a gzipped FileDescriptorProto |
|
| 10293 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x1b, 0x45, |
|
| 10294 |
- 0x14, 0xc7, 0xce, 0x1f, 0xd7, 0xcf, 0xb1, 0xd3, 0x4c, 0x1d, 0x11, 0xb9, 0x21, 0x45, 0x5b, 0x48, |
|
| 10295 |
- 0x13, 0x29, 0x38, 0xe0, 0xa8, 0x22, 0x80, 0x04, 0x22, 0x09, 0x45, 0x16, 0x25, 0x54, 0x1b, 0x8a, |
|
| 10296 |
- 0xb8, 0x45, 0x8e, 0x3d, 0x0d, 0x4b, 0x6c, 0xaf, 0xd9, 0xdd, 0xa4, 0x8d, 0xb8, 0xc0, 0x81, 0xef, |
|
| 10297 |
- 0xc0, 0x95, 0x2b, 0x07, 0xbe, 0x02, 0xd7, 0x8a, 0x13, 0x17, 0x24, 0x4e, 0x15, 0xed, 0x89, 0x13, |
|
| 10298 |
- 0xe2, 0x13, 0x20, 0x66, 0x76, 0xde, 0xec, 0xae, 0xc7, 0xb3, 0x63, 0x3b, 0x49, 0x95, 0x1e, 0xac, |
|
| 10299 |
- 0xee, 0xce, 0xfc, 0xde, 0x9f, 0x99, 0xf7, 0x7b, 0x2f, 0xef, 0x6d, 0xa1, 0xd8, 0x74, 0xbb, 0x81, |
|
| 10300 |
- 0xe7, 0xb6, 0xab, 0x3d, 0xcf, 0x0d, 0x5c, 0x42, 0x5a, 0x6e, 0xf3, 0x88, 0x7a, 0x55, 0xff, 0x61, |
|
| 10301 |
- 0xc3, 0xeb, 0x1c, 0x39, 0x41, 0xf5, 0xe4, 0xad, 0x4a, 0xc1, 0xef, 0xd1, 0xa6, 0x2f, 0x00, 0x95, |
|
| 10302 |
- 0xa2, 0x7b, 0xf0, 0x35, 0x6d, 0x06, 0xf2, 0xb5, 0x10, 0x9c, 0xf6, 0xa8, 0x7c, 0x29, 0x1f, 0xba, |
|
| 10303 |
- 0x87, 0x6e, 0xf8, 0xb8, 0xce, 0x9f, 0x70, 0xf5, 0x5a, 0xaf, 0x7d, 0x7c, 0xe8, 0x74, 0xd7, 0xc5, |
|
| 10304 |
- 0x3f, 0x62, 0xd1, 0xba, 0x0d, 0xa5, 0x8f, 0x69, 0xb0, 0xeb, 0xb6, 0xa8, 0x4d, 0xbf, 0x39, 0xa6, |
|
| 10305 |
- 0x7e, 0x40, 0x6e, 0x42, 0xae, 0xcb, 0x5e, 0xf7, 0x9d, 0xd6, 0x42, 0xe6, 0xd5, 0xcc, 0x4a, 0x7e, |
|
| 10306 |
- 0x0b, 0x9e, 0x3d, 0xb9, 0x31, 0xcd, 0x11, 0xf5, 0x1d, 0x7b, 0x9a, 0x6f, 0xd5, 0x5b, 0xd6, 0x07, |
|
| 10307 |
- 0x30, 0x1b, 0x89, 0xf9, 0x3d, 0xb7, 0xeb, 0x53, 0xb2, 0x06, 0x93, 0x7c, 0x33, 0x14, 0x2a, 0xd4, |
|
| 10308 |
- 0x16, 0xaa, 0x83, 0x07, 0xa8, 0x86, 0xf8, 0x10, 0x65, 0x3d, 0x99, 0x80, 0xab, 0x77, 0x1d, 0x3f, |
|
| 10309 |
- 0x54, 0xe1, 0x4b, 0xd3, 0x77, 0x20, 0xf7, 0xc0, 0x69, 0x07, 0xd4, 0xf3, 0x51, 0xcb, 0x9a, 0x4e, |
|
| 10310 |
- 0x8b, 0x2a, 0x56, 0xbd, 0x23, 0x64, 0x6c, 0x29, 0x5c, 0xf9, 0x7e, 0x02, 0x72, 0xb8, 0x48, 0xca, |
|
| 10311 |
- 0x30, 0xd5, 0x6d, 0x74, 0x28, 0xd7, 0x38, 0xb1, 0x92, 0xb7, 0xc5, 0x0b, 0x59, 0x87, 0x82, 0xd3, |
|
| 10312 |
- 0xda, 0xef, 0x79, 0xf4, 0x81, 0xf3, 0x88, 0xed, 0x65, 0xf9, 0xde, 0x56, 0x89, 0x1d, 0x14, 0xea, |
|
| 10313 |
- 0x3b, 0xf7, 0x70, 0xd5, 0x06, 0xa7, 0x25, 0x9f, 0xc9, 0x3d, 0x98, 0x6e, 0x37, 0x0e, 0x68, 0xdb, |
|
| 10314 |
- 0x5f, 0x98, 0x60, 0xd8, 0x42, 0x6d, 0x73, 0x1c, 0xcf, 0xaa, 0x77, 0x43, 0xd1, 0x8f, 0x58, 0x80, |
|
| 10315 |
- 0x4f, 0x6d, 0xd4, 0x43, 0xea, 0x50, 0xe8, 0xd0, 0xce, 0x01, 0xdb, 0xfe, 0xca, 0xe9, 0xf9, 0x0b, |
|
| 10316 |
- 0x93, 0x4c, 0x6d, 0xa9, 0x76, 0x2b, 0xed, 0xda, 0xf6, 0x58, 0xe8, 0xab, 0x9f, 0x46, 0x78, 0x3b, |
|
| 10317 |
- 0x29, 0x4b, 0x6a, 0x30, 0xc5, 0x98, 0xc3, 0xce, 0x31, 0x15, 0x2a, 0x59, 0x4c, 0xbd, 0x7b, 0x06, |
|
| 10318 |
- 0xb2, 0x05, 0x94, 0x85, 0xb9, 0xc8, 0xaf, 0x22, 0xbe, 0x83, 0xe9, 0xf0, 0x7e, 0x66, 0xf8, 0xa2, |
|
| 10319 |
- 0x3c, 0x75, 0xe5, 0x1d, 0x28, 0x24, 0x5c, 0x27, 0x57, 0x61, 0xe2, 0x88, 0x9e, 0x0a, 0x5a, 0xd8, |
|
| 10320 |
- 0xfc, 0x91, 0xdf, 0xee, 0x49, 0xa3, 0x7d, 0x4c, 0xd9, 0x0d, 0xf2, 0x35, 0xf1, 0xf2, 0x6e, 0x76, |
|
| 10321 |
- 0x33, 0x63, 0x6d, 0xc3, 0x5c, 0xe2, 0x3a, 0x90, 0x23, 0x55, 0x16, 0x0c, 0xbe, 0x10, 0x06, 0xc3, |
|
| 10322 |
- 0x44, 0x12, 0x01, 0xb3, 0x7e, 0xce, 0xc0, 0xdc, 0xfd, 0x5e, 0xab, 0x11, 0xd0, 0x71, 0x19, 0x4a, |
|
| 10323 |
- 0xde, 0x87, 0x99, 0x10, 0x74, 0xc2, 0x2e, 0xc9, 0x71, 0xbb, 0xa1, 0x83, 0x85, 0xda, 0x75, 0x9d, |
|
| 10324 |
- 0xc5, 0x2f, 0x04, 0xc4, 0x2e, 0x70, 0x01, 0x7c, 0x21, 0x6f, 0xc2, 0x24, 0x4f, 0x37, 0x16, 0x6e, |
|
| 10325 |
- 0x2e, 0xb7, 0x68, 0x8a, 0x8b, 0x1d, 0x22, 0xad, 0x2d, 0x20, 0x49, 0x5f, 0xcf, 0x94, 0x16, 0x9b, |
|
| 10326 |
- 0x30, 0x67, 0xd3, 0x8e, 0x7b, 0x32, 0xf6, 0x79, 0xad, 0x32, 0x90, 0xa4, 0xa4, 0xb0, 0x8e, 0xe9, |
|
| 10327 |
- 0xfd, 0x79, 0xc3, 0x3f, 0x4a, 0x28, 0x0b, 0xd8, 0xab, 0xa2, 0x8c, 0x23, 0xb8, 0x32, 0xbe, 0x15, |
|
| 10328 |
- 0xa5, 0xb7, 0x10, 0x8b, 0xcf, 0xc1, 0x37, 0x4d, 0xe7, 0x08, 0xf1, 0x21, 0x2a, 0x3e, 0xc7, 0xd8, |
|
| 10329 |
- 0xa6, 0xa3, 0x73, 0x24, 0xad, 0x5b, 0xff, 0x61, 0xb9, 0xe0, 0x8b, 0x67, 0x28, 0x17, 0x49, 0xb1, |
|
| 10330 |
- 0xc1, 0x72, 0xf1, 0xd3, 0x25, 0x96, 0x0b, 0x9d, 0x67, 0xda, 0x72, 0xc1, 0x5c, 0xf0, 0xa9, 0x77, |
|
| 10331 |
- 0xe2, 0x34, 0x39, 0x0f, 0x44, 0xb9, 0x40, 0x17, 0xf6, 0xc4, 0x72, 0x7d, 0x87, 0xb9, 0x80, 0x90, |
|
| 10332 |
- 0x7a, 0xcb, 0x27, 0xcb, 0x70, 0x05, 0x59, 0x23, 0xea, 0x42, 0x7e, 0xab, 0xc0, 0xd0, 0x39, 0x41, |
|
| 10333 |
- 0x1b, 0x76, 0x7a, 0xc1, 0x1b, 0x9f, 0xec, 0x40, 0x89, 0xa5, 0x9a, 0xe3, 0xd1, 0xd6, 0xbe, 0x1f, |
|
| 10334 |
- 0x30, 0xf6, 0x8a, 0x4a, 0x50, 0xaa, 0xbd, 0x92, 0x16, 0xe2, 0x3d, 0x8e, 0xb2, 0x8b, 0x28, 0x14, |
|
| 10335 |
- 0xbe, 0x69, 0xca, 0x49, 0xee, 0xb9, 0x94, 0x13, 0xbc, 0xae, 0xb8, 0x9c, 0x70, 0xd6, 0x18, 0xcb, |
|
| 10336 |
- 0x49, 0x48, 0x23, 0x01, 0xb3, 0x3e, 0x81, 0xf2, 0xb6, 0x47, 0x99, 0xbf, 0x78, 0x65, 0x92, 0x48, |
|
| 10337 |
- 0x1b, 0x98, 0xeb, 0x82, 0x45, 0x37, 0x74, 0x6a, 0x50, 0x22, 0x91, 0xee, 0xbb, 0x30, 0xaf, 0x28, |
|
| 10338 |
- 0x43, 0xaf, 0x6e, 0x43, 0x0e, 0xc3, 0x80, 0x0a, 0xaf, 0x1b, 0x14, 0xda, 0x12, 0x6b, 0x7d, 0x08, |
|
| 10339 |
- 0x73, 0x2c, 0xe7, 0x14, 0xcf, 0xd6, 0x00, 0xe2, 0xa8, 0x63, 0xd6, 0x14, 0x59, 0x18, 0xf3, 0x51, |
|
| 10340 |
- 0xd0, 0xed, 0x7c, 0x14, 0x73, 0x76, 0x3e, 0x92, 0x54, 0x71, 0x3e, 0x7f, 0x7e, 0xcd, 0x40, 0x59, |
|
| 10341 |
- 0xd4, 0xb3, 0xf3, 0xf8, 0xc4, 0xe8, 0x35, 0x2b, 0xd1, 0x63, 0x94, 0xe2, 0x12, 0xca, 0xc8, 0x6a, |
|
| 10342 |
- 0xbc, 0xd1, 0x57, 0x8d, 0x47, 0x8f, 0x90, 0x72, 0x80, 0xf3, 0xdd, 0xc8, 0x0e, 0x94, 0x45, 0x69, |
|
| 10343 |
- 0x3a, 0x57, 0x90, 0x5e, 0x86, 0x79, 0x45, 0x0b, 0xd6, 0xb8, 0xbf, 0xb3, 0x70, 0x8d, 0x73, 0x1c, |
|
| 10344 |
- 0xd7, 0xa3, 0x32, 0x57, 0x57, 0xcb, 0xdc, 0x7a, 0x5a, 0x31, 0x51, 0x24, 0x07, 0x2b, 0xdd, 0x0f, |
|
| 10345 |
- 0xd9, 0x0b, 0xaf, 0x74, 0x7b, 0x4a, 0xa5, 0x7b, 0x6f, 0x4c, 0xe7, 0xb4, 0xc5, 0x6e, 0xa0, 0x9a, |
|
| 10346 |
- 0x4c, 0x5e, 0x6c, 0x35, 0xf9, 0x0c, 0xca, 0xfd, 0x2e, 0x21, 0x31, 0xde, 0x86, 0x2b, 0x18, 0x28, |
|
| 10347 |
- 0x59, 0x53, 0x8c, 0xcc, 0x88, 0xc0, 0x71, 0x65, 0xd9, 0xa5, 0xc1, 0x43, 0xd7, 0x3b, 0x1a, 0xa3, |
|
| 10348 |
- 0xb2, 0xa0, 0x84, 0xae, 0xb2, 0x44, 0xca, 0x62, 0xde, 0x76, 0xc5, 0x92, 0x89, 0xb7, 0x52, 0x4a, |
|
| 10349 |
- 0x62, 0xad, 0xfb, 0x61, 0x65, 0x51, 0x3c, 0x23, 0xac, 0x2f, 0x61, 0xb7, 0x89, 0xf7, 0x15, 0x3e, |
|
| 10350 |
- 0x73, 0x22, 0xa3, 0x0c, 0x27, 0x72, 0x36, 0x26, 0x32, 0xca, 0x72, 0x22, 0x23, 0x20, 0xaa, 0x36, |
|
| 10351 |
- 0x17, 0xe4, 0xe3, 0x97, 0x32, 0xb7, 0x2e, 0xdc, 0xcd, 0x28, 0xdf, 0x14, 0x4f, 0xa3, 0x7c, 0xc3, |
|
| 10352 |
- 0xf5, 0x33, 0xe4, 0x9b, 0x22, 0xf9, 0x62, 0xe5, 0x5b, 0x8a, 0x73, 0x97, 0x99, 0x6f, 0xb1, 0x4b, |
|
| 10353 |
- 0x71, 0xbe, 0x61, 0xa0, 0x8c, 0xf9, 0x26, 0x23, 0x17, 0x81, 0xf1, 0x8f, 0xe5, 0x76, 0xfb, 0xd8, |
|
| 10354 |
- 0x67, 0x67, 0x4a, 0xd4, 0xe1, 0xa6, 0x58, 0x51, 0xea, 0x30, 0xe2, 0x38, 0x2f, 0x10, 0x10, 0xd1, |
|
| 10355 |
- 0x37, 0x52, 0x11, 0xd3, 0x17, 0x21, 0x26, 0xfa, 0x4a, 0x29, 0x89, 0x8d, 0xb8, 0x84, 0x1b, 0x67, |
|
| 10356 |
- 0xe0, 0x92, 0x22, 0xf9, 0x62, 0x71, 0x29, 0xc5, 0xb9, 0xcb, 0xe4, 0x52, 0xec, 0x52, 0xcc, 0x25, |
|
| 10357 |
- 0x8c, 0x86, 0x91, 0x4b, 0x32, 0x74, 0x11, 0x38, 0xd1, 0xe8, 0x9c, 0x87, 0x4f, 0xbc, 0xd1, 0x91, |
|
| 10358 |
- 0xe8, 0x71, 0x1a, 0x1d, 0x94, 0x19, 0xa3, 0xd1, 0x41, 0xeb, 0xba, 0x46, 0xe7, 0x62, 0xd8, 0x5c, |
|
| 10359 |
- 0xfb, 0x63, 0x0e, 0x72, 0xdb, 0xe2, 0x73, 0x14, 0x71, 0x20, 0x87, 0x5f, 0x7a, 0x88, 0xa5, 0x13, |
|
| 10360 |
- 0xee, 0xff, 0x7a, 0x54, 0xb9, 0x69, 0xc4, 0x60, 0xe5, 0x9d, 0xff, 0xed, 0x97, 0x7f, 0x7e, 0xcc, |
|
| 10361 |
- 0xce, 0x42, 0x31, 0x04, 0xbd, 0xd1, 0x69, 0x74, 0x1b, 0x87, 0xd4, 0x23, 0x2e, 0xe4, 0xa3, 0x4f, |
|
| 10362 |
- 0x06, 0xe4, 0xb5, 0x51, 0x3e, 0xb0, 0x54, 0x5e, 0x1f, 0x82, 0x32, 0x1b, 0xf4, 0x00, 0xe2, 0x89, |
|
| 10363 |
- 0x9d, 0x68, 0x75, 0x0d, 0x7c, 0x7d, 0xa8, 0x2c, 0x0f, 0x83, 0x0d, 0xb5, 0x19, 0xcf, 0xe9, 0x7a, |
|
| 10364 |
- 0x9b, 0x03, 0x5f, 0x00, 0xf4, 0x36, 0x35, 0xe3, 0x7e, 0x8a, 0x4d, 0x11, 0x43, 0x3e, 0x09, 0xa5, |
|
| 10365 |
- 0xc6, 0x30, 0x31, 0xa7, 0xa7, 0xc6, 0xb0, 0x6f, 0x22, 0x37, 0xc7, 0x30, 0x9c, 0xd3, 0xd2, 0x63, |
|
| 10366 |
- 0x98, 0x9c, 0x7a, 0xd3, 0x63, 0xd8, 0x37, 0xec, 0x0d, 0xbd, 0xcf, 0xf0, 0x78, 0x86, 0xfb, 0x4c, |
|
| 10367 |
- 0x9e, 0x70, 0x79, 0x18, 0x6c, 0xa8, 0xcd, 0x78, 0xce, 0xd2, 0xdb, 0x1c, 0x18, 0xe5, 0xf4, 0x36, |
|
| 10368 |
- 0x07, 0xc7, 0xb5, 0x34, 0x9b, 0x8f, 0x60, 0x26, 0xd9, 0xb2, 0x92, 0x5b, 0x23, 0xf6, 0xd9, 0x95, |
|
| 10369 |
- 0x95, 0xe1, 0x40, 0xb3, 0xe5, 0x6f, 0xa1, 0xd8, 0x37, 0xe8, 0x12, 0xad, 0x46, 0xdd, 0x60, 0x5d, |
|
| 10370 |
- 0x59, 0x1d, 0x01, 0x39, 0xd4, 0x78, 0xdf, 0x0c, 0xa7, 0x37, 0xae, 0x9b, 0x53, 0xf5, 0xc6, 0xb5, |
|
| 10371 |
- 0x03, 0xa1, 0xc1, 0x78, 0xdf, 0xa8, 0xa6, 0x37, 0xae, 0x9b, 0x09, 0xf5, 0xc6, 0xf5, 0x73, 0x9f, |
|
| 10372 |
- 0x91, 0x64, 0xd8, 0xfa, 0xa4, 0x92, 0xac, 0xbf, 0x5d, 0x4e, 0x25, 0x99, 0xda, 0xfb, 0x9a, 0x49, |
|
| 10373 |
- 0x26, 0xfb, 0xb4, 0x74, 0x92, 0x29, 0xcd, 0x65, 0x3a, 0xc9, 0xd4, 0x96, 0x6f, 0x28, 0xc9, 0xe4, |
|
| 10374 |
- 0x81, 0x0d, 0x24, 0x53, 0xce, 0xbc, 0x3a, 0x02, 0x72, 0xc4, 0x38, 0x1b, 0x8d, 0xeb, 0xe6, 0x13, |
|
| 10375 |
- 0x53, 0x9c, 0x47, 0x34, 0x2e, 0xe2, 0x8c, 0x7f, 0x83, 0x53, 0xe3, 0xdc, 0xdf, 0x9a, 0xa4, 0xc6, |
|
| 10376 |
- 0x59, 0x69, 0x00, 0x86, 0xc4, 0x59, 0xf6, 0x50, 0xe9, 0x71, 0x56, 0x1a, 0xbf, 0xf4, 0x38, 0xab, |
|
| 10377 |
- 0xed, 0xd8, 0xd0, 0x7c, 0x96, 0x07, 0x36, 0xe4, 0xb3, 0x72, 0xe6, 0xd5, 0x11, 0x90, 0x46, 0xe3, |
|
| 10378 |
- 0x5b, 0x8b, 0x8f, 0x9f, 0x2e, 0xbd, 0xf4, 0x27, 0xfb, 0xfd, 0xfb, 0x74, 0x29, 0xf3, 0xdd, 0xb3, |
|
| 10379 |
- 0xa5, 0xcc, 0x63, 0xf6, 0xfb, 0x9d, 0xfd, 0xfe, 0x62, 0xbf, 0x83, 0xe9, 0xf0, 0x7f, 0xc4, 0x36, |
|
| 10380 |
- 0xfe, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x53, 0x9c, 0xb7, 0x2f, 0x8a, 0x1b, 0x00, 0x00, |
|
| 10292 |
+ // 1498 bytes of a gzipped FileDescriptorProto |
|
| 10293 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x59, 0xcf, 0x6f, 0x1b, 0xc5, |
|
| 10294 |
+ 0x17, 0xaf, 0x9d, 0x34, 0x8e, 0x9f, 0x6b, 0xb7, 0x9e, 0xba, 0xfa, 0x46, 0x6e, 0xbf, 0x09, 0xda, |
|
| 10295 |
+ 0xd2, 0x34, 0x91, 0x82, 0x03, 0x8e, 0x2a, 0x02, 0x48, 0x20, 0x9c, 0xd0, 0xca, 0xd0, 0x86, 0x6a, |
|
| 10296 |
+ 0xd3, 0x02, 0xb7, 0xc8, 0xb1, 0xa7, 0x61, 0xf1, 0x8f, 0x35, 0xbb, 0x9b, 0xb4, 0x11, 0x17, 0x38, |
|
| 10297 |
+ 0x20, 0xf1, 0x27, 0x70, 0xe5, 0xca, 0x81, 0x7f, 0x81, 0x6b, 0xc4, 0x89, 0x0b, 0x12, 0xa7, 0x88, |
|
| 10298 |
+ 0xf6, 0xc4, 0x09, 0xf1, 0x17, 0x20, 0xe6, 0xc7, 0x9b, 0xdd, 0xf5, 0x7a, 0x76, 0x6d, 0x27, 0x41, |
|
| 10299 |
+ 0xe9, 0xc1, 0xca, 0xee, 0xcc, 0xe7, 0xfd, 0x98, 0x79, 0x9f, 0xf7, 0xf6, 0xcd, 0x04, 0xf2, 0x4d, |
|
| 10300 |
+ 0xbb, 0xe7, 0x39, 0x76, 0xa7, 0xd2, 0x77, 0x6c, 0xcf, 0x26, 0xa4, 0x65, 0x37, 0xdb, 0xd4, 0xa9, |
|
| 10301 |
+ 0xb8, 0x4f, 0x1b, 0x4e, 0xb7, 0x6d, 0x79, 0x95, 0x83, 0x37, 0xca, 0x39, 0xb7, 0x4f, 0x9b, 0xae, |
|
| 10302 |
+ 0x04, 0x94, 0xf3, 0xf6, 0xee, 0x17, 0xb4, 0xe9, 0xa9, 0xd7, 0x9c, 0x77, 0xd8, 0xa7, 0xea, 0xa5, |
|
| 10303 |
+ 0xb4, 0x67, 0xef, 0xd9, 0xe2, 0x71, 0x95, 0x3f, 0xe1, 0xe8, 0xd5, 0x7e, 0x67, 0x7f, 0xcf, 0xea, |
|
| 10304 |
+ 0xad, 0xca, 0x3f, 0x72, 0xd0, 0xb8, 0x03, 0x85, 0x7b, 0xd4, 0xdb, 0xb2, 0x5b, 0xd4, 0xa4, 0x5f, |
|
| 10305 |
+ 0xee, 0x53, 0xd7, 0x23, 0x37, 0x21, 0xd3, 0x63, 0xaf, 0x3b, 0x56, 0x6b, 0x2e, 0xf5, 0x4a, 0x6a, |
|
| 10306 |
+ 0x29, 0x5b, 0x83, 0x17, 0xc7, 0x0b, 0x33, 0x1c, 0x51, 0xdf, 0x34, 0x67, 0xf8, 0x54, 0xbd, 0x65, |
|
| 10307 |
+ 0xbc, 0x07, 0x97, 0x7d, 0x31, 0xb7, 0x6f, 0xf7, 0x5c, 0x4a, 0x56, 0x60, 0x9a, 0x4f, 0x0a, 0xa1, |
|
| 10308 |
+ 0x5c, 0x75, 0xae, 0x32, 0xbc, 0x80, 0x8a, 0xc0, 0x0b, 0x94, 0x71, 0x3c, 0x05, 0x57, 0xee, 0x5b, |
|
| 10309 |
+ 0xae, 0x50, 0xe1, 0x2a, 0xd3, 0x77, 0x21, 0xf3, 0xc4, 0xea, 0x78, 0xd4, 0x71, 0x51, 0xcb, 0x8a, |
|
| 10310 |
+ 0x4e, 0x4b, 0x54, 0xac, 0x72, 0x57, 0xca, 0x98, 0x4a, 0xb8, 0xfc, 0xcd, 0x14, 0x64, 0x70, 0x90, |
|
| 10311 |
+ 0x94, 0xe0, 0x62, 0xaf, 0xd1, 0xa5, 0x5c, 0xe3, 0xd4, 0x52, 0xd6, 0x94, 0x2f, 0x64, 0x15, 0x72, |
|
| 10312 |
+ 0x56, 0x6b, 0xa7, 0xef, 0xd0, 0x27, 0xd6, 0x33, 0x36, 0x97, 0xe6, 0x73, 0xb5, 0x02, 0x5b, 0x28, |
|
| 10313 |
+ 0xd4, 0x37, 0x1f, 0xe2, 0xa8, 0x09, 0x56, 0x4b, 0x3d, 0x93, 0x87, 0x30, 0xd3, 0x69, 0xec, 0xd2, |
|
| 10314 |
+ 0x8e, 0x3b, 0x37, 0xc5, 0xb0, 0xb9, 0xea, 0xfa, 0x24, 0x9e, 0x55, 0xee, 0x0b, 0xd1, 0x0f, 0x58, |
|
| 10315 |
+ 0x80, 0x0f, 0x4d, 0xd4, 0x43, 0xea, 0x90, 0xeb, 0xd2, 0xee, 0x2e, 0x9b, 0xfe, 0xdc, 0xea, 0xbb, |
|
| 10316 |
+ 0x73, 0xd3, 0x4c, 0x6d, 0xa1, 0x7a, 0x3b, 0x6e, 0xdb, 0xb6, 0x59, 0xe8, 0x2b, 0x0f, 0x7c, 0xbc, |
|
| 10317 |
+ 0x19, 0x96, 0x25, 0x55, 0xb8, 0xc8, 0x98, 0xc3, 0xd6, 0x71, 0x51, 0x28, 0xb9, 0x11, 0xbb, 0xf7, |
|
| 10318 |
+ 0x0c, 0x64, 0x4a, 0x28, 0x0b, 0x73, 0x9e, 0x6f, 0x45, 0xb0, 0x07, 0x33, 0x62, 0x7f, 0x2e, 0xf1, |
|
| 10319 |
+ 0x41, 0xb5, 0xea, 0xf2, 0x5b, 0x90, 0x0b, 0xb9, 0x4e, 0xae, 0xc0, 0x54, 0x9b, 0x1e, 0x4a, 0x5a, |
|
| 10320 |
+ 0x98, 0xfc, 0x91, 0xef, 0xee, 0x41, 0xa3, 0xb3, 0x4f, 0xd9, 0x0e, 0xf2, 0x31, 0xf9, 0xf2, 0x76, |
|
| 10321 |
+ 0x7a, 0x3d, 0x65, 0x6c, 0x40, 0x31, 0xb4, 0x1d, 0xc8, 0x91, 0x0a, 0x0b, 0x06, 0x1f, 0x10, 0xc1, |
|
| 10322 |
+ 0x48, 0x22, 0x89, 0x84, 0x19, 0x3f, 0xa6, 0xa0, 0xf8, 0xb8, 0xdf, 0x6a, 0x78, 0x74, 0x52, 0x86, |
|
| 10323 |
+ 0x92, 0x77, 0xe1, 0x92, 0x00, 0x1d, 0xb0, 0x4d, 0xb2, 0xec, 0x9e, 0x70, 0x30, 0x57, 0xbd, 0xae, |
|
| 10324 |
+ 0xb3, 0xf8, 0x89, 0x84, 0x98, 0x39, 0x2e, 0x80, 0x2f, 0xe4, 0x75, 0x98, 0xe6, 0xe9, 0xc6, 0xc2, |
|
| 10325 |
+ 0xcd, 0xe5, 0x6e, 0x24, 0xc5, 0xc5, 0x14, 0x48, 0xa3, 0x06, 0x24, 0xec, 0xeb, 0x89, 0xd2, 0x62, |
|
| 10326 |
+ 0x1d, 0x8a, 0x26, 0xed, 0xda, 0x07, 0x13, 0xaf, 0xd7, 0x28, 0x01, 0x09, 0x4b, 0x4a, 0xeb, 0x98, |
|
| 10327 |
+ 0xde, 0x8f, 0x1a, 0x6e, 0x3b, 0xa4, 0xcc, 0x63, 0xaf, 0x11, 0x65, 0x1c, 0xc1, 0x95, 0xf1, 0x29, |
|
| 10328 |
+ 0x3f, 0xbd, 0xa5, 0x58, 0xb0, 0x0e, 0x3e, 0x99, 0xb4, 0x0e, 0x81, 0x17, 0xa8, 0x60, 0x1d, 0x13, |
|
| 10329 |
+ 0x9b, 0xf6, 0xd7, 0x11, 0xb6, 0x6e, 0xfc, 0x83, 0xe5, 0x82, 0x0f, 0x9e, 0xa0, 0x5c, 0x84, 0xc5, |
|
| 10330 |
+ 0x86, 0xcb, 0xc5, 0x0f, 0xe7, 0x58, 0x2e, 0x74, 0x9e, 0x69, 0xcb, 0x05, 0x73, 0xc1, 0xa5, 0xce, |
|
| 10331 |
+ 0x81, 0xd5, 0xe4, 0x3c, 0x90, 0xe5, 0x02, 0x5d, 0xd8, 0x96, 0xc3, 0xf5, 0x4d, 0xe6, 0x02, 0x42, |
|
| 10332 |
+ 0xea, 0x2d, 0x97, 0x2c, 0xc2, 0x2c, 0xb2, 0x46, 0xd6, 0x85, 0x6c, 0x2d, 0xc7, 0xd0, 0x19, 0x49, |
|
| 10333 |
+ 0x1b, 0xb6, 0x7a, 0xc9, 0x1b, 0x97, 0x6c, 0x42, 0x81, 0xa5, 0x9a, 0xe5, 0xd0, 0xd6, 0x8e, 0xeb, |
|
| 10334 |
+ 0x31, 0xf6, 0xca, 0x4a, 0x50, 0xa8, 0xfe, 0x3f, 0x2e, 0xc4, 0xdb, 0x1c, 0x65, 0xe6, 0x51, 0x48, |
|
| 10335 |
+ 0xbc, 0x69, 0xca, 0x49, 0xe6, 0x3f, 0x29, 0x27, 0xb8, 0x5d, 0x41, 0x39, 0xe1, 0xac, 0x49, 0x2c, |
|
| 10336 |
+ 0x27, 0x82, 0x46, 0x12, 0x66, 0x7c, 0x04, 0xa5, 0x0d, 0x87, 0x32, 0x7f, 0x71, 0xcb, 0x14, 0x91, |
|
| 10337 |
+ 0xd6, 0x30, 0xd7, 0x25, 0x8b, 0x16, 0x74, 0x6a, 0x50, 0x22, 0x94, 0xee, 0x5b, 0x70, 0x2d, 0xa2, |
|
| 10338 |
+ 0x0c, 0xbd, 0xba, 0x03, 0x19, 0x0c, 0x03, 0x2a, 0xbc, 0x9e, 0xa0, 0xd0, 0x54, 0x58, 0xe3, 0x7d, |
|
| 10339 |
+ 0x28, 0xb2, 0x9c, 0x8b, 0x78, 0xb6, 0x02, 0x10, 0x44, 0x1d, 0xb3, 0x26, 0xcf, 0xc2, 0x98, 0xf5, |
|
| 10340 |
+ 0x83, 0x6e, 0x66, 0xfd, 0x98, 0xb3, 0xf5, 0x91, 0xb0, 0x8a, 0xd3, 0xf9, 0xf3, 0x73, 0x0a, 0x4a, |
|
| 10341 |
+ 0xb2, 0x9e, 0x9d, 0xc6, 0x27, 0x46, 0xaf, 0xcb, 0x0a, 0x3d, 0x41, 0x29, 0x2e, 0xa0, 0x8c, 0xaa, |
|
| 10342 |
+ 0xc6, 0x6b, 0x03, 0xd5, 0x78, 0xfc, 0x08, 0x45, 0x16, 0x70, 0xba, 0x1d, 0xd9, 0x84, 0x92, 0x2c, |
|
| 10343 |
+ 0x4d, 0xa7, 0x0a, 0xd2, 0xff, 0xe0, 0x5a, 0x44, 0x0b, 0xd6, 0xb8, 0x3f, 0xd3, 0x70, 0x95, 0x73, |
|
| 10344 |
+ 0x1c, 0xc7, 0xfd, 0x32, 0x57, 0x8f, 0x96, 0xb9, 0xd5, 0xb8, 0x62, 0x12, 0x91, 0x1c, 0xae, 0x74, |
|
| 10345 |
+ 0xdf, 0xa6, 0xcf, 0xbc, 0xd2, 0x6d, 0x47, 0x2a, 0xdd, 0x3b, 0x13, 0x3a, 0xa7, 0x2d, 0x76, 0x43, |
|
| 10346 |
+ 0xd5, 0x64, 0xfa, 0x6c, 0xab, 0xc9, 0xc7, 0x50, 0x1a, 0x74, 0x09, 0x89, 0xf1, 0x26, 0xcc, 0x62, |
|
| 10347 |
+ 0xa0, 0x54, 0x4d, 0x49, 0x64, 0x86, 0x0f, 0x0e, 0x2a, 0xcb, 0x16, 0xf5, 0x9e, 0xda, 0x4e, 0x7b, |
|
| 10348 |
+ 0x82, 0xca, 0x82, 0x12, 0xba, 0xca, 0xe2, 0x2b, 0x0b, 0x78, 0xdb, 0x93, 0x43, 0x49, 0xbc, 0x55, |
|
| 10349 |
+ 0x52, 0x0a, 0x6b, 0x3c, 0x16, 0x95, 0x25, 0xe2, 0x19, 0x61, 0x7d, 0x09, 0xdb, 0x4d, 0xdc, 0x2f, |
|
| 10350 |
+ 0xf1, 0xcc, 0x89, 0x8c, 0x32, 0x9c, 0xc8, 0xe9, 0x80, 0xc8, 0x28, 0xcb, 0x89, 0x8c, 0x00, 0xbf, |
|
| 10351 |
+ 0xda, 0x9c, 0x91, 0x8f, 0x9f, 0xa9, 0xdc, 0x3a, 0x73, 0x37, 0xfd, 0x7c, 0x8b, 0x78, 0xea, 0xe7, |
|
| 10352 |
+ 0x1b, 0x8e, 0x9f, 0x20, 0xdf, 0x22, 0x92, 0x2f, 0x57, 0xbe, 0xc5, 0x38, 0x77, 0x9e, 0xf9, 0x16, |
|
| 10353 |
+ 0xb8, 0x14, 0xe4, 0x1b, 0x06, 0x2a, 0x31, 0xdf, 0x54, 0xe4, 0x7c, 0x30, 0x7e, 0x2c, 0x37, 0x3a, |
|
| 10354 |
+ 0xfb, 0x2e, 0x5b, 0x53, 0xa8, 0x0e, 0x37, 0xe5, 0x48, 0xa4, 0x0e, 0x23, 0x8e, 0xf3, 0x02, 0x01, |
|
| 10355 |
+ 0x3e, 0x7d, 0x7d, 0x15, 0x01, 0x7d, 0x11, 0x92, 0x44, 0x5f, 0x25, 0xa5, 0xb0, 0x3e, 0x97, 0x70, |
|
| 10356 |
+ 0xe2, 0x04, 0x5c, 0x8a, 0x48, 0xbe, 0x5c, 0x5c, 0x8a, 0x71, 0xee, 0x3c, 0xb9, 0x14, 0xb8, 0x14, |
|
| 10357 |
+ 0x70, 0x09, 0xa3, 0x91, 0xc8, 0x25, 0x15, 0x3a, 0x1f, 0x6c, 0xec, 0x43, 0xf1, 0x43, 0xdb, 0xea, |
|
| 10358 |
+ 0x3d, 0xb2, 0xdb, 0xb4, 0x67, 0xda, 0xac, 0x9d, 0xe5, 0x0d, 0x47, 0x05, 0xae, 0x3a, 0xfc, 0x99, |
|
| 10359 |
+ 0xee, 0x70, 0xc2, 0x31, 0x46, 0x79, 0x7c, 0x5a, 0x78, 0x38, 0x6b, 0x16, 0xe5, 0xd4, 0xa7, 0x62, |
|
| 10360 |
+ 0x46, 0xc8, 0xb1, 0xe3, 0x62, 0x09, 0xf1, 0xdd, 0x46, 0xaf, 0xb1, 0xe7, 0x0b, 0xa4, 0x85, 0x00, |
|
| 10361 |
+ 0x91, 0x73, 0x0f, 0xe4, 0x94, 0x90, 0x30, 0xbe, 0x4b, 0xab, 0xfe, 0xea, 0x34, 0x34, 0xe6, 0xfd, |
|
| 10362 |
+ 0x95, 0x42, 0x4f, 0xd2, 0x5f, 0xa1, 0xcc, 0x04, 0xfd, 0x15, 0x5a, 0x0f, 0xbe, 0x53, 0xe4, 0x1e, |
|
| 10363 |
+ 0xcc, 0x3a, 0xb8, 0x5f, 0x2c, 0xc8, 0x5c, 0xf0, 0x96, 0x4e, 0x70, 0x68, 0x73, 0x6b, 0xd3, 0x47, |
|
| 10364 |
+ 0xc7, 0x0b, 0x17, 0x4c, 0x5f, 0x38, 0x68, 0xd4, 0xce, 0x26, 0x1b, 0xab, 0xbf, 0x15, 0x21, 0xb3, |
|
| 10365 |
+ 0x21, 0xaf, 0xd3, 0x88, 0x05, 0x19, 0xbc, 0xa9, 0x22, 0x86, 0x4e, 0x78, 0xf0, 0xf6, 0xab, 0x7c, |
|
| 10366 |
+ 0x33, 0x11, 0x83, 0x5f, 0x8e, 0x6b, 0xbf, 0xfc, 0xf4, 0xd7, 0xf7, 0xe9, 0xcb, 0x90, 0x17, 0xa0, |
|
| 10367 |
+ 0xd7, 0x30, 0xe2, 0xc4, 0x86, 0xac, 0x7f, 0xe5, 0x41, 0x5e, 0x1d, 0xe7, 0x82, 0xa8, 0x7c, 0x6b, |
|
| 10368 |
+ 0x04, 0x2a, 0xd9, 0xa0, 0x03, 0x10, 0xdc, 0x38, 0x10, 0xad, 0xae, 0xa1, 0xdb, 0x93, 0xf2, 0xe2, |
|
| 10369 |
+ 0x28, 0xd8, 0x48, 0x9b, 0xc1, 0x3d, 0x83, 0xde, 0xe6, 0xd0, 0x0d, 0x86, 0xde, 0xa6, 0xe6, 0xba, |
|
| 10370 |
+ 0x22, 0xc6, 0xa6, 0x8c, 0x21, 0x3f, 0xc9, 0xc5, 0xc6, 0x30, 0x74, 0xcf, 0x10, 0x1b, 0xc3, 0x81, |
|
| 10371 |
+ 0x1b, 0x85, 0xe4, 0x18, 0x8a, 0x73, 0x66, 0x7c, 0x0c, 0xc3, 0xa7, 0xf6, 0xf8, 0x18, 0x0e, 0x1c, |
|
| 10372 |
+ 0x56, 0x47, 0xee, 0xa7, 0x58, 0x5e, 0xc2, 0x7e, 0x86, 0x57, 0xb8, 0x38, 0x0a, 0x36, 0xd2, 0x66, |
|
| 10373 |
+ 0x70, 0x4e, 0xd4, 0xdb, 0x1c, 0x3a, 0x8a, 0xea, 0x6d, 0x0e, 0x1f, 0x37, 0xe3, 0x6c, 0x3e, 0x83, |
|
| 10374 |
+ 0x4b, 0xe1, 0x96, 0x9b, 0xdc, 0x1e, 0xf3, 0x9c, 0x50, 0x5e, 0x1a, 0x0d, 0x4c, 0xb6, 0xfc, 0x15, |
|
| 10375 |
+ 0xe4, 0x07, 0x0e, 0xea, 0x44, 0xab, 0x51, 0x77, 0x31, 0x50, 0x5e, 0x1e, 0x03, 0x39, 0xd2, 0xf8, |
|
| 10376 |
+ 0xc0, 0x19, 0x54, 0x6f, 0x5c, 0x77, 0xce, 0xd6, 0x1b, 0xd7, 0x1e, 0x68, 0x13, 0x8c, 0x0f, 0x1c, |
|
| 10377 |
+ 0x35, 0xf5, 0xc6, 0x75, 0x67, 0x5a, 0xbd, 0x71, 0xfd, 0xb9, 0x35, 0x91, 0x64, 0xd8, 0xba, 0xc5, |
|
| 10378 |
+ 0x92, 0x6c, 0xb0, 0xdd, 0x8f, 0x25, 0x59, 0xb4, 0x77, 0x4f, 0x26, 0x99, 0xea, 0x33, 0xe3, 0x49, |
|
| 10379 |
+ 0x16, 0x69, 0x8e, 0xe3, 0x49, 0x16, 0x6d, 0x59, 0x47, 0x92, 0x4c, 0x2d, 0x38, 0x81, 0x64, 0x91, |
|
| 10380 |
+ 0x35, 0x2f, 0x8f, 0x81, 0x1c, 0x33, 0xce, 0x89, 0xc6, 0x75, 0xe7, 0xab, 0xa4, 0x38, 0x8f, 0x69, |
|
| 10381 |
+ 0x5c, 0xc6, 0x19, 0xbf, 0xc1, 0xb1, 0x71, 0x1e, 0xec, 0x71, 0x62, 0xe3, 0x1c, 0x69, 0x00, 0x46, |
|
| 10382 |
+ 0xc4, 0x59, 0xf5, 0x80, 0xf1, 0x71, 0x8e, 0x34, 0xae, 0xf1, 0x71, 0x8e, 0xb6, 0x93, 0x23, 0xf3, |
|
| 10383 |
+ 0x59, 0x2d, 0x38, 0x21, 0x9f, 0x23, 0x6b, 0x5e, 0x1e, 0x03, 0x99, 0x68, 0xbc, 0x76, 0xe3, 0xe8, |
|
| 10384 |
+ 0xf9, 0xfc, 0x85, 0xdf, 0xd9, 0xef, 0xef, 0xe7, 0xf3, 0xa9, 0xaf, 0x5f, 0xcc, 0xa7, 0x8e, 0xd8, |
|
| 10385 |
+ 0xef, 0x57, 0xf6, 0xfb, 0x83, 0xfd, 0x76, 0x67, 0xc4, 0x7f, 0xf4, 0xd6, 0xfe, 0x0d, 0x00, 0x00, |
|
| 10386 |
+ 0xff, 0xff, 0xf3, 0xcc, 0x22, 0xcd, 0x4a, 0x1c, 0x00, 0x00, |
|
| 10381 | 10387 |
} |
| ... | ... |
@@ -267,6 +267,14 @@ message ListClustersResponse {
|
| 267 | 267 |
repeated Cluster clusters = 1; |
| 268 | 268 |
} |
| 269 | 269 |
|
| 270 |
+message JoinTokenRotation {
|
|
| 271 |
+ // RotateWorkerToken tells UpdateCluster to rotate the worker secret. |
|
| 272 |
+ bool rotate_worker_token = 1; |
|
| 273 |
+ |
|
| 274 |
+ // RotateManagerSecret tells UpdateCluster to rotate the manager secret. |
|
| 275 |
+ bool rotate_manager_token = 2; |
|
| 276 |
+} |
|
| 277 |
+ |
|
| 270 | 278 |
message UpdateClusterRequest {
|
| 271 | 279 |
// ClusterID is the cluster ID to update. |
| 272 | 280 |
string cluster_id = 1 [(gogoproto.customname) = "ClusterID"]; |
| ... | ... |
@@ -276,6 +284,9 @@ message UpdateClusterRequest {
|
| 276 | 276 |
|
| 277 | 277 |
// Spec is the new spec to apply to the cluster. |
| 278 | 278 |
ClusterSpec spec = 3; |
| 279 |
+ |
|
| 280 |
+ // Rotation contains flags for join token rotation |
|
| 281 |
+ JoinTokenRotation rotation = 4 [(gogoproto.nullable) = false]; |
|
| 279 | 282 |
} |
| 280 | 283 |
|
| 281 | 284 |
message UpdateClusterResponse {
|
| ... | ... |
@@ -493,7 +493,9 @@ func (*NetworkSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, [
|
| 493 | 493 |
// ClusterSpec specifies global cluster settings. |
| 494 | 494 |
type ClusterSpec struct {
|
| 495 | 495 |
Annotations Annotations `protobuf:"bytes,1,opt,name=annotations" json:"annotations"` |
| 496 |
- // AcceptancePolicy defines the certificate issuance policy. |
|
| 496 |
+ // DEPRECATED: AcceptancePolicy defines the certificate issuance policy. |
|
| 497 |
+ // Acceptance policy is no longer customizable, and secrets have been |
|
| 498 |
+ // replaced with join tokens. |
|
| 497 | 499 |
AcceptancePolicy AcceptancePolicy `protobuf:"bytes,2,opt,name=acceptance_policy,json=acceptancePolicy" json:"acceptance_policy"` |
| 498 | 500 |
// Orchestration defines cluster-level orchestration settings. |
| 499 | 501 |
Orchestration OrchestrationConfig `protobuf:"bytes,3,opt,name=orchestration" json:"orchestration"` |
| ... | ... |
@@ -503,12 +505,8 @@ type ClusterSpec struct {
|
| 503 | 503 |
Dispatcher DispatcherConfig `protobuf:"bytes,5,opt,name=dispatcher" json:"dispatcher"` |
| 504 | 504 |
// CAConfig defines cluster-level certificate authority settings. |
| 505 | 505 |
CAConfig CAConfig `protobuf:"bytes,6,opt,name=ca_config,json=caConfig" json:"ca_config"` |
| 506 |
- // DefaultLogDriver specifies the log driver to use for the cluster if not |
|
| 507 |
- // specified for each task. |
|
| 508 |
- // |
|
| 509 |
- // If this is changed, only new tasks will pick up the new log driver. |
|
| 510 |
- // Existing tasks will continue to use the previous default until rescheduled. |
|
| 511 |
- DefaultLogDriver *Driver `protobuf:"bytes,7,opt,name=default_log_driver,json=defaultLogDriver" json:"default_log_driver,omitempty"` |
|
| 506 |
+ // TaskDefaults specifies the default values to use for task creation. |
|
| 507 |
+ TaskDefaults TaskDefaults `protobuf:"bytes,7,opt,name=task_defaults,json=taskDefaults" json:"task_defaults"` |
|
| 512 | 508 |
} |
| 513 | 509 |
|
| 514 | 510 |
func (m *ClusterSpec) Reset() { *m = ClusterSpec{} }
|
| ... | ... |
@@ -759,7 +757,7 @@ func (m *ClusterSpec) Copy() *ClusterSpec {
|
| 759 | 759 |
Raft: *m.Raft.Copy(), |
| 760 | 760 |
Dispatcher: *m.Dispatcher.Copy(), |
| 761 | 761 |
CAConfig: *m.CAConfig.Copy(), |
| 762 |
- DefaultLogDriver: m.DefaultLogDriver.Copy(), |
|
| 762 |
+ TaskDefaults: *m.TaskDefaults.Copy(), |
|
| 763 | 763 |
} |
| 764 | 764 |
|
| 765 | 765 |
return o |
| ... | ... |
@@ -969,9 +967,7 @@ func (this *ClusterSpec) GoString() string {
|
| 969 | 969 |
s = append(s, "Raft: "+strings.Replace(this.Raft.GoString(), `&`, ``, 1)+",\n") |
| 970 | 970 |
s = append(s, "Dispatcher: "+strings.Replace(this.Dispatcher.GoString(), `&`, ``, 1)+",\n") |
| 971 | 971 |
s = append(s, "CAConfig: "+strings.Replace(this.CAConfig.GoString(), `&`, ``, 1)+",\n") |
| 972 |
- if this.DefaultLogDriver != nil {
|
|
| 973 |
- s = append(s, "DefaultLogDriver: "+fmt.Sprintf("%#v", this.DefaultLogDriver)+",\n")
|
|
| 974 |
- } |
|
| 972 |
+ s = append(s, "TaskDefaults: "+strings.Replace(this.TaskDefaults.GoString(), `&`, ``, 1)+",\n") |
|
| 975 | 973 |
s = append(s, "}") |
| 976 | 974 |
return strings.Join(s, "") |
| 977 | 975 |
} |
| ... | ... |
@@ -1621,16 +1617,14 @@ func (m *ClusterSpec) MarshalTo(data []byte) (int, error) {
|
| 1621 | 1621 |
return 0, err |
| 1622 | 1622 |
} |
| 1623 | 1623 |
i += n25 |
| 1624 |
- if m.DefaultLogDriver != nil {
|
|
| 1625 |
- data[i] = 0x3a |
|
| 1626 |
- i++ |
|
| 1627 |
- i = encodeVarintSpecs(data, i, uint64(m.DefaultLogDriver.Size())) |
|
| 1628 |
- n26, err := m.DefaultLogDriver.MarshalTo(data[i:]) |
|
| 1629 |
- if err != nil {
|
|
| 1630 |
- return 0, err |
|
| 1631 |
- } |
|
| 1632 |
- i += n26 |
|
| 1624 |
+ data[i] = 0x3a |
|
| 1625 |
+ i++ |
|
| 1626 |
+ i = encodeVarintSpecs(data, i, uint64(m.TaskDefaults.Size())) |
|
| 1627 |
+ n26, err := m.TaskDefaults.MarshalTo(data[i:]) |
|
| 1628 |
+ if err != nil {
|
|
| 1629 |
+ return 0, err |
|
| 1633 | 1630 |
} |
| 1631 |
+ i += n26 |
|
| 1634 | 1632 |
return i, nil |
| 1635 | 1633 |
} |
| 1636 | 1634 |
|
| ... | ... |
@@ -1909,10 +1903,8 @@ func (m *ClusterSpec) Size() (n int) {
|
| 1909 | 1909 |
n += 1 + l + sovSpecs(uint64(l)) |
| 1910 | 1910 |
l = m.CAConfig.Size() |
| 1911 | 1911 |
n += 1 + l + sovSpecs(uint64(l)) |
| 1912 |
- if m.DefaultLogDriver != nil {
|
|
| 1913 |
- l = m.DefaultLogDriver.Size() |
|
| 1914 |
- n += 1 + l + sovSpecs(uint64(l)) |
|
| 1915 |
- } |
|
| 1912 |
+ l = m.TaskDefaults.Size() |
|
| 1913 |
+ n += 1 + l + sovSpecs(uint64(l)) |
|
| 1916 | 1914 |
return n |
| 1917 | 1915 |
} |
| 1918 | 1916 |
|
| ... | ... |
@@ -2106,7 +2098,7 @@ func (this *ClusterSpec) String() string {
|
| 2106 | 2106 |
`Raft:` + strings.Replace(strings.Replace(this.Raft.String(), "RaftConfig", "RaftConfig", 1), `&`, ``, 1) + `,`, |
| 2107 | 2107 |
`Dispatcher:` + strings.Replace(strings.Replace(this.Dispatcher.String(), "DispatcherConfig", "DispatcherConfig", 1), `&`, ``, 1) + `,`, |
| 2108 | 2108 |
`CAConfig:` + strings.Replace(strings.Replace(this.CAConfig.String(), "CAConfig", "CAConfig", 1), `&`, ``, 1) + `,`, |
| 2109 |
- `DefaultLogDriver:` + strings.Replace(fmt.Sprintf("%v", this.DefaultLogDriver), "Driver", "Driver", 1) + `,`,
|
|
| 2109 |
+ `TaskDefaults:` + strings.Replace(strings.Replace(this.TaskDefaults.String(), "TaskDefaults", "TaskDefaults", 1), `&`, ``, 1) + `,`, |
|
| 2110 | 2110 |
`}`, |
| 2111 | 2111 |
}, "") |
| 2112 | 2112 |
return s |
| ... | ... |
@@ -3976,7 +3968,7 @@ func (m *ClusterSpec) Unmarshal(data []byte) error {
|
| 3976 | 3976 |
iNdEx = postIndex |
| 3977 | 3977 |
case 7: |
| 3978 | 3978 |
if wireType != 2 {
|
| 3979 |
- return fmt.Errorf("proto: wrong wireType = %d for field DefaultLogDriver", wireType)
|
|
| 3979 |
+ return fmt.Errorf("proto: wrong wireType = %d for field TaskDefaults", wireType)
|
|
| 3980 | 3980 |
} |
| 3981 | 3981 |
var msglen int |
| 3982 | 3982 |
for shift := uint(0); ; shift += 7 {
|
| ... | ... |
@@ -4000,10 +3992,7 @@ func (m *ClusterSpec) Unmarshal(data []byte) error {
|
| 4000 | 4000 |
if postIndex > l {
|
| 4001 | 4001 |
return io.ErrUnexpectedEOF |
| 4002 | 4002 |
} |
| 4003 |
- if m.DefaultLogDriver == nil {
|
|
| 4004 |
- m.DefaultLogDriver = &Driver{}
|
|
| 4005 |
- } |
|
| 4006 |
- if err := m.DefaultLogDriver.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
|
| 4003 |
+ if err := m.TaskDefaults.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
|
| 4007 | 4004 |
return err |
| 4008 | 4005 |
} |
| 4009 | 4006 |
iNdEx = postIndex |
| ... | ... |
@@ -4134,88 +4123,89 @@ var ( |
| 4134 | 4134 |
) |
| 4135 | 4135 |
|
| 4136 | 4136 |
var fileDescriptorSpecs = []byte{
|
| 4137 |
- // 1320 bytes of a gzipped FileDescriptorProto |
|
| 4138 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x57, 0xcd, 0x72, 0x1b, 0x45, |
|
| 4139 |
- 0x17, 0xf5, 0xcf, 0x58, 0x96, 0xee, 0xd8, 0x89, 0xd2, 0x95, 0x2f, 0x51, 0x94, 0x7c, 0xb6, 0x23, |
|
| 4140 |
- 0x02, 0x04, 0xaa, 0x90, 0x41, 0x50, 0xf9, 0xe1, 0xa7, 0x40, 0x96, 0x84, 0x63, 0x12, 0x3b, 0x53, |
|
| 4141 |
- 0xed, 0x24, 0x2c, 0x55, 0xed, 0x99, 0x8e, 0x3c, 0xe5, 0xd1, 0xcc, 0xd0, 0xd3, 0xa3, 0x94, 0x77, |
|
| 4142 |
- 0x2c, 0x53, 0x2c, 0xd8, 0xc1, 0x8e, 0x05, 0xc5, 0x3b, 0xf0, 0x0c, 0x59, 0xb2, 0xa1, 0x8a, 0x55, |
|
| 4143 |
- 0x8a, 0xe4, 0x09, 0xa8, 0xe2, 0x05, 0xb8, 0xdd, 0xd3, 0x92, 0x46, 0x64, 0x9c, 0xb0, 0xc8, 0x62, |
|
| 4144 |
- 0xaa, 0xba, 0x7b, 0xce, 0x39, 0xdd, 0x73, 0xef, 0xe9, 0x7b, 0x25, 0xb0, 0x93, 0x98, 0xbb, 0x49, |
|
| 4145 |
- 0x33, 0x16, 0x91, 0x8c, 0x08, 0xf1, 0x22, 0xf7, 0x88, 0x8b, 0x66, 0xf2, 0x88, 0x89, 0xe1, 0x91, |
|
| 4146 |
- 0x2f, 0x9b, 0xa3, 0x0f, 0xea, 0xb6, 0x3c, 0x8e, 0xb9, 0x01, 0xd4, 0xcf, 0x0e, 0xa2, 0x41, 0xa4, |
|
| 4147 |
- 0x87, 0x9b, 0x6a, 0x64, 0x56, 0xcf, 0x7b, 0xa9, 0x60, 0xd2, 0x8f, 0xc2, 0xcd, 0xf1, 0x20, 0x7b, |
|
| 4148 |
- 0xd1, 0xf8, 0xde, 0x82, 0xf2, 0x5e, 0xe4, 0xf1, 0x7d, 0xdc, 0x83, 0x6c, 0x83, 0xcd, 0xc2, 0x30, |
|
| 4149 |
- 0x92, 0x1a, 0x90, 0xd4, 0xe6, 0x37, 0xe6, 0xaf, 0xda, 0xad, 0xf5, 0xe6, 0x8b, 0x5b, 0x36, 0xdb, |
|
| 4150 |
- 0x53, 0xd8, 0x96, 0xf5, 0xe4, 0xe9, 0xfa, 0x1c, 0xcd, 0x33, 0xc9, 0xfb, 0x60, 0x89, 0x28, 0xe0, |
|
| 4151 |
- 0xb5, 0x05, 0x54, 0x38, 0xd5, 0xba, 0x54, 0xa4, 0xa0, 0x36, 0xa5, 0x88, 0xa1, 0x1a, 0x89, 0x5b, |
|
| 4152 |
- 0xc3, 0x90, 0x0f, 0x0f, 0xb8, 0x48, 0x0e, 0xfd, 0xb8, 0xb6, 0xa8, 0x79, 0x6f, 0x9f, 0xc4, 0x53, |
|
| 4153 |
- 0x87, 0x6d, 0xee, 0x4e, 0xe0, 0x34, 0x47, 0x25, 0xbb, 0xb0, 0xc2, 0x46, 0xcc, 0x0f, 0xd8, 0x81, |
|
| 4154 |
- 0x1f, 0xf8, 0xf2, 0xb8, 0x66, 0x69, 0xa9, 0x77, 0x5e, 0x2a, 0xd5, 0xce, 0x11, 0xe8, 0x0c, 0xbd, |
|
| 4155 |
- 0xe1, 0x01, 0x4c, 0x37, 0x22, 0x6f, 0xc1, 0xb2, 0xd3, 0xdb, 0xeb, 0xee, 0xec, 0x6d, 0x57, 0xe7, |
|
| 4156 |
- 0xea, 0x17, 0xbe, 0xfb, 0x69, 0xe3, 0x7f, 0x4a, 0x63, 0x0a, 0x70, 0x78, 0xe8, 0xf9, 0xe1, 0x80, |
|
| 4157 |
- 0x5c, 0x85, 0x72, 0xbb, 0xd3, 0xe9, 0x39, 0xf7, 0x7a, 0xdd, 0xea, 0x7c, 0xbd, 0x8e, 0xc0, 0x73, |
|
| 4158 |
- 0xb3, 0xc0, 0xb6, 0xeb, 0xf2, 0x58, 0x72, 0xaf, 0x6e, 0x3d, 0xfe, 0x65, 0x6d, 0xae, 0xf1, 0x78, |
|
| 4159 |
- 0x1e, 0x56, 0xf2, 0x87, 0xc0, 0x8d, 0x4a, 0xed, 0xce, 0xbd, 0x9d, 0x07, 0x3d, 0xdc, 0x67, 0x42, |
|
| 4160 |
- 0xcf, 0x23, 0xda, 0xae, 0xf4, 0x47, 0x9c, 0x5c, 0x81, 0x25, 0xa7, 0x7d, 0x7f, 0xbf, 0x87, 0xbb, |
|
| 4161 |
- 0x4c, 0x8e, 0x93, 0x87, 0x39, 0x2c, 0x4d, 0x34, 0xaa, 0x4b, 0xdb, 0x3b, 0x7b, 0xd5, 0x85, 0x62, |
|
| 4162 |
- 0x54, 0x57, 0x30, 0x3f, 0x34, 0x47, 0xf9, 0xd5, 0x02, 0x7b, 0x9f, 0x8b, 0x91, 0xef, 0xbe, 0x66, |
|
| 4163 |
- 0x4f, 0x5c, 0x03, 0x4b, 0xb2, 0xe4, 0x48, 0x7b, 0xc2, 0x2e, 0xf6, 0xc4, 0x3d, 0x7c, 0xaf, 0x36, |
|
| 4164 |
- 0x35, 0x74, 0x8d, 0x57, 0xce, 0x10, 0x3c, 0x0e, 0x7c, 0x97, 0x61, 0xbc, 0xb4, 0x33, 0xec, 0xd6, |
|
| 4165 |
- 0x9b, 0x45, 0x6c, 0x3a, 0x41, 0x99, 0xf3, 0xdf, 0x9a, 0xa3, 0x39, 0x2a, 0xf9, 0x04, 0x4a, 0x83, |
|
| 4166 |
- 0x20, 0x3a, 0x60, 0x81, 0xf6, 0x84, 0xdd, 0xba, 0x5c, 0x24, 0xb2, 0xad, 0x11, 0x53, 0x01, 0x43, |
|
| 4167 |
- 0x21, 0x37, 0xa0, 0x94, 0xc6, 0x1e, 0xea, 0xd4, 0x4a, 0x9a, 0xbc, 0x51, 0x44, 0xbe, 0xaf, 0x11, |
|
| 4168 |
- 0x9d, 0x28, 0x7c, 0xe8, 0x0f, 0xa8, 0xc1, 0x93, 0x7d, 0x28, 0x87, 0x5c, 0x3e, 0x8a, 0xc4, 0x51, |
|
| 4169 |
- 0x52, 0x5b, 0xde, 0x58, 0x44, 0xee, 0xf5, 0x22, 0x6e, 0x2e, 0xe6, 0xcd, 0xbd, 0x0c, 0xdf, 0x96, |
|
| 4170 |
- 0x92, 0xb9, 0x87, 0x43, 0x1e, 0x4a, 0x23, 0x39, 0x11, 0x22, 0x9f, 0x42, 0x19, 0xad, 0x16, 0x47, |
|
| 4171 |
- 0x7e, 0x28, 0x6b, 0xe5, 0x93, 0x0f, 0xd4, 0x33, 0x18, 0xa5, 0x4a, 0x27, 0x8c, 0xfa, 0x6d, 0x38, |
|
| 4172 |
- 0x7f, 0xc2, 0x16, 0xe4, 0x1c, 0x94, 0x24, 0x13, 0x03, 0x2e, 0x75, 0xa6, 0x2b, 0xd4, 0xcc, 0x48, |
|
| 4173 |
- 0x0d, 0x96, 0x59, 0xe0, 0xb3, 0x84, 0x27, 0x98, 0xc0, 0x45, 0x7c, 0x31, 0x9e, 0x6e, 0x95, 0xc0, |
|
| 4174 |
- 0x1a, 0xa2, 0x9f, 0x1a, 0x9b, 0x70, 0xe6, 0x85, 0x0c, 0x90, 0x3a, 0x94, 0x4d, 0x06, 0x32, 0xeb, |
|
| 4175 |
- 0x58, 0x74, 0x32, 0x6f, 0x9c, 0x86, 0xd5, 0x99, 0x68, 0x37, 0x7e, 0x5f, 0x80, 0xf2, 0xd8, 0x02, |
|
| 4176 |
- 0xa4, 0x0d, 0x15, 0x37, 0x0a, 0x25, 0x1a, 0x93, 0x0b, 0xe3, 0xba, 0xc2, 0x84, 0x75, 0xc6, 0x20, |
|
| 4177 |
- 0xc5, 0xc2, 0x84, 0x4d, 0x59, 0xe4, 0x4b, 0xa8, 0x08, 0x9e, 0x44, 0xa9, 0x70, 0xf5, 0xa9, 0x95, |
|
| 4178 |
- 0xc4, 0xd5, 0x62, 0xe3, 0x64, 0x20, 0xca, 0xbf, 0x49, 0x7d, 0xc1, 0x55, 0x34, 0x12, 0x3a, 0xa5, |
|
| 4179 |
- 0xa2, 0x71, 0x96, 0x71, 0x82, 0x81, 0x90, 0x2f, 0x73, 0x0e, 0xcd, 0x20, 0x4e, 0x84, 0x5f, 0x77, |
|
| 4180 |
- 0x4c, 0xc7, 0x0c, 0x24, 0x57, 0xe2, 0x80, 0xb9, 0x5a, 0xb5, 0xb6, 0xa4, 0xe9, 0xff, 0x2f, 0xa2, |
|
| 4181 |
- 0x3b, 0x63, 0x10, 0x9d, 0xe2, 0xc9, 0x4d, 0x80, 0x20, 0x1a, 0xf4, 0x3d, 0x81, 0x77, 0x5d, 0x18, |
|
| 4182 |
- 0xe7, 0xd5, 0x8b, 0xd8, 0x5d, 0x8d, 0xa0, 0x15, 0x44, 0x67, 0xc3, 0xad, 0x0a, 0x1e, 0x3a, 0x0d, |
|
| 4183 |
- 0xa5, 0x3f, 0xe4, 0x8d, 0x1f, 0x2d, 0x58, 0x9d, 0x09, 0x13, 0x39, 0x0b, 0x4b, 0xfe, 0x90, 0x0d, |
|
| 4184 |
- 0xb8, 0x49, 0x72, 0x36, 0x21, 0x3d, 0x28, 0x61, 0x45, 0xe0, 0x41, 0x96, 0x62, 0xbb, 0xf5, 0xde, |
|
| 4185 |
- 0x2b, 0xe3, 0xdd, 0xbc, 0xa3, 0xf1, 0xbd, 0x50, 0x8a, 0x63, 0x6a, 0xc8, 0xca, 0x2a, 0x6e, 0x34, |
|
| 4186 |
- 0x1c, 0xb2, 0x50, 0xdd, 0x56, 0x6d, 0x15, 0x33, 0x25, 0x04, 0x2c, 0x74, 0x53, 0x82, 0x51, 0x54, |
|
| 4187 |
- 0xcb, 0x7a, 0x4c, 0xaa, 0xb0, 0xc8, 0xc3, 0x11, 0x46, 0x46, 0x2d, 0xa9, 0xa1, 0x5a, 0xf1, 0xfc, |
|
| 4188 |
- 0xec, 0x6b, 0x71, 0x05, 0x87, 0x8a, 0x87, 0x65, 0x4c, 0xe0, 0xf5, 0x51, 0x4b, 0x7a, 0x4c, 0xae, |
|
| 4189 |
- 0x43, 0x69, 0x18, 0xe1, 0x07, 0x26, 0xe8, 0x7f, 0x75, 0xd8, 0x0b, 0x45, 0x87, 0xdd, 0x55, 0x08, |
|
| 4137 |
+ // 1332 bytes of a gzipped FileDescriptorProto |
|
| 4138 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x57, 0x4f, 0x6f, 0x1b, 0x45, |
|
| 4139 |
+ 0x14, 0x8f, 0x93, 0x8d, 0xe3, 0xbc, 0x75, 0xda, 0x74, 0x54, 0x5a, 0xd7, 0x2d, 0x49, 0x6a, 0x0a, |
|
| 4140 |
+ 0x14, 0x24, 0x1c, 0x30, 0xa8, 0x7f, 0xf8, 0x23, 0x70, 0x6c, 0x93, 0x86, 0x92, 0x74, 0x35, 0x69, |
|
| 4141 |
+ 0x2b, 0x71, 0xb2, 0x26, 0xbb, 0x53, 0x67, 0x95, 0xf5, 0xee, 0x32, 0x3b, 0xeb, 0x2a, 0x37, 0x8e, |
|
| 4142 |
+ 0x15, 0x07, 0x6e, 0x70, 0xe3, 0x84, 0xc4, 0x47, 0xe0, 0x33, 0xf4, 0xc8, 0x05, 0x89, 0x53, 0x45, |
|
| 4143 |
+ 0xfb, 0x09, 0x90, 0xf8, 0x02, 0xbc, 0x99, 0x1d, 0xdb, 0x6b, 0xba, 0x69, 0x39, 0xf4, 0x60, 0x69, |
|
| 4144 |
+ 0xe6, 0xcd, 0xef, 0xf7, 0x66, 0xe6, 0xbd, 0xdf, 0xbc, 0xb7, 0x06, 0x3b, 0x89, 0xb9, 0x9b, 0x34, |
|
| 4145 |
+ 0x63, 0x11, 0xc9, 0x88, 0x10, 0x2f, 0x72, 0x8f, 0xb8, 0x68, 0x26, 0x0f, 0x99, 0x18, 0x1e, 0xf9, |
|
| 4146 |
+ 0xb2, 0x39, 0xfa, 0xa0, 0x6e, 0xcb, 0xe3, 0x98, 0x1b, 0x40, 0xfd, 0xec, 0x20, 0x1a, 0x44, 0x7a, |
|
| 4147 |
+ 0xb8, 0xa9, 0x46, 0xc6, 0x7a, 0xde, 0x4b, 0x05, 0x93, 0x7e, 0x14, 0x6e, 0x8e, 0x07, 0xd9, 0x42, |
|
| 4148 |
+ 0xe3, 0x07, 0x0b, 0x2a, 0x7b, 0x91, 0xc7, 0xf7, 0x71, 0x0f, 0xb2, 0x0d, 0x36, 0x0b, 0xc3, 0x48, |
|
| 4149 |
+ 0x6a, 0x40, 0x52, 0x2b, 0x6d, 0x94, 0xae, 0xda, 0xad, 0xf5, 0xe6, 0xf3, 0x5b, 0x36, 0xdb, 0x53, |
|
| 4150 |
+ 0xd8, 0x96, 0xf5, 0xf8, 0xc9, 0xfa, 0x1c, 0xcd, 0x33, 0xc9, 0xfb, 0x60, 0x89, 0x28, 0xe0, 0xb5, |
|
| 4151 |
+ 0x79, 0xf4, 0x70, 0xaa, 0x75, 0xa9, 0xc8, 0x83, 0xda, 0x94, 0x22, 0x86, 0x6a, 0x24, 0x6e, 0x0d, |
|
| 4152 |
+ 0x43, 0x3e, 0x3c, 0xe0, 0x22, 0x39, 0xf4, 0xe3, 0xda, 0x82, 0xe6, 0xbd, 0x7d, 0x12, 0x4f, 0x1d, |
|
| 4153 |
+ 0xb6, 0xb9, 0x3b, 0x81, 0xd3, 0x1c, 0x95, 0xec, 0x42, 0x95, 0x8d, 0x98, 0x1f, 0xb0, 0x03, 0x3f, |
|
| 4154 |
+ 0xf0, 0xe5, 0x71, 0xcd, 0xd2, 0xae, 0xde, 0x79, 0xa1, 0xab, 0x76, 0x8e, 0x40, 0x67, 0xe8, 0x0d, |
|
| 4155 |
+ 0x0f, 0x60, 0xba, 0x11, 0x79, 0x0b, 0x96, 0x9c, 0xde, 0x5e, 0x77, 0x67, 0x6f, 0x7b, 0x75, 0xae, |
|
| 4156 |
+ 0x7e, 0xe1, 0xfb, 0x9f, 0x37, 0x5e, 0x53, 0x3e, 0xa6, 0x00, 0x87, 0x87, 0x9e, 0x1f, 0x0e, 0xc8, |
|
| 4157 |
+ 0x55, 0xa8, 0xb4, 0x3b, 0x9d, 0x9e, 0x73, 0xb7, 0xd7, 0x5d, 0x2d, 0xd5, 0xeb, 0x08, 0x3c, 0x37, |
|
| 4158 |
+ 0x0b, 0x6c, 0xbb, 0x2e, 0x8f, 0x25, 0xf7, 0xea, 0xd6, 0xa3, 0x5f, 0xd6, 0xe6, 0x1a, 0x8f, 0x4a, |
|
| 4159 |
+ 0x50, 0xcd, 0x1f, 0x02, 0x37, 0x2a, 0xb7, 0x3b, 0x77, 0x77, 0xee, 0xf7, 0x70, 0x9f, 0x09, 0x3d, |
|
| 4160 |
+ 0x8f, 0x68, 0xbb, 0xd2, 0x1f, 0x71, 0x72, 0x05, 0x16, 0x9d, 0xf6, 0xbd, 0xfd, 0x1e, 0xee, 0x32, |
|
| 4161 |
+ 0x39, 0x4e, 0x1e, 0xe6, 0xb0, 0x34, 0xd1, 0xa8, 0x2e, 0x6d, 0xef, 0xec, 0xad, 0xce, 0x17, 0xa3, |
|
| 4162 |
+ 0xba, 0x82, 0xf9, 0xa1, 0x39, 0xca, 0x6f, 0x16, 0xd8, 0xfb, 0x5c, 0x8c, 0x7c, 0xf7, 0x15, 0x6b, |
|
| 4163 |
+ 0xe2, 0x1a, 0x58, 0x92, 0x25, 0x47, 0x5a, 0x13, 0x76, 0xb1, 0x26, 0xee, 0xe2, 0xba, 0xda, 0xd4, |
|
| 4164 |
+ 0xd0, 0x35, 0x5e, 0x29, 0x43, 0xf0, 0x38, 0xf0, 0x5d, 0x86, 0xf1, 0xd2, 0xca, 0xb0, 0x5b, 0x6f, |
|
| 4165 |
+ 0x16, 0xb1, 0xe9, 0x04, 0x65, 0xce, 0x7f, 0x6b, 0x8e, 0xe6, 0xa8, 0xe4, 0x13, 0x28, 0x0f, 0x82, |
|
| 4166 |
+ 0xe8, 0x80, 0x05, 0x5a, 0x13, 0x76, 0xeb, 0x72, 0x91, 0x93, 0x6d, 0x8d, 0x98, 0x3a, 0x30, 0x14, |
|
| 4167 |
+ 0x72, 0x03, 0xca, 0x69, 0xec, 0xa1, 0x9f, 0x5a, 0x59, 0x93, 0x37, 0x8a, 0xc8, 0xf7, 0x34, 0xa2, |
|
| 4168 |
+ 0x13, 0x85, 0x0f, 0xfc, 0x01, 0x35, 0x78, 0xb2, 0x0f, 0x95, 0x90, 0xcb, 0x87, 0x91, 0x38, 0x4a, |
|
| 4169 |
+ 0x6a, 0x4b, 0x1b, 0x0b, 0xc8, 0xbd, 0x5e, 0xc4, 0xcd, 0xc5, 0xbc, 0xb9, 0x97, 0xe1, 0xdb, 0x52, |
|
| 4170 |
+ 0x32, 0xf7, 0x70, 0xc8, 0x43, 0x69, 0x5c, 0x4e, 0x1c, 0x91, 0x4f, 0xa1, 0x82, 0x52, 0x8b, 0x23, |
|
| 4171 |
+ 0x3f, 0x94, 0xb5, 0xca, 0xc9, 0x07, 0xea, 0x19, 0x8c, 0xf2, 0x4a, 0x27, 0x8c, 0xfa, 0x6d, 0x38, |
|
| 4172 |
+ 0x7f, 0xc2, 0x16, 0xe4, 0x1c, 0x94, 0x25, 0x13, 0x03, 0x2e, 0x75, 0xa6, 0x97, 0xa9, 0x99, 0x91, |
|
| 4173 |
+ 0x1a, 0x2c, 0xb1, 0xc0, 0x67, 0x09, 0x4f, 0x30, 0x81, 0x0b, 0xb8, 0x30, 0x9e, 0x6e, 0x95, 0xc1, |
|
| 4174 |
+ 0x1a, 0xa2, 0x9e, 0x1a, 0x9b, 0x70, 0xe6, 0xb9, 0x0c, 0x90, 0x3a, 0x54, 0x4c, 0x06, 0x32, 0xe9, |
|
| 4175 |
+ 0x58, 0x74, 0x32, 0x6f, 0x9c, 0x86, 0x95, 0x99, 0x68, 0x37, 0xfe, 0x98, 0x87, 0xca, 0x58, 0x02, |
|
| 4176 |
+ 0xa4, 0x0d, 0xcb, 0x6e, 0x14, 0x4a, 0x14, 0x26, 0x17, 0x46, 0x75, 0x85, 0x09, 0xeb, 0x8c, 0x41, |
|
| 4177 |
+ 0x8a, 0x85, 0x09, 0x9b, 0xb2, 0xc8, 0x97, 0xb0, 0x2c, 0x78, 0x12, 0xa5, 0xc2, 0xd5, 0xa7, 0x56, |
|
| 4178 |
+ 0x2e, 0xae, 0x16, 0x0b, 0x27, 0x03, 0x51, 0xfe, 0x6d, 0xea, 0x0b, 0xae, 0xa2, 0x91, 0xd0, 0x29, |
|
| 4179 |
+ 0x15, 0x85, 0xb3, 0x84, 0x13, 0x0c, 0x84, 0x7c, 0x91, 0x72, 0x68, 0x06, 0x71, 0x22, 0xbc, 0xdd, |
|
| 4180 |
+ 0x31, 0x1d, 0x33, 0x90, 0xbc, 0x1c, 0x07, 0xcc, 0xd5, 0x5e, 0x6b, 0x8b, 0x9a, 0xfe, 0x7a, 0x11, |
|
| 4181 |
+ 0xdd, 0x19, 0x83, 0xe8, 0x14, 0x4f, 0x6e, 0x02, 0x04, 0xd1, 0xa0, 0xef, 0x09, 0x7c, 0xeb, 0xc2, |
|
| 4182 |
+ 0x28, 0xaf, 0x5e, 0xc4, 0xee, 0x6a, 0x04, 0x5d, 0x46, 0x74, 0x36, 0xdc, 0x5a, 0xc6, 0x43, 0xa7, |
|
| 4183 |
+ 0xa1, 0xf4, 0x87, 0xbc, 0xf1, 0x93, 0x05, 0x2b, 0x33, 0x61, 0x22, 0x67, 0x61, 0xd1, 0x1f, 0xb2, |
|
| 4184 |
+ 0x01, 0x37, 0x49, 0xce, 0x26, 0xa4, 0x07, 0x65, 0xac, 0x08, 0x3c, 0xc8, 0x52, 0x6c, 0xb7, 0xde, |
|
| 4185 |
+ 0x7b, 0x69, 0xbc, 0x9b, 0x5f, 0x6b, 0x7c, 0x2f, 0x94, 0xe2, 0x98, 0x1a, 0xb2, 0x92, 0x8a, 0x1b, |
|
| 4186 |
+ 0x0d, 0x87, 0x2c, 0x54, 0xaf, 0x55, 0x4b, 0xc5, 0x4c, 0x09, 0x01, 0x0b, 0xd5, 0x94, 0x60, 0x14, |
|
| 4187 |
+ 0x95, 0x59, 0x8f, 0xc9, 0x2a, 0x2c, 0xf0, 0x70, 0x84, 0x91, 0x51, 0x26, 0x35, 0x54, 0x16, 0xcf, |
|
| 4188 |
+ 0xcf, 0x6e, 0x8b, 0x16, 0x1c, 0x2a, 0x1e, 0x96, 0x31, 0x81, 0xcf, 0x47, 0x99, 0xf4, 0x98, 0x5c, |
|
| 4189 |
+ 0x87, 0xf2, 0x30, 0xc2, 0x0b, 0x26, 0xa8, 0x7f, 0x75, 0xd8, 0x0b, 0x45, 0x87, 0xdd, 0x55, 0x08, |
|
| 4190 | 4190 |
0x53, 0x4d, 0x0c, 0x9c, 0xdc, 0x82, 0x33, 0x89, 0x8c, 0xe2, 0xfe, 0x40, 0x60, 0x94, 0xfb, 0x31, |
| 4191 |
- 0x17, 0x7e, 0xe4, 0xd5, 0x2a, 0x27, 0x17, 0xa5, 0xae, 0x69, 0x98, 0xf4, 0xb4, 0xa2, 0x6d, 0x2b, |
|
| 4192 |
- 0x96, 0xa3, 0x49, 0xc4, 0x81, 0x95, 0x38, 0x0d, 0x82, 0x7e, 0x14, 0x67, 0xb5, 0x11, 0xb4, 0xc8, |
|
| 4193 |
- 0x7f, 0x88, 0x9a, 0x83, 0xac, 0xbb, 0x19, 0x89, 0xda, 0xf1, 0x74, 0x52, 0xbf, 0x09, 0x76, 0x2e, |
|
| 4194 |
- 0xa2, 0x2a, 0x12, 0x47, 0xfc, 0xd8, 0x24, 0x49, 0x0d, 0x55, 0xe2, 0x46, 0x2c, 0x48, 0xb3, 0xce, |
|
| 4195 |
- 0x8a, 0x89, 0xd3, 0x93, 0x8f, 0x17, 0x6e, 0xcc, 0xd7, 0x5b, 0x60, 0xe7, 0x64, 0xc9, 0x1b, 0xb0, |
|
| 4196 |
- 0x2a, 0xf8, 0xc0, 0x4f, 0x50, 0xa6, 0xcf, 0x52, 0x79, 0x58, 0xfb, 0x42, 0x13, 0x56, 0xc6, 0x8b, |
|
| 4197 |
- 0x6d, 0x5c, 0x6b, 0xfc, 0x8d, 0x6d, 0x27, 0x5f, 0x22, 0x48, 0x27, 0xbb, 0xcb, 0x7a, 0xc7, 0x53, |
|
| 4198 |
- 0xad, 0xcd, 0x57, 0x95, 0x14, 0x7d, 0x73, 0x82, 0x54, 0xed, 0xb8, 0xab, 0xda, 0xb9, 0x26, 0x93, |
|
| 4199 |
- 0x8f, 0x60, 0x29, 0x8e, 0x84, 0x1c, 0xbb, 0x68, 0xad, 0xd0, 0xed, 0x08, 0x30, 0x45, 0x2d, 0x03, |
|
| 4200 |
- 0x37, 0x0e, 0xe1, 0xd4, 0xac, 0x1a, 0x76, 0xad, 0xc5, 0x07, 0x3b, 0x0e, 0x36, 0xc0, 0x8b, 0xd8, |
|
| 4201 |
- 0xb3, 0xce, 0xcf, 0xbe, 0x7c, 0xe0, 0x0b, 0x99, 0xb2, 0x60, 0xc7, 0x21, 0xef, 0x62, 0x6f, 0xdb, |
|
| 4202 |
- 0xdb, 0xa7, 0x14, 0x3b, 0xe0, 0x3a, 0xe2, 0x2e, 0xce, 0xe2, 0xd4, 0x2b, 0x4c, 0xbb, 0x47, 0xa3, |
|
| 4203 |
- 0x83, 0x49, 0x87, 0xfb, 0x61, 0x01, 0x6c, 0x53, 0xfe, 0x5e, 0x6f, 0x87, 0xfb, 0x1c, 0x56, 0xb3, |
|
| 4204 |
- 0x9b, 0xda, 0x77, 0xf5, 0xa7, 0x99, 0x9a, 0xf3, 0xb2, 0x0b, 0xbb, 0x92, 0x11, 0x4c, 0xf1, 0xbd, |
|
| 4205 |
- 0x0c, 0x2b, 0x7e, 0x3c, 0xba, 0xd6, 0xe7, 0x21, 0x3b, 0x08, 0x4c, 0xb3, 0x2b, 0x53, 0x5b, 0xad, |
|
| 4206 |
- 0xf5, 0xb2, 0x25, 0x55, 0x50, 0x31, 0xf8, 0x5c, 0x84, 0xa6, 0x8d, 0x95, 0xe9, 0x64, 0x4e, 0x3e, |
|
| 4207 |
- 0x03, 0xcb, 0x8f, 0xd9, 0xd0, 0x54, 0x99, 0xc2, 0x2f, 0xd8, 0x71, 0xda, 0xbb, 0xc6, 0x22, 0x5b, |
|
| 4208 |
- 0xe5, 0xe7, 0x4f, 0xd7, 0x2d, 0xb5, 0x40, 0x35, 0xad, 0xf1, 0x33, 0x76, 0xfe, 0x4e, 0x90, 0x26, |
|
| 4209 |
- 0xd2, 0x14, 0x89, 0xd7, 0x16, 0x97, 0xaf, 0xe1, 0x0c, 0xd3, 0xbf, 0x77, 0x58, 0xa8, 0x6e, 0x9c, |
|
| 4210 |
- 0x2e, 0x90, 0x26, 0x36, 0x57, 0x0a, 0xe5, 0x26, 0xe0, 0xac, 0x98, 0x1a, 0xcd, 0x2a, 0xfb, 0xd7, |
|
| 4211 |
- 0x3a, 0xb6, 0xd6, 0xd5, 0x48, 0xb8, 0x87, 0x58, 0x69, 0xb3, 0x2b, 0x6a, 0x7e, 0x1d, 0x14, 0xfe, |
|
| 4212 |
- 0x6e, 0xbc, 0x9b, 0x07, 0x66, 0xf1, 0x36, 0xba, 0xb3, 0x1a, 0xd8, 0xe9, 0x2d, 0xc1, 0x1e, 0x8e, |
|
| 4213 |
- 0x4b, 0x7d, 0xa1, 0x7b, 0x29, 0xbe, 0x9f, 0x91, 0xd0, 0x0c, 0xf2, 0x15, 0x80, 0xe7, 0x27, 0x31, |
|
| 4214 |
- 0x93, 0x28, 0x27, 0x4c, 0x16, 0x0a, 0x3f, 0xb0, 0x3b, 0x41, 0xcd, 0xa8, 0xe4, 0xd8, 0xe4, 0x36, |
|
| 4215 |
- 0xb6, 0x3f, 0x36, 0xf6, 0x51, 0xe9, 0xe4, 0xea, 0xd4, 0x69, 0x1b, 0x89, 0xaa, 0x92, 0xc0, 0x8c, |
|
| 4216 |
- 0x96, 0xc7, 0x2b, 0xb4, 0xec, 0x32, 0xe3, 0xab, 0x5b, 0x40, 0x3c, 0xfe, 0x90, 0xa5, 0x81, 0xec, |
|
| 4217 |
- 0xe7, 0xda, 0xc9, 0xf2, 0x2b, 0xdd, 0x59, 0x35, 0xac, 0x3b, 0x93, 0xae, 0x72, 0xe9, 0xc9, 0xb3, |
|
| 4218 |
- 0xb5, 0xb9, 0x3f, 0xf0, 0xf9, 0xeb, 0xd9, 0xda, 0xfc, 0xb7, 0xcf, 0xd7, 0xe6, 0x9f, 0xe0, 0xf3, |
|
| 4219 |
- 0x1b, 0x3e, 0x7f, 0xe2, 0x73, 0x50, 0xd2, 0xff, 0x29, 0x3e, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, |
|
| 4220 |
- 0xde, 0xdd, 0x4d, 0x58, 0xb2, 0x0c, 0x00, 0x00, |
|
| 4191 |
+ 0x17, 0x7e, 0xe4, 0xd5, 0x96, 0x4f, 0x2e, 0x4a, 0x5d, 0xd3, 0x30, 0xe9, 0x69, 0x45, 0xdb, 0x56, |
|
| 4192 |
+ 0x2c, 0x47, 0x93, 0x88, 0x03, 0xd5, 0x38, 0x0d, 0x82, 0x7e, 0x14, 0x67, 0xb5, 0x11, 0xb4, 0x93, |
|
| 4193 |
+ 0xff, 0x11, 0x35, 0x07, 0x59, 0x77, 0x32, 0x12, 0xb5, 0xe3, 0xe9, 0xa4, 0x7e, 0x13, 0xec, 0x5c, |
|
| 4194 |
+ 0x44, 0x55, 0x24, 0x8e, 0xf8, 0xb1, 0x49, 0x92, 0x1a, 0xaa, 0xc4, 0x8d, 0x58, 0x90, 0x66, 0x9d, |
|
| 4195 |
+ 0x15, 0x13, 0xa7, 0x27, 0x1f, 0xcf, 0xdf, 0x28, 0xd5, 0x5b, 0x60, 0xe7, 0xdc, 0x92, 0x37, 0x60, |
|
| 4196 |
+ 0x45, 0xf0, 0x81, 0x9f, 0xa0, 0x9b, 0x3e, 0x4b, 0xe5, 0x61, 0xed, 0x0b, 0x4d, 0xa8, 0x8e, 0x8d, |
|
| 4197 |
+ 0x6d, 0xb4, 0x35, 0xfe, 0xc1, 0xb6, 0x93, 0x2f, 0x11, 0xa4, 0x93, 0xbd, 0x65, 0xbd, 0xe3, 0xa9, |
|
| 4198 |
+ 0xd6, 0xe6, 0xcb, 0x4a, 0x8a, 0x7e, 0x39, 0x41, 0xaa, 0x76, 0xdc, 0x55, 0xed, 0x5c, 0x93, 0xc9, |
|
| 4199 |
+ 0x47, 0xb0, 0x18, 0x47, 0x42, 0x8e, 0x55, 0xb4, 0x56, 0xa8, 0x76, 0x04, 0x98, 0xa2, 0x96, 0x81, |
|
| 4200 |
+ 0x1b, 0x87, 0x70, 0x6a, 0xd6, 0x1b, 0x76, 0xad, 0x85, 0xfb, 0x3b, 0x0e, 0x36, 0xc0, 0x8b, 0xd8, |
|
| 4201 |
+ 0xb3, 0xce, 0xcf, 0x2e, 0xde, 0xf7, 0x85, 0x4c, 0x59, 0xb0, 0xe3, 0x90, 0x77, 0xb1, 0xb7, 0xed, |
|
| 4202 |
+ 0xed, 0x53, 0x8a, 0x1d, 0x70, 0x1d, 0x71, 0x17, 0x67, 0x71, 0x6a, 0x09, 0xd3, 0xee, 0xd1, 0xe8, |
|
| 4203 |
+ 0x60, 0xd2, 0xe1, 0x7e, 0x9c, 0x07, 0xdb, 0x94, 0xbf, 0x57, 0xdb, 0xe1, 0x3e, 0x87, 0x95, 0xec, |
|
| 4204 |
+ 0xa5, 0xf6, 0x5d, 0x7d, 0x35, 0x53, 0x73, 0x5e, 0xf4, 0x60, 0xab, 0x19, 0xc1, 0x14, 0xdf, 0xcb, |
|
| 4205 |
+ 0x50, 0xf5, 0xe3, 0xd1, 0xb5, 0x3e, 0x0f, 0xd9, 0x41, 0x60, 0x9a, 0x5d, 0x85, 0xda, 0xca, 0xd6, |
|
| 4206 |
+ 0xcb, 0x4c, 0xaa, 0xa0, 0x62, 0xf0, 0xb9, 0x08, 0x4d, 0x1b, 0xab, 0xd0, 0xc9, 0x9c, 0x7c, 0x06, |
|
| 4207 |
+ 0x96, 0x1f, 0xb3, 0xa1, 0xa9, 0x32, 0x85, 0x37, 0xd8, 0x71, 0xda, 0xbb, 0x46, 0x22, 0x5b, 0x95, |
|
| 4208 |
+ 0x67, 0x4f, 0xd6, 0x2d, 0x65, 0xa0, 0x9a, 0xd6, 0xf8, 0x15, 0x3b, 0x7f, 0x27, 0x48, 0x13, 0x69, |
|
| 4209 |
+ 0x8a, 0xc4, 0x2b, 0x8b, 0xcb, 0x37, 0x70, 0x86, 0xe9, 0xef, 0x1d, 0x16, 0xaa, 0x17, 0xa7, 0x0b, |
|
| 4210 |
+ 0xa4, 0x89, 0xcd, 0x95, 0x42, 0x77, 0x13, 0x70, 0x56, 0x4c, 0xb7, 0xca, 0xca, 0x67, 0xad, 0x44, |
|
| 4211 |
+ 0x57, 0xd9, 0x7f, 0x56, 0xb0, 0xb9, 0xae, 0x44, 0xc2, 0x3d, 0xc4, 0x5a, 0x9b, 0x3d, 0x52, 0xf3, |
|
| 4212 |
+ 0x7d, 0x50, 0xf8, 0xe5, 0x78, 0x27, 0x0f, 0xcc, 0x22, 0x6e, 0x4e, 0x3b, 0xeb, 0x03, 0x7b, 0xbd, |
|
| 4213 |
+ 0x25, 0xd8, 0x83, 0x71, 0xb1, 0x2f, 0xd4, 0x2f, 0xc5, 0xf5, 0x19, 0x17, 0x9a, 0x41, 0xbe, 0x02, |
|
| 4214 |
+ 0xf0, 0xfc, 0x24, 0x66, 0x12, 0xdd, 0x09, 0x93, 0x87, 0xc2, 0x2b, 0x76, 0x27, 0xa8, 0x19, 0x2f, |
|
| 4215 |
+ 0x39, 0x36, 0xb9, 0x8d, 0x0d, 0x90, 0x8d, 0x95, 0x54, 0x3e, 0xb9, 0x3e, 0x75, 0xda, 0xc6, 0xc5, |
|
| 4216 |
+ 0xaa, 0x72, 0x81, 0x39, 0xad, 0x8c, 0x2d, 0xb4, 0xe2, 0x32, 0xa3, 0xac, 0xdb, 0xb0, 0xa2, 0x3e, |
|
| 4217 |
+ 0xa6, 0xfa, 0x1e, 0x7f, 0xc0, 0xd2, 0x40, 0x26, 0xba, 0x94, 0x9e, 0xf0, 0xd1, 0xa0, 0x5a, 0x70, |
|
| 4218 |
+ 0xd7, 0xe0, 0xcc, 0xb9, 0xaa, 0x32, 0x6f, 0xbb, 0xf4, 0xf8, 0xe9, 0xda, 0xdc, 0x9f, 0xf8, 0xfb, |
|
| 4219 |
+ 0xfb, 0xe9, 0x5a, 0xe9, 0xbb, 0x67, 0x6b, 0xa5, 0xc7, 0xf8, 0xfb, 0x1d, 0x7f, 0x7f, 0xe1, 0xef, |
|
| 4220 |
+ 0xa0, 0xac, 0xff, 0x58, 0x7c, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x10, 0x79, 0x5b, |
|
| 4221 |
+ 0xb7, 0x0c, 0x00, 0x00, |
|
| 4221 | 4222 |
} |
| ... | ... |
@@ -233,8 +233,10 @@ message NetworkSpec {
|
| 233 | 233 |
message ClusterSpec {
|
| 234 | 234 |
Annotations annotations = 1 [(gogoproto.nullable) = false]; |
| 235 | 235 |
|
| 236 |
- // AcceptancePolicy defines the certificate issuance policy. |
|
| 237 |
- AcceptancePolicy acceptance_policy = 2 [(gogoproto.nullable) = false]; |
|
| 236 |
+ // DEPRECATED: AcceptancePolicy defines the certificate issuance policy. |
|
| 237 |
+ // Acceptance policy is no longer customizable, and secrets have been |
|
| 238 |
+ // replaced with join tokens. |
|
| 239 |
+ AcceptancePolicy acceptance_policy = 2 [deprecated=true, (gogoproto.nullable) = false]; |
|
| 238 | 240 |
|
| 239 | 241 |
// Orchestration defines cluster-level orchestration settings. |
| 240 | 242 |
OrchestrationConfig orchestration = 3 [(gogoproto.nullable) = false]; |
| ... | ... |
@@ -248,10 +250,6 @@ message ClusterSpec {
|
| 248 | 248 |
// CAConfig defines cluster-level certificate authority settings. |
| 249 | 249 |
CAConfig ca_config = 6 [(gogoproto.nullable) = false, (gogoproto.customname) = "CAConfig"]; |
| 250 | 250 |
|
| 251 |
- // DefaultLogDriver specifies the log driver to use for the cluster if not |
|
| 252 |
- // specified for each task. |
|
| 253 |
- // |
|
| 254 |
- // If this is changed, only new tasks will pick up the new log driver. |
|
| 255 |
- // Existing tasks will continue to use the previous default until rescheduled. |
|
| 256 |
- Driver default_log_driver = 7; |
|
| 251 |
+ // TaskDefaults specifies the default values to use for task creation. |
|
| 252 |
+ TaskDefaults task_defaults = 7 [(gogoproto.nullable) = false]; |
|
| 257 | 253 |
} |
| ... | ... |
@@ -44,9 +44,11 @@ |
| 44 | 44 |
ExternalCA |
| 45 | 45 |
CAConfig |
| 46 | 46 |
OrchestrationConfig |
| 47 |
+ TaskDefaults |
|
| 47 | 48 |
DispatcherConfig |
| 48 | 49 |
RaftConfig |
| 49 | 50 |
Placement |
| 51 |
+ JoinTokens |
|
| 50 | 52 |
RootCA |
| 51 | 53 |
Certificate |
| 52 | 54 |
EncryptionKey |
| ... | ... |
@@ -104,6 +106,7 @@ |
| 104 | 104 |
GetClusterResponse |
| 105 | 105 |
ListClustersRequest |
| 106 | 106 |
ListClustersResponse |
| 107 |
+ JoinTokenRotation |
|
| 107 | 108 |
UpdateClusterRequest |
| 108 | 109 |
UpdateClusterResponse |
| 109 | 110 |
SessionRequest |
| ... | ... |
@@ -509,7 +512,7 @@ func (x EncryptionKey_Algorithm) String() string {
|
| 509 | 509 |
return proto.EnumName(EncryptionKey_Algorithm_name, int32(x)) |
| 510 | 510 |
} |
| 511 | 511 |
func (EncryptionKey_Algorithm) EnumDescriptor() ([]byte, []int) {
|
| 512 |
- return fileDescriptorTypes, []int{32, 0}
|
|
| 512 |
+ return fileDescriptorTypes, []int{34, 0}
|
|
| 513 | 513 |
} |
| 514 | 514 |
|
| 515 | 515 |
// Version tracks the last time an object in the store was updated. |
| ... | ... |
@@ -1048,6 +1051,20 @@ func (m *OrchestrationConfig) Reset() { *m = OrchestrationCon
|
| 1048 | 1048 |
func (*OrchestrationConfig) ProtoMessage() {}
|
| 1049 | 1049 |
func (*OrchestrationConfig) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{26} }
|
| 1050 | 1050 |
|
| 1051 |
+// TaskDefaults specifies default values for task creation. |
|
| 1052 |
+type TaskDefaults struct {
|
|
| 1053 |
+ // LogDriver specifies the log driver to use for the cluster if not |
|
| 1054 |
+ // specified for each task. |
|
| 1055 |
+ // |
|
| 1056 |
+ // If this is changed, only new tasks will pick up the new log driver. |
|
| 1057 |
+ // Existing tasks will continue to use the previous default until rescheduled. |
|
| 1058 |
+ LogDriver *Driver `protobuf:"bytes,1,opt,name=log_driver,json=logDriver" json:"log_driver,omitempty"` |
|
| 1059 |
+} |
|
| 1060 |
+ |
|
| 1061 |
+func (m *TaskDefaults) Reset() { *m = TaskDefaults{} }
|
|
| 1062 |
+func (*TaskDefaults) ProtoMessage() {}
|
|
| 1063 |
+func (*TaskDefaults) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{27} }
|
|
| 1064 |
+ |
|
| 1051 | 1065 |
// DispatcherConfig defines cluster-level dispatcher settings. |
| 1052 | 1066 |
type DispatcherConfig struct {
|
| 1053 | 1067 |
// HeartbeatPeriod defines how often agent should send heartbeats to |
| ... | ... |
@@ -1057,7 +1074,7 @@ type DispatcherConfig struct {
|
| 1057 | 1057 |
|
| 1058 | 1058 |
func (m *DispatcherConfig) Reset() { *m = DispatcherConfig{} }
|
| 1059 | 1059 |
func (*DispatcherConfig) ProtoMessage() {}
|
| 1060 |
-func (*DispatcherConfig) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{27} }
|
|
| 1060 |
+func (*DispatcherConfig) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{28} }
|
|
| 1061 | 1061 |
|
| 1062 | 1062 |
// RaftConfig defines raft settings for the cluster. |
| 1063 | 1063 |
type RaftConfig struct {
|
| ... | ... |
@@ -1079,7 +1096,7 @@ type RaftConfig struct {
|
| 1079 | 1079 |
|
| 1080 | 1080 |
func (m *RaftConfig) Reset() { *m = RaftConfig{} }
|
| 1081 | 1081 |
func (*RaftConfig) ProtoMessage() {}
|
| 1082 |
-func (*RaftConfig) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{28} }
|
|
| 1082 |
+func (*RaftConfig) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{29} }
|
|
| 1083 | 1083 |
|
| 1084 | 1084 |
// Placement specifies task distribution constraints. |
| 1085 | 1085 |
type Placement struct {
|
| ... | ... |
@@ -1089,7 +1106,19 @@ type Placement struct {
|
| 1089 | 1089 |
|
| 1090 | 1090 |
func (m *Placement) Reset() { *m = Placement{} }
|
| 1091 | 1091 |
func (*Placement) ProtoMessage() {}
|
| 1092 |
-func (*Placement) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{29} }
|
|
| 1092 |
+func (*Placement) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{30} }
|
|
| 1093 |
+ |
|
| 1094 |
+// JoinToken contains the join tokens for workers and managers. |
|
| 1095 |
+type JoinTokens struct {
|
|
| 1096 |
+ // Worker is the join token workers may use to join the swarm. |
|
| 1097 |
+ Worker string `protobuf:"bytes,1,opt,name=worker,proto3" json:"worker,omitempty"` |
|
| 1098 |
+ // Manager is the join token workers may use to join the swarm. |
|
| 1099 |
+ Manager string `protobuf:"bytes,2,opt,name=manager,proto3" json:"manager,omitempty"` |
|
| 1100 |
+} |
|
| 1101 |
+ |
|
| 1102 |
+func (m *JoinTokens) Reset() { *m = JoinTokens{} }
|
|
| 1103 |
+func (*JoinTokens) ProtoMessage() {}
|
|
| 1104 |
+func (*JoinTokens) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{31} }
|
|
| 1093 | 1105 |
|
| 1094 | 1106 |
type RootCA struct {
|
| 1095 | 1107 |
// CAKey is the root CA private key. |
| ... | ... |
@@ -1098,11 +1127,13 @@ type RootCA struct {
|
| 1098 | 1098 |
CACert []byte `protobuf:"bytes,2,opt,name=ca_cert,json=caCert,proto3" json:"ca_cert,omitempty"` |
| 1099 | 1099 |
// CACertHash is the digest of the CA Certificate. |
| 1100 | 1100 |
CACertHash string `protobuf:"bytes,3,opt,name=ca_cert_hash,json=caCertHash,proto3" json:"ca_cert_hash,omitempty"` |
| 1101 |
+ // JoinTokens contains the join tokens for workers and managers. |
|
| 1102 |
+ JoinTokens JoinTokens `protobuf:"bytes,4,opt,name=join_tokens,json=joinTokens" json:"join_tokens"` |
|
| 1101 | 1103 |
} |
| 1102 | 1104 |
|
| 1103 | 1105 |
func (m *RootCA) Reset() { *m = RootCA{} }
|
| 1104 | 1106 |
func (*RootCA) ProtoMessage() {}
|
| 1105 |
-func (*RootCA) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{30} }
|
|
| 1107 |
+func (*RootCA) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{32} }
|
|
| 1106 | 1108 |
|
| 1107 | 1109 |
type Certificate struct {
|
| 1108 | 1110 |
Role NodeRole `protobuf:"varint,1,opt,name=role,proto3,enum=docker.swarmkit.v1.NodeRole" json:"role,omitempty"` |
| ... | ... |
@@ -1115,7 +1146,7 @@ type Certificate struct {
|
| 1115 | 1115 |
|
| 1116 | 1116 |
func (m *Certificate) Reset() { *m = Certificate{} }
|
| 1117 | 1117 |
func (*Certificate) ProtoMessage() {}
|
| 1118 |
-func (*Certificate) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{31} }
|
|
| 1118 |
+func (*Certificate) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{33} }
|
|
| 1119 | 1119 |
|
| 1120 | 1120 |
// Symmetric keys to encrypt inter-agent communication. |
| 1121 | 1121 |
type EncryptionKey struct {
|
| ... | ... |
@@ -1131,7 +1162,7 @@ type EncryptionKey struct {
|
| 1131 | 1131 |
|
| 1132 | 1132 |
func (m *EncryptionKey) Reset() { *m = EncryptionKey{} }
|
| 1133 | 1133 |
func (*EncryptionKey) ProtoMessage() {}
|
| 1134 |
-func (*EncryptionKey) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{32} }
|
|
| 1134 |
+func (*EncryptionKey) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{34} }
|
|
| 1135 | 1135 |
|
| 1136 | 1136 |
// ManagerStatus provides informations about the state of a manager in the cluster. |
| 1137 | 1137 |
type ManagerStatus struct {
|
| ... | ... |
@@ -1148,7 +1179,7 @@ type ManagerStatus struct {
|
| 1148 | 1148 |
|
| 1149 | 1149 |
func (m *ManagerStatus) Reset() { *m = ManagerStatus{} }
|
| 1150 | 1150 |
func (*ManagerStatus) ProtoMessage() {}
|
| 1151 |
-func (*ManagerStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{33} }
|
|
| 1151 |
+func (*ManagerStatus) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{35} }
|
|
| 1152 | 1152 |
|
| 1153 | 1153 |
func init() {
|
| 1154 | 1154 |
proto.RegisterType((*Version)(nil), "docker.swarmkit.v1.Version") |
| ... | ... |
@@ -1183,9 +1214,11 @@ func init() {
|
| 1183 | 1183 |
proto.RegisterType((*ExternalCA)(nil), "docker.swarmkit.v1.ExternalCA") |
| 1184 | 1184 |
proto.RegisterType((*CAConfig)(nil), "docker.swarmkit.v1.CAConfig") |
| 1185 | 1185 |
proto.RegisterType((*OrchestrationConfig)(nil), "docker.swarmkit.v1.OrchestrationConfig") |
| 1186 |
+ proto.RegisterType((*TaskDefaults)(nil), "docker.swarmkit.v1.TaskDefaults") |
|
| 1186 | 1187 |
proto.RegisterType((*DispatcherConfig)(nil), "docker.swarmkit.v1.DispatcherConfig") |
| 1187 | 1188 |
proto.RegisterType((*RaftConfig)(nil), "docker.swarmkit.v1.RaftConfig") |
| 1188 | 1189 |
proto.RegisterType((*Placement)(nil), "docker.swarmkit.v1.Placement") |
| 1190 |
+ proto.RegisterType((*JoinTokens)(nil), "docker.swarmkit.v1.JoinTokens") |
|
| 1189 | 1191 |
proto.RegisterType((*RootCA)(nil), "docker.swarmkit.v1.RootCA") |
| 1190 | 1192 |
proto.RegisterType((*Certificate)(nil), "docker.swarmkit.v1.Certificate") |
| 1191 | 1193 |
proto.RegisterType((*EncryptionKey)(nil), "docker.swarmkit.v1.EncryptionKey") |
| ... | ... |
@@ -1705,6 +1738,18 @@ func (m *OrchestrationConfig) Copy() *OrchestrationConfig {
|
| 1705 | 1705 |
return o |
| 1706 | 1706 |
} |
| 1707 | 1707 |
|
| 1708 |
+func (m *TaskDefaults) Copy() *TaskDefaults {
|
|
| 1709 |
+ if m == nil {
|
|
| 1710 |
+ return nil |
|
| 1711 |
+ } |
|
| 1712 |
+ |
|
| 1713 |
+ o := &TaskDefaults{
|
|
| 1714 |
+ LogDriver: m.LogDriver.Copy(), |
|
| 1715 |
+ } |
|
| 1716 |
+ |
|
| 1717 |
+ return o |
|
| 1718 |
+} |
|
| 1719 |
+ |
|
| 1708 | 1720 |
func (m *DispatcherConfig) Copy() *DispatcherConfig {
|
| 1709 | 1721 |
if m == nil {
|
| 1710 | 1722 |
return nil |
| ... | ... |
@@ -1750,6 +1795,19 @@ func (m *Placement) Copy() *Placement {
|
| 1750 | 1750 |
return o |
| 1751 | 1751 |
} |
| 1752 | 1752 |
|
| 1753 |
+func (m *JoinTokens) Copy() *JoinTokens {
|
|
| 1754 |
+ if m == nil {
|
|
| 1755 |
+ return nil |
|
| 1756 |
+ } |
|
| 1757 |
+ |
|
| 1758 |
+ o := &JoinTokens{
|
|
| 1759 |
+ Worker: m.Worker, |
|
| 1760 |
+ Manager: m.Manager, |
|
| 1761 |
+ } |
|
| 1762 |
+ |
|
| 1763 |
+ return o |
|
| 1764 |
+} |
|
| 1765 |
+ |
|
| 1753 | 1766 |
func (m *RootCA) Copy() *RootCA {
|
| 1754 | 1767 |
if m == nil {
|
| 1755 | 1768 |
return nil |
| ... | ... |
@@ -1759,6 +1817,7 @@ func (m *RootCA) Copy() *RootCA {
|
| 1759 | 1759 |
CAKey: m.CAKey, |
| 1760 | 1760 |
CACert: m.CACert, |
| 1761 | 1761 |
CACertHash: m.CACertHash, |
| 1762 |
+ JoinTokens: *m.JoinTokens.Copy(), |
|
| 1762 | 1763 |
} |
| 1763 | 1764 |
|
| 1764 | 1765 |
return o |
| ... | ... |
@@ -2302,6 +2361,18 @@ func (this *OrchestrationConfig) GoString() string {
|
| 2302 | 2302 |
s = append(s, "}") |
| 2303 | 2303 |
return strings.Join(s, "") |
| 2304 | 2304 |
} |
| 2305 |
+func (this *TaskDefaults) GoString() string {
|
|
| 2306 |
+ if this == nil {
|
|
| 2307 |
+ return "nil" |
|
| 2308 |
+ } |
|
| 2309 |
+ s := make([]string, 0, 5) |
|
| 2310 |
+ s = append(s, "&api.TaskDefaults{")
|
|
| 2311 |
+ if this.LogDriver != nil {
|
|
| 2312 |
+ s = append(s, "LogDriver: "+fmt.Sprintf("%#v", this.LogDriver)+",\n")
|
|
| 2313 |
+ } |
|
| 2314 |
+ s = append(s, "}") |
|
| 2315 |
+ return strings.Join(s, "") |
|
| 2316 |
+} |
|
| 2305 | 2317 |
func (this *DispatcherConfig) GoString() string {
|
| 2306 | 2318 |
if this == nil {
|
| 2307 | 2319 |
return "nil" |
| ... | ... |
@@ -2338,15 +2409,27 @@ func (this *Placement) GoString() string {
|
| 2338 | 2338 |
s = append(s, "}") |
| 2339 | 2339 |
return strings.Join(s, "") |
| 2340 | 2340 |
} |
| 2341 |
+func (this *JoinTokens) GoString() string {
|
|
| 2342 |
+ if this == nil {
|
|
| 2343 |
+ return "nil" |
|
| 2344 |
+ } |
|
| 2345 |
+ s := make([]string, 0, 6) |
|
| 2346 |
+ s = append(s, "&api.JoinTokens{")
|
|
| 2347 |
+ s = append(s, "Worker: "+fmt.Sprintf("%#v", this.Worker)+",\n")
|
|
| 2348 |
+ s = append(s, "Manager: "+fmt.Sprintf("%#v", this.Manager)+",\n")
|
|
| 2349 |
+ s = append(s, "}") |
|
| 2350 |
+ return strings.Join(s, "") |
|
| 2351 |
+} |
|
| 2341 | 2352 |
func (this *RootCA) GoString() string {
|
| 2342 | 2353 |
if this == nil {
|
| 2343 | 2354 |
return "nil" |
| 2344 | 2355 |
} |
| 2345 |
- s := make([]string, 0, 7) |
|
| 2356 |
+ s := make([]string, 0, 8) |
|
| 2346 | 2357 |
s = append(s, "&api.RootCA{")
|
| 2347 | 2358 |
s = append(s, "CAKey: "+fmt.Sprintf("%#v", this.CAKey)+",\n")
|
| 2348 | 2359 |
s = append(s, "CACert: "+fmt.Sprintf("%#v", this.CACert)+",\n")
|
| 2349 | 2360 |
s = append(s, "CACertHash: "+fmt.Sprintf("%#v", this.CACertHash)+",\n")
|
| 2361 |
+ s = append(s, "JoinTokens: "+strings.Replace(this.JoinTokens.GoString(), `&`, ``, 1)+",\n") |
|
| 2350 | 2362 |
s = append(s, "}") |
| 2351 | 2363 |
return strings.Join(s, "") |
| 2352 | 2364 |
} |
| ... | ... |
@@ -3646,6 +3729,34 @@ func (m *OrchestrationConfig) MarshalTo(data []byte) (int, error) {
|
| 3646 | 3646 |
return i, nil |
| 3647 | 3647 |
} |
| 3648 | 3648 |
|
| 3649 |
+func (m *TaskDefaults) Marshal() (data []byte, err error) {
|
|
| 3650 |
+ size := m.Size() |
|
| 3651 |
+ data = make([]byte, size) |
|
| 3652 |
+ n, err := m.MarshalTo(data) |
|
| 3653 |
+ if err != nil {
|
|
| 3654 |
+ return nil, err |
|
| 3655 |
+ } |
|
| 3656 |
+ return data[:n], nil |
|
| 3657 |
+} |
|
| 3658 |
+ |
|
| 3659 |
+func (m *TaskDefaults) MarshalTo(data []byte) (int, error) {
|
|
| 3660 |
+ var i int |
|
| 3661 |
+ _ = i |
|
| 3662 |
+ var l int |
|
| 3663 |
+ _ = l |
|
| 3664 |
+ if m.LogDriver != nil {
|
|
| 3665 |
+ data[i] = 0xa |
|
| 3666 |
+ i++ |
|
| 3667 |
+ i = encodeVarintTypes(data, i, uint64(m.LogDriver.Size())) |
|
| 3668 |
+ n20, err := m.LogDriver.MarshalTo(data[i:]) |
|
| 3669 |
+ if err != nil {
|
|
| 3670 |
+ return 0, err |
|
| 3671 |
+ } |
|
| 3672 |
+ i += n20 |
|
| 3673 |
+ } |
|
| 3674 |
+ return i, nil |
|
| 3675 |
+} |
|
| 3676 |
+ |
|
| 3649 | 3677 |
func (m *DispatcherConfig) Marshal() (data []byte, err error) {
|
| 3650 | 3678 |
size := m.Size() |
| 3651 | 3679 |
data = make([]byte, size) |
| ... | ... |
@@ -3665,11 +3776,11 @@ func (m *DispatcherConfig) MarshalTo(data []byte) (int, error) {
|
| 3665 | 3665 |
data[i] = 0xa |
| 3666 | 3666 |
i++ |
| 3667 | 3667 |
i = encodeVarintTypes(data, i, uint64(m.HeartbeatPeriod.Size())) |
| 3668 |
- n20, err := m.HeartbeatPeriod.MarshalTo(data[i:]) |
|
| 3668 |
+ n21, err := m.HeartbeatPeriod.MarshalTo(data[i:]) |
|
| 3669 | 3669 |
if err != nil {
|
| 3670 | 3670 |
return 0, err |
| 3671 | 3671 |
} |
| 3672 |
- i += n20 |
|
| 3672 |
+ i += n21 |
|
| 3673 | 3673 |
} |
| 3674 | 3674 |
return i, nil |
| 3675 | 3675 |
} |
| ... | ... |
@@ -3750,6 +3861,36 @@ func (m *Placement) MarshalTo(data []byte) (int, error) {
|
| 3750 | 3750 |
return i, nil |
| 3751 | 3751 |
} |
| 3752 | 3752 |
|
| 3753 |
+func (m *JoinTokens) Marshal() (data []byte, err error) {
|
|
| 3754 |
+ size := m.Size() |
|
| 3755 |
+ data = make([]byte, size) |
|
| 3756 |
+ n, err := m.MarshalTo(data) |
|
| 3757 |
+ if err != nil {
|
|
| 3758 |
+ return nil, err |
|
| 3759 |
+ } |
|
| 3760 |
+ return data[:n], nil |
|
| 3761 |
+} |
|
| 3762 |
+ |
|
| 3763 |
+func (m *JoinTokens) MarshalTo(data []byte) (int, error) {
|
|
| 3764 |
+ var i int |
|
| 3765 |
+ _ = i |
|
| 3766 |
+ var l int |
|
| 3767 |
+ _ = l |
|
| 3768 |
+ if len(m.Worker) > 0 {
|
|
| 3769 |
+ data[i] = 0xa |
|
| 3770 |
+ i++ |
|
| 3771 |
+ i = encodeVarintTypes(data, i, uint64(len(m.Worker))) |
|
| 3772 |
+ i += copy(data[i:], m.Worker) |
|
| 3773 |
+ } |
|
| 3774 |
+ if len(m.Manager) > 0 {
|
|
| 3775 |
+ data[i] = 0x12 |
|
| 3776 |
+ i++ |
|
| 3777 |
+ i = encodeVarintTypes(data, i, uint64(len(m.Manager))) |
|
| 3778 |
+ i += copy(data[i:], m.Manager) |
|
| 3779 |
+ } |
|
| 3780 |
+ return i, nil |
|
| 3781 |
+} |
|
| 3782 |
+ |
|
| 3753 | 3783 |
func (m *RootCA) Marshal() (data []byte, err error) {
|
| 3754 | 3784 |
size := m.Size() |
| 3755 | 3785 |
data = make([]byte, size) |
| ... | ... |
@@ -3783,6 +3924,14 @@ func (m *RootCA) MarshalTo(data []byte) (int, error) {
|
| 3783 | 3783 |
i = encodeVarintTypes(data, i, uint64(len(m.CACertHash))) |
| 3784 | 3784 |
i += copy(data[i:], m.CACertHash) |
| 3785 | 3785 |
} |
| 3786 |
+ data[i] = 0x22 |
|
| 3787 |
+ i++ |
|
| 3788 |
+ i = encodeVarintTypes(data, i, uint64(m.JoinTokens.Size())) |
|
| 3789 |
+ n22, err := m.JoinTokens.MarshalTo(data[i:]) |
|
| 3790 |
+ if err != nil {
|
|
| 3791 |
+ return 0, err |
|
| 3792 |
+ } |
|
| 3793 |
+ i += n22 |
|
| 3786 | 3794 |
return i, nil |
| 3787 | 3795 |
} |
| 3788 | 3796 |
|
| ... | ... |
@@ -3815,11 +3964,11 @@ func (m *Certificate) MarshalTo(data []byte) (int, error) {
|
| 3815 | 3815 |
data[i] = 0x1a |
| 3816 | 3816 |
i++ |
| 3817 | 3817 |
i = encodeVarintTypes(data, i, uint64(m.Status.Size())) |
| 3818 |
- n21, err := m.Status.MarshalTo(data[i:]) |
|
| 3818 |
+ n23, err := m.Status.MarshalTo(data[i:]) |
|
| 3819 | 3819 |
if err != nil {
|
| 3820 | 3820 |
return 0, err |
| 3821 | 3821 |
} |
| 3822 |
- i += n21 |
|
| 3822 |
+ i += n23 |
|
| 3823 | 3823 |
if len(m.Certificate) > 0 {
|
| 3824 | 3824 |
data[i] = 0x22 |
| 3825 | 3825 |
i++ |
| ... | ... |
@@ -4477,6 +4626,16 @@ func (m *OrchestrationConfig) Size() (n int) {
|
| 4477 | 4477 |
return n |
| 4478 | 4478 |
} |
| 4479 | 4479 |
|
| 4480 |
+func (m *TaskDefaults) Size() (n int) {
|
|
| 4481 |
+ var l int |
|
| 4482 |
+ _ = l |
|
| 4483 |
+ if m.LogDriver != nil {
|
|
| 4484 |
+ l = m.LogDriver.Size() |
|
| 4485 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 4486 |
+ } |
|
| 4487 |
+ return n |
|
| 4488 |
+} |
|
| 4489 |
+ |
|
| 4480 | 4490 |
func (m *DispatcherConfig) Size() (n int) {
|
| 4481 | 4491 |
var l int |
| 4482 | 4492 |
_ = l |
| ... | ... |
@@ -4520,6 +4679,20 @@ func (m *Placement) Size() (n int) {
|
| 4520 | 4520 |
return n |
| 4521 | 4521 |
} |
| 4522 | 4522 |
|
| 4523 |
+func (m *JoinTokens) Size() (n int) {
|
|
| 4524 |
+ var l int |
|
| 4525 |
+ _ = l |
|
| 4526 |
+ l = len(m.Worker) |
|
| 4527 |
+ if l > 0 {
|
|
| 4528 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 4529 |
+ } |
|
| 4530 |
+ l = len(m.Manager) |
|
| 4531 |
+ if l > 0 {
|
|
| 4532 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 4533 |
+ } |
|
| 4534 |
+ return n |
|
| 4535 |
+} |
|
| 4536 |
+ |
|
| 4523 | 4537 |
func (m *RootCA) Size() (n int) {
|
| 4524 | 4538 |
var l int |
| 4525 | 4539 |
_ = l |
| ... | ... |
@@ -4535,6 +4708,8 @@ func (m *RootCA) Size() (n int) {
|
| 4535 | 4535 |
if l > 0 {
|
| 4536 | 4536 |
n += 1 + l + sovTypes(uint64(l)) |
| 4537 | 4537 |
} |
| 4538 |
+ l = m.JoinTokens.Size() |
|
| 4539 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
| 4538 | 4540 |
return n |
| 4539 | 4541 |
} |
| 4540 | 4542 |
|
| ... | ... |
@@ -5053,6 +5228,16 @@ func (this *OrchestrationConfig) String() string {
|
| 5053 | 5053 |
}, "") |
| 5054 | 5054 |
return s |
| 5055 | 5055 |
} |
| 5056 |
+func (this *TaskDefaults) String() string {
|
|
| 5057 |
+ if this == nil {
|
|
| 5058 |
+ return "nil" |
|
| 5059 |
+ } |
|
| 5060 |
+ s := strings.Join([]string{`&TaskDefaults{`,
|
|
| 5061 |
+ `LogDriver:` + strings.Replace(fmt.Sprintf("%v", this.LogDriver), "Driver", "Driver", 1) + `,`,
|
|
| 5062 |
+ `}`, |
|
| 5063 |
+ }, "") |
|
| 5064 |
+ return s |
|
| 5065 |
+} |
|
| 5056 | 5066 |
func (this *DispatcherConfig) String() string {
|
| 5057 | 5067 |
if this == nil {
|
| 5058 | 5068 |
return "nil" |
| ... | ... |
@@ -5087,6 +5272,17 @@ func (this *Placement) String() string {
|
| 5087 | 5087 |
}, "") |
| 5088 | 5088 |
return s |
| 5089 | 5089 |
} |
| 5090 |
+func (this *JoinTokens) String() string {
|
|
| 5091 |
+ if this == nil {
|
|
| 5092 |
+ return "nil" |
|
| 5093 |
+ } |
|
| 5094 |
+ s := strings.Join([]string{`&JoinTokens{`,
|
|
| 5095 |
+ `Worker:` + fmt.Sprintf("%v", this.Worker) + `,`,
|
|
| 5096 |
+ `Manager:` + fmt.Sprintf("%v", this.Manager) + `,`,
|
|
| 5097 |
+ `}`, |
|
| 5098 |
+ }, "") |
|
| 5099 |
+ return s |
|
| 5100 |
+} |
|
| 5090 | 5101 |
func (this *RootCA) String() string {
|
| 5091 | 5102 |
if this == nil {
|
| 5092 | 5103 |
return "nil" |
| ... | ... |
@@ -5095,6 +5291,7 @@ func (this *RootCA) String() string {
|
| 5095 | 5095 |
`CAKey:` + fmt.Sprintf("%v", this.CAKey) + `,`,
|
| 5096 | 5096 |
`CACert:` + fmt.Sprintf("%v", this.CACert) + `,`,
|
| 5097 | 5097 |
`CACertHash:` + fmt.Sprintf("%v", this.CACertHash) + `,`,
|
| 5098 |
+ `JoinTokens:` + strings.Replace(strings.Replace(this.JoinTokens.String(), "JoinTokens", "JoinTokens", 1), `&`, ``, 1) + `,`, |
|
| 5098 | 5099 |
`}`, |
| 5099 | 5100 |
}, "") |
| 5100 | 5101 |
return s |
| ... | ... |
@@ -9419,6 +9616,89 @@ func (m *OrchestrationConfig) Unmarshal(data []byte) error {
|
| 9419 | 9419 |
} |
| 9420 | 9420 |
return nil |
| 9421 | 9421 |
} |
| 9422 |
+func (m *TaskDefaults) Unmarshal(data []byte) error {
|
|
| 9423 |
+ l := len(data) |
|
| 9424 |
+ iNdEx := 0 |
|
| 9425 |
+ for iNdEx < l {
|
|
| 9426 |
+ preIndex := iNdEx |
|
| 9427 |
+ var wire uint64 |
|
| 9428 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9429 |
+ if shift >= 64 {
|
|
| 9430 |
+ return ErrIntOverflowTypes |
|
| 9431 |
+ } |
|
| 9432 |
+ if iNdEx >= l {
|
|
| 9433 |
+ return io.ErrUnexpectedEOF |
|
| 9434 |
+ } |
|
| 9435 |
+ b := data[iNdEx] |
|
| 9436 |
+ iNdEx++ |
|
| 9437 |
+ wire |= (uint64(b) & 0x7F) << shift |
|
| 9438 |
+ if b < 0x80 {
|
|
| 9439 |
+ break |
|
| 9440 |
+ } |
|
| 9441 |
+ } |
|
| 9442 |
+ fieldNum := int32(wire >> 3) |
|
| 9443 |
+ wireType := int(wire & 0x7) |
|
| 9444 |
+ if wireType == 4 {
|
|
| 9445 |
+ return fmt.Errorf("proto: TaskDefaults: wiretype end group for non-group")
|
|
| 9446 |
+ } |
|
| 9447 |
+ if fieldNum <= 0 {
|
|
| 9448 |
+ return fmt.Errorf("proto: TaskDefaults: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 9449 |
+ } |
|
| 9450 |
+ switch fieldNum {
|
|
| 9451 |
+ case 1: |
|
| 9452 |
+ if wireType != 2 {
|
|
| 9453 |
+ return fmt.Errorf("proto: wrong wireType = %d for field LogDriver", wireType)
|
|
| 9454 |
+ } |
|
| 9455 |
+ var msglen int |
|
| 9456 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9457 |
+ if shift >= 64 {
|
|
| 9458 |
+ return ErrIntOverflowTypes |
|
| 9459 |
+ } |
|
| 9460 |
+ if iNdEx >= l {
|
|
| 9461 |
+ return io.ErrUnexpectedEOF |
|
| 9462 |
+ } |
|
| 9463 |
+ b := data[iNdEx] |
|
| 9464 |
+ iNdEx++ |
|
| 9465 |
+ msglen |= (int(b) & 0x7F) << shift |
|
| 9466 |
+ if b < 0x80 {
|
|
| 9467 |
+ break |
|
| 9468 |
+ } |
|
| 9469 |
+ } |
|
| 9470 |
+ if msglen < 0 {
|
|
| 9471 |
+ return ErrInvalidLengthTypes |
|
| 9472 |
+ } |
|
| 9473 |
+ postIndex := iNdEx + msglen |
|
| 9474 |
+ if postIndex > l {
|
|
| 9475 |
+ return io.ErrUnexpectedEOF |
|
| 9476 |
+ } |
|
| 9477 |
+ if m.LogDriver == nil {
|
|
| 9478 |
+ m.LogDriver = &Driver{}
|
|
| 9479 |
+ } |
|
| 9480 |
+ if err := m.LogDriver.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
|
| 9481 |
+ return err |
|
| 9482 |
+ } |
|
| 9483 |
+ iNdEx = postIndex |
|
| 9484 |
+ default: |
|
| 9485 |
+ iNdEx = preIndex |
|
| 9486 |
+ skippy, err := skipTypes(data[iNdEx:]) |
|
| 9487 |
+ if err != nil {
|
|
| 9488 |
+ return err |
|
| 9489 |
+ } |
|
| 9490 |
+ if skippy < 0 {
|
|
| 9491 |
+ return ErrInvalidLengthTypes |
|
| 9492 |
+ } |
|
| 9493 |
+ if (iNdEx + skippy) > l {
|
|
| 9494 |
+ return io.ErrUnexpectedEOF |
|
| 9495 |
+ } |
|
| 9496 |
+ iNdEx += skippy |
|
| 9497 |
+ } |
|
| 9498 |
+ } |
|
| 9499 |
+ |
|
| 9500 |
+ if iNdEx > l {
|
|
| 9501 |
+ return io.ErrUnexpectedEOF |
|
| 9502 |
+ } |
|
| 9503 |
+ return nil |
|
| 9504 |
+} |
|
| 9422 | 9505 |
func (m *DispatcherConfig) Unmarshal(data []byte) error {
|
| 9423 | 9506 |
l := len(data) |
| 9424 | 9507 |
iNdEx := 0 |
| ... | ... |
@@ -9726,6 +10006,114 @@ func (m *Placement) Unmarshal(data []byte) error {
|
| 9726 | 9726 |
} |
| 9727 | 9727 |
return nil |
| 9728 | 9728 |
} |
| 9729 |
+func (m *JoinTokens) Unmarshal(data []byte) error {
|
|
| 9730 |
+ l := len(data) |
|
| 9731 |
+ iNdEx := 0 |
|
| 9732 |
+ for iNdEx < l {
|
|
| 9733 |
+ preIndex := iNdEx |
|
| 9734 |
+ var wire uint64 |
|
| 9735 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9736 |
+ if shift >= 64 {
|
|
| 9737 |
+ return ErrIntOverflowTypes |
|
| 9738 |
+ } |
|
| 9739 |
+ if iNdEx >= l {
|
|
| 9740 |
+ return io.ErrUnexpectedEOF |
|
| 9741 |
+ } |
|
| 9742 |
+ b := data[iNdEx] |
|
| 9743 |
+ iNdEx++ |
|
| 9744 |
+ wire |= (uint64(b) & 0x7F) << shift |
|
| 9745 |
+ if b < 0x80 {
|
|
| 9746 |
+ break |
|
| 9747 |
+ } |
|
| 9748 |
+ } |
|
| 9749 |
+ fieldNum := int32(wire >> 3) |
|
| 9750 |
+ wireType := int(wire & 0x7) |
|
| 9751 |
+ if wireType == 4 {
|
|
| 9752 |
+ return fmt.Errorf("proto: JoinTokens: wiretype end group for non-group")
|
|
| 9753 |
+ } |
|
| 9754 |
+ if fieldNum <= 0 {
|
|
| 9755 |
+ return fmt.Errorf("proto: JoinTokens: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
| 9756 |
+ } |
|
| 9757 |
+ switch fieldNum {
|
|
| 9758 |
+ case 1: |
|
| 9759 |
+ if wireType != 2 {
|
|
| 9760 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Worker", wireType)
|
|
| 9761 |
+ } |
|
| 9762 |
+ var stringLen uint64 |
|
| 9763 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9764 |
+ if shift >= 64 {
|
|
| 9765 |
+ return ErrIntOverflowTypes |
|
| 9766 |
+ } |
|
| 9767 |
+ if iNdEx >= l {
|
|
| 9768 |
+ return io.ErrUnexpectedEOF |
|
| 9769 |
+ } |
|
| 9770 |
+ b := data[iNdEx] |
|
| 9771 |
+ iNdEx++ |
|
| 9772 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
| 9773 |
+ if b < 0x80 {
|
|
| 9774 |
+ break |
|
| 9775 |
+ } |
|
| 9776 |
+ } |
|
| 9777 |
+ intStringLen := int(stringLen) |
|
| 9778 |
+ if intStringLen < 0 {
|
|
| 9779 |
+ return ErrInvalidLengthTypes |
|
| 9780 |
+ } |
|
| 9781 |
+ postIndex := iNdEx + intStringLen |
|
| 9782 |
+ if postIndex > l {
|
|
| 9783 |
+ return io.ErrUnexpectedEOF |
|
| 9784 |
+ } |
|
| 9785 |
+ m.Worker = string(data[iNdEx:postIndex]) |
|
| 9786 |
+ iNdEx = postIndex |
|
| 9787 |
+ case 2: |
|
| 9788 |
+ if wireType != 2 {
|
|
| 9789 |
+ return fmt.Errorf("proto: wrong wireType = %d for field Manager", wireType)
|
|
| 9790 |
+ } |
|
| 9791 |
+ var stringLen uint64 |
|
| 9792 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9793 |
+ if shift >= 64 {
|
|
| 9794 |
+ return ErrIntOverflowTypes |
|
| 9795 |
+ } |
|
| 9796 |
+ if iNdEx >= l {
|
|
| 9797 |
+ return io.ErrUnexpectedEOF |
|
| 9798 |
+ } |
|
| 9799 |
+ b := data[iNdEx] |
|
| 9800 |
+ iNdEx++ |
|
| 9801 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
| 9802 |
+ if b < 0x80 {
|
|
| 9803 |
+ break |
|
| 9804 |
+ } |
|
| 9805 |
+ } |
|
| 9806 |
+ intStringLen := int(stringLen) |
|
| 9807 |
+ if intStringLen < 0 {
|
|
| 9808 |
+ return ErrInvalidLengthTypes |
|
| 9809 |
+ } |
|
| 9810 |
+ postIndex := iNdEx + intStringLen |
|
| 9811 |
+ if postIndex > l {
|
|
| 9812 |
+ return io.ErrUnexpectedEOF |
|
| 9813 |
+ } |
|
| 9814 |
+ m.Manager = string(data[iNdEx:postIndex]) |
|
| 9815 |
+ iNdEx = postIndex |
|
| 9816 |
+ default: |
|
| 9817 |
+ iNdEx = preIndex |
|
| 9818 |
+ skippy, err := skipTypes(data[iNdEx:]) |
|
| 9819 |
+ if err != nil {
|
|
| 9820 |
+ return err |
|
| 9821 |
+ } |
|
| 9822 |
+ if skippy < 0 {
|
|
| 9823 |
+ return ErrInvalidLengthTypes |
|
| 9824 |
+ } |
|
| 9825 |
+ if (iNdEx + skippy) > l {
|
|
| 9826 |
+ return io.ErrUnexpectedEOF |
|
| 9827 |
+ } |
|
| 9828 |
+ iNdEx += skippy |
|
| 9829 |
+ } |
|
| 9830 |
+ } |
|
| 9831 |
+ |
|
| 9832 |
+ if iNdEx > l {
|
|
| 9833 |
+ return io.ErrUnexpectedEOF |
|
| 9834 |
+ } |
|
| 9835 |
+ return nil |
|
| 9836 |
+} |
|
| 9729 | 9837 |
func (m *RootCA) Unmarshal(data []byte) error {
|
| 9730 | 9838 |
l := len(data) |
| 9731 | 9839 |
iNdEx := 0 |
| ... | ... |
@@ -9846,6 +10234,36 @@ func (m *RootCA) Unmarshal(data []byte) error {
|
| 9846 | 9846 |
} |
| 9847 | 9847 |
m.CACertHash = string(data[iNdEx:postIndex]) |
| 9848 | 9848 |
iNdEx = postIndex |
| 9849 |
+ case 4: |
|
| 9850 |
+ if wireType != 2 {
|
|
| 9851 |
+ return fmt.Errorf("proto: wrong wireType = %d for field JoinTokens", wireType)
|
|
| 9852 |
+ } |
|
| 9853 |
+ var msglen int |
|
| 9854 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 9855 |
+ if shift >= 64 {
|
|
| 9856 |
+ return ErrIntOverflowTypes |
|
| 9857 |
+ } |
|
| 9858 |
+ if iNdEx >= l {
|
|
| 9859 |
+ return io.ErrUnexpectedEOF |
|
| 9860 |
+ } |
|
| 9861 |
+ b := data[iNdEx] |
|
| 9862 |
+ iNdEx++ |
|
| 9863 |
+ msglen |= (int(b) & 0x7F) << shift |
|
| 9864 |
+ if b < 0x80 {
|
|
| 9865 |
+ break |
|
| 9866 |
+ } |
|
| 9867 |
+ } |
|
| 9868 |
+ if msglen < 0 {
|
|
| 9869 |
+ return ErrInvalidLengthTypes |
|
| 9870 |
+ } |
|
| 9871 |
+ postIndex := iNdEx + msglen |
|
| 9872 |
+ if postIndex > l {
|
|
| 9873 |
+ return io.ErrUnexpectedEOF |
|
| 9874 |
+ } |
|
| 9875 |
+ if err := m.JoinTokens.Unmarshal(data[iNdEx:postIndex]); err != nil {
|
|
| 9876 |
+ return err |
|
| 9877 |
+ } |
|
| 9878 |
+ iNdEx = postIndex |
|
| 9849 | 9879 |
default: |
| 9850 | 9880 |
iNdEx = preIndex |
| 9851 | 9881 |
skippy, err := skipTypes(data[iNdEx:]) |
| ... | ... |
@@ -10448,201 +10866,206 @@ var ( |
| 10448 | 10448 |
) |
| 10449 | 10449 |
|
| 10450 | 10450 |
var fileDescriptorTypes = []byte{
|
| 10451 |
- // 3132 bytes of a gzipped FileDescriptorProto |
|
| 10452 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0xcb, 0x6f, 0x1b, 0xd7, |
|
| 10453 |
- 0xd5, 0x37, 0x9f, 0x22, 0x0f, 0x29, 0x89, 0x1e, 0x3b, 0x8e, 0xcc, 0x28, 0xb2, 0xbf, 0x49, 0x9c, |
|
| 10454 |
- 0x38, 0x8f, 0x8f, 0x89, 0x95, 0x7c, 0x1f, 0xdc, 0x04, 0xad, 0x33, 0x7c, 0xc8, 0x62, 0x2d, 0x91, |
|
| 10455 |
- 0xc4, 0x25, 0x25, 0x23, 0x28, 0x50, 0x62, 0x34, 0xbc, 0x12, 0x27, 0x1a, 0xce, 0xb0, 0x33, 0x43, |
|
| 10456 |
- 0xc9, 0x6c, 0x51, 0xc0, 0xe9, 0xa6, 0x45, 0x56, 0xdd, 0x17, 0x41, 0x50, 0xb4, 0xe8, 0xae, 0xeb, |
|
| 10451 |
+ // 3210 bytes of a gzipped FileDescriptorProto |
|
| 10452 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x59, 0xcb, 0x6f, 0x1b, 0xd7, |
|
| 10453 |
+ 0xd5, 0x17, 0x9f, 0x22, 0x0f, 0x29, 0x89, 0x1e, 0x3b, 0x8e, 0xcc, 0x28, 0xb2, 0xbe, 0x49, 0x9c, |
|
| 10454 |
+ 0x38, 0x8f, 0x8f, 0x89, 0x95, 0x7c, 0x1f, 0x9c, 0x04, 0x8d, 0x33, 0x7c, 0xc8, 0x62, 0x2c, 0x91, |
|
| 10455 |
+ 0xc4, 0x25, 0x25, 0x23, 0x28, 0x50, 0x62, 0x34, 0xbc, 0x12, 0xc7, 0x1a, 0xce, 0xb0, 0x33, 0x43, |
|
| 10456 |
+ 0xc9, 0x6c, 0x51, 0xc0, 0xed, 0xa6, 0x45, 0x56, 0xdd, 0x17, 0x41, 0x50, 0xb4, 0xe8, 0xae, 0xeb, |
|
| 10457 | 10457 |
0x02, 0x5d, 0x79, 0xe9, 0x65, 0x8a, 0x02, 0x45, 0xd0, 0x02, 0x41, 0x93, 0xfe, 0x03, 0x01, 0xba, |
| 10458 |
- 0xc8, 0xa2, 0x5d, 0xf4, 0xdc, 0xc7, 0x0c, 0x87, 0xf4, 0x58, 0x71, 0x9a, 0x2c, 0x08, 0xce, 0x3d, |
|
| 10459 |
- 0xe7, 0x77, 0xce, 0xbd, 0xf7, 0xdc, 0x73, 0xcf, 0xe3, 0x42, 0xc1, 0x9f, 0x8e, 0xa9, 0x57, 0x19, |
|
| 10460 |
- 0xbb, 0x8e, 0xef, 0x28, 0xca, 0xc0, 0x31, 0x8e, 0xa9, 0x5b, 0xf1, 0x4e, 0x75, 0x77, 0x74, 0x6c, |
|
| 10461 |
- 0xfa, 0x95, 0x93, 0x1b, 0xe5, 0xcb, 0xbe, 0x39, 0xa2, 0x9e, 0xaf, 0x8f, 0xc6, 0xaf, 0x85, 0x5f, |
|
| 10462 |
- 0x02, 0x5e, 0x7e, 0x7a, 0x30, 0x71, 0x75, 0xdf, 0x74, 0xec, 0xd7, 0x82, 0x0f, 0xc9, 0xb8, 0x78, |
|
| 10463 |
- 0xe4, 0x1c, 0x39, 0xfc, 0xf3, 0x35, 0xf6, 0x25, 0xa8, 0xea, 0x15, 0x58, 0xda, 0xa7, 0xae, 0x87, |
|
| 10464 |
- 0x30, 0xe5, 0x22, 0x64, 0x4c, 0x7b, 0x40, 0xef, 0xad, 0x25, 0xae, 0x26, 0xae, 0xa7, 0x89, 0x18, |
|
| 10465 |
- 0xa8, 0xbf, 0x4e, 0x40, 0x41, 0xb3, 0x6d, 0xc7, 0xe7, 0xba, 0x3c, 0x45, 0x81, 0xb4, 0xad, 0x8f, |
|
| 10466 |
- 0x28, 0x07, 0xe5, 0x09, 0xff, 0x56, 0x6a, 0x90, 0xb5, 0xf4, 0x03, 0x6a, 0x79, 0x6b, 0xc9, 0xab, |
|
| 10467 |
- 0xa9, 0xeb, 0x85, 0xcd, 0x57, 0x2a, 0x8f, 0xae, 0xb9, 0x12, 0x51, 0x52, 0xd9, 0xe1, 0xe8, 0x86, |
|
| 10468 |
- 0xed, 0xbb, 0x53, 0x22, 0x45, 0xcb, 0xdf, 0x81, 0x42, 0x84, 0xac, 0x94, 0x20, 0x75, 0x4c, 0xa7, |
|
| 10469 |
- 0x72, 0x1a, 0xf6, 0xc9, 0xd6, 0x77, 0xa2, 0x5b, 0x13, 0x8a, 0x93, 0x30, 0x9a, 0x18, 0xbc, 0x95, |
|
| 10470 |
- 0xbc, 0x99, 0x50, 0xdf, 0x85, 0x3c, 0xa1, 0x9e, 0x33, 0x71, 0x0d, 0xea, 0x29, 0x2f, 0x41, 0xde, |
|
| 10471 |
- 0xd6, 0x6d, 0xa7, 0x6f, 0x8c, 0x27, 0x1e, 0x17, 0x4f, 0x55, 0x8b, 0x9f, 0x7f, 0x7a, 0x25, 0xd7, |
|
| 10472 |
- 0x42, 0x62, 0xad, 0xb3, 0xe7, 0x91, 0x1c, 0x63, 0xd7, 0x90, 0xab, 0xfc, 0x0f, 0x14, 0x47, 0x74, |
|
| 10473 |
- 0xe4, 0xb8, 0xd3, 0xfe, 0xc1, 0xd4, 0xa7, 0x1e, 0x57, 0x9c, 0x22, 0x05, 0x41, 0xab, 0x32, 0x92, |
|
| 10474 |
- 0xfa, 0xcb, 0x04, 0x5c, 0x0c, 0x74, 0x13, 0xfa, 0xa3, 0x89, 0xe9, 0xd2, 0x11, 0xb5, 0x7d, 0x4f, |
|
| 10475 |
- 0xf9, 0x3f, 0xdc, 0xb3, 0x39, 0x32, 0x7d, 0x31, 0x47, 0x61, 0xf3, 0xd9, 0xb8, 0x3d, 0x87, 0xab, |
|
| 10476 |
- 0x22, 0x12, 0xac, 0x68, 0x50, 0x74, 0xa9, 0x47, 0xdd, 0x13, 0x61, 0x09, 0x3e, 0xe5, 0x57, 0x0a, |
|
| 10477 |
- 0xcf, 0x89, 0xa8, 0x5b, 0x90, 0xeb, 0x58, 0xba, 0x7f, 0xe8, 0xb8, 0x23, 0x45, 0x85, 0xa2, 0xee, |
|
| 10478 |
- 0x1a, 0x43, 0xd3, 0xa7, 0x86, 0x3f, 0x71, 0x83, 0x53, 0x99, 0xa3, 0x29, 0x97, 0x20, 0xe9, 0x88, |
|
| 10479 |
- 0x89, 0xf2, 0xd5, 0x2c, 0x5a, 0x22, 0xd9, 0xee, 0x12, 0xa4, 0xa8, 0x6f, 0xc3, 0xf9, 0x8e, 0x35, |
|
| 10480 |
- 0x39, 0x32, 0xed, 0x3a, 0xf5, 0x0c, 0xd7, 0x1c, 0x33, 0xed, 0xec, 0x78, 0x99, 0xf3, 0x05, 0xc7, |
|
| 10481 |
- 0xcb, 0xbe, 0xc3, 0x23, 0x4f, 0xce, 0x8e, 0x5c, 0xfd, 0x79, 0x12, 0xce, 0x37, 0x6c, 0x14, 0xa6, |
|
| 10482 |
- 0x51, 0xe9, 0x6b, 0xb0, 0x42, 0x39, 0xb1, 0x7f, 0x22, 0x9c, 0x4a, 0xea, 0x59, 0x16, 0xd4, 0xc0, |
|
| 10483 |
- 0xd3, 0x9a, 0x0b, 0xfe, 0x72, 0x23, 0x6e, 0xfb, 0x8f, 0x68, 0x8f, 0xf3, 0x1a, 0xa5, 0x01, 0x4b, |
|
| 10484 |
- 0x63, 0xbe, 0x09, 0x6f, 0x2d, 0xc5, 0x75, 0x5d, 0x8b, 0xd3, 0xf5, 0xc8, 0x3e, 0xab, 0xe9, 0x87, |
|
| 10485 |
- 0x9f, 0x5e, 0x39, 0x47, 0x02, 0xd9, 0x6f, 0xe2, 0x7c, 0xff, 0x48, 0xc0, 0x6a, 0xcb, 0x19, 0xcc, |
|
| 10486 |
- 0xd9, 0xa1, 0x0c, 0xb9, 0xa1, 0xe3, 0xf9, 0x91, 0x8b, 0x12, 0x8e, 0x95, 0x9b, 0x90, 0x1b, 0xcb, |
|
| 10487 |
- 0xe3, 0x93, 0xa7, 0xbf, 0x1e, 0xbf, 0x64, 0x81, 0x21, 0x21, 0x5a, 0x79, 0x1b, 0xf2, 0x6e, 0xe0, |
|
| 10488 |
- 0x13, 0xb8, 0xdb, 0x27, 0x70, 0x9c, 0x19, 0x5e, 0xf9, 0x2e, 0x64, 0xc5, 0x21, 0xac, 0xa5, 0xb9, |
|
| 10489 |
- 0xe4, 0xb5, 0x27, 0xb2, 0x39, 0x91, 0x42, 0xea, 0x27, 0x09, 0x28, 0x11, 0xfd, 0xd0, 0xdf, 0xa5, |
|
| 10490 |
- 0xa3, 0x03, 0xea, 0x76, 0xf1, 0x22, 0xe3, 0xfd, 0xb9, 0x84, 0xe7, 0x48, 0xf5, 0x01, 0x75, 0xf9, |
|
| 10491 |
- 0x26, 0x73, 0x44, 0x8e, 0x94, 0x3d, 0xe6, 0xe4, 0xba, 0x31, 0xd4, 0x0f, 0x4c, 0xcb, 0xf4, 0xa7, |
|
| 10492 |
- 0x7c, 0x9b, 0x2b, 0xf1, 0xa7, 0xbc, 0xa8, 0x13, 0x17, 0x3f, 0x13, 0x24, 0x73, 0x6a, 0x94, 0x35, |
|
| 10493 |
- 0x58, 0xc2, 0x58, 0xe7, 0xe9, 0x47, 0x94, 0xef, 0x3e, 0x4f, 0x82, 0x21, 0xba, 0x72, 0x31, 0x2a, |
|
| 10494 |
- 0xa7, 0x14, 0x60, 0x69, 0xaf, 0x75, 0xa7, 0xd5, 0xbe, 0xdb, 0x2a, 0x9d, 0x53, 0x56, 0xa1, 0xb0, |
|
| 10495 |
- 0xd7, 0x22, 0x0d, 0xad, 0xb6, 0xad, 0x55, 0x77, 0x1a, 0xa5, 0x84, 0xb2, 0x8c, 0xe1, 0x22, 0x1c, |
|
| 10496 |
- 0x26, 0xd5, 0x8f, 0x12, 0x00, 0xec, 0x00, 0xe5, 0xa6, 0xde, 0x82, 0x0c, 0xc6, 0x53, 0x5f, 0x1c, |
|
| 10497 |
- 0xdc, 0xca, 0xe6, 0xf3, 0x71, 0xab, 0x9e, 0xc1, 0x2b, 0xec, 0x8f, 0x12, 0x21, 0x12, 0x5d, 0x61, |
|
| 10498 |
- 0x72, 0x71, 0x85, 0x19, 0x8e, 0x9c, 0x5f, 0x5a, 0x0e, 0xd2, 0x75, 0xf6, 0x95, 0x50, 0xf2, 0x90, |
|
| 10499 |
- 0xc1, 0x35, 0xd5, 0xdf, 0x2d, 0x25, 0xd1, 0xf9, 0x8a, 0xf5, 0x66, 0xb7, 0xd6, 0x6e, 0xb5, 0x1a, |
|
| 10500 |
- 0xb5, 0x5e, 0xa3, 0x5e, 0x4a, 0xa9, 0xd7, 0x20, 0xd3, 0x1c, 0xa1, 0x16, 0x65, 0x9d, 0x79, 0xc0, |
|
| 10501 |
- 0x21, 0x75, 0xa9, 0x6d, 0x04, 0x8e, 0x35, 0x23, 0xa8, 0x1f, 0xa3, 0x92, 0x5d, 0x67, 0x62, 0xfb, |
|
| 10502 |
- 0xca, 0x66, 0xe4, 0x16, 0xaf, 0x6c, 0x6e, 0xc4, 0x6d, 0x81, 0x03, 0x2b, 0x3d, 0x44, 0xc9, 0x5b, |
|
| 10503 |
- 0x8e, 0x87, 0x29, 0x7c, 0x45, 0x2e, 0x5d, 0x8e, 0x18, 0xdd, 0xd7, 0xdd, 0x23, 0xea, 0x4b, 0xa3, |
|
| 10504 |
- 0xcb, 0x91, 0x72, 0x1d, 0x72, 0x78, 0x3a, 0x03, 0xc7, 0xb6, 0xa6, 0xdc, 0xa5, 0x72, 0x22, 0xcc, |
|
| 10505 |
- 0xe2, 0x39, 0x0c, 0xda, 0x48, 0x23, 0x21, 0x57, 0xd9, 0x86, 0xe2, 0x01, 0x26, 0x93, 0xbe, 0x33, |
|
| 10506 |
- 0x16, 0x31, 0x2f, 0xf3, 0x78, 0x07, 0x14, 0xab, 0xaa, 0x22, 0xba, 0x2d, 0xc0, 0xa4, 0x70, 0x30, |
|
| 10507 |
- 0x1b, 0x28, 0x2d, 0x58, 0x39, 0x71, 0xac, 0xc9, 0x88, 0x86, 0xba, 0xb2, 0x5c, 0xd7, 0x8b, 0x8f, |
|
| 10508 |
- 0xd7, 0xb5, 0xcf, 0xf1, 0x81, 0xb6, 0xe5, 0x93, 0xe8, 0x50, 0xb9, 0x03, 0xcb, 0xfe, 0x68, 0x7c, |
|
| 10509 |
- 0xe8, 0x85, 0xea, 0x96, 0xb8, 0xba, 0x17, 0xce, 0x30, 0x18, 0x83, 0x07, 0xda, 0x8a, 0x7e, 0x64, |
|
| 10510 |
- 0x54, 0xfe, 0x59, 0x0a, 0x0a, 0x91, 0x95, 0x2b, 0x5d, 0x28, 0x60, 0x8e, 0x1d, 0xeb, 0x47, 0x3c, |
|
| 10511 |
- 0x6e, 0xcb, 0xb3, 0xb8, 0xf1, 0x44, 0xbb, 0xae, 0x74, 0x66, 0x82, 0x24, 0xaa, 0x45, 0xfd, 0x30, |
|
| 10512 |
- 0x09, 0x85, 0x08, 0x53, 0x79, 0x19, 0x72, 0xa4, 0x43, 0x9a, 0xfb, 0x5a, 0xaf, 0x51, 0x3a, 0x57, |
|
| 10513 |
- 0x5e, 0xff, 0xe0, 0xc3, 0xab, 0x6b, 0x5c, 0x5b, 0x54, 0x41, 0xc7, 0x35, 0x4f, 0x98, 0xeb, 0x5d, |
|
| 10514 |
- 0x87, 0xa5, 0x00, 0x9a, 0x28, 0x3f, 0x83, 0xd0, 0xa7, 0x17, 0xa1, 0x11, 0x24, 0xe9, 0x6e, 0x6b, |
|
| 10515 |
- 0x04, 0xbd, 0x2f, 0x19, 0x8f, 0x24, 0xdd, 0xa1, 0xee, 0xd2, 0x81, 0xf2, 0x02, 0x64, 0x25, 0x30, |
|
| 10516 |
- 0x55, 0x2e, 0x23, 0xf0, 0xd2, 0x22, 0x70, 0x86, 0x23, 0xdd, 0x1d, 0x6d, 0xbf, 0x51, 0x4a, 0xc7, |
|
| 10517 |
- 0xe3, 0x48, 0xd7, 0xd2, 0x4f, 0xa8, 0xf2, 0x3c, 0xde, 0x13, 0x0e, 0xcb, 0x94, 0x2f, 0x23, 0xec, |
|
| 10518 |
- 0xa9, 0x47, 0xd4, 0x31, 0x54, 0x79, 0xed, 0x17, 0xbf, 0xd9, 0x38, 0xf7, 0xc7, 0xdf, 0x6e, 0x94, |
|
| 10519 |
- 0x16, 0xd9, 0xe5, 0x7f, 0x27, 0x60, 0x79, 0xee, 0xc8, 0x31, 0x45, 0x66, 0x6d, 0xc7, 0x70, 0xc6, |
|
| 10520 |
- 0x22, 0x9c, 0xe7, 0xaa, 0x80, 0x5e, 0x9a, 0x6d, 0x39, 0x35, 0xa4, 0x10, 0xc9, 0x41, 0x3f, 0x98, |
|
| 10521 |
- 0x4f, 0x48, 0x6f, 0x3c, 0xa1, 0x3f, 0xc5, 0xa6, 0xa4, 0x5b, 0xb0, 0x3c, 0x40, 0x3b, 0x52, 0xb7, |
|
| 10522 |
- 0x6f, 0x38, 0xf6, 0xa1, 0x79, 0x24, 0x43, 0x75, 0x39, 0x4e, 0x67, 0x9d, 0x03, 0x49, 0x51, 0x08, |
|
| 10523 |
- 0xd4, 0x38, 0xfe, 0x1b, 0x24, 0xa3, 0xf2, 0x3e, 0x14, 0xa3, 0x1e, 0xaa, 0x3c, 0x0b, 0xe0, 0x99, |
|
| 10524 |
- 0x3f, 0xa6, 0xb2, 0xbe, 0xe1, 0xd5, 0x10, 0xc9, 0x33, 0x0a, 0xaf, 0x6e, 0x94, 0x17, 0x21, 0x3d, |
|
| 10525 |
- 0xc2, 0x50, 0xc6, 0xf5, 0x64, 0xaa, 0x17, 0x58, 0x4e, 0xfc, 0xeb, 0xa7, 0x57, 0x0a, 0x8e, 0x57, |
|
| 10526 |
- 0xd9, 0x32, 0x2d, 0xba, 0x8b, 0x2c, 0xc2, 0x01, 0xea, 0x09, 0xa4, 0x59, 0xa8, 0x50, 0x9e, 0x81, |
|
| 10527 |
- 0x74, 0xb5, 0xd9, 0xaa, 0xa3, 0xab, 0x9d, 0xc7, 0xd3, 0x59, 0xe6, 0x26, 0x61, 0x0c, 0xe6, 0xbb, |
|
| 10528 |
- 0xca, 0x15, 0xc8, 0xee, 0xb7, 0x77, 0xf6, 0x76, 0x99, 0x7b, 0x5d, 0x40, 0xf6, 0x6a, 0xc8, 0x16, |
|
| 10529 |
- 0x46, 0xc3, 0xd5, 0x64, 0x7a, 0xbb, 0x9d, 0xad, 0x2e, 0x3a, 0x95, 0x82, 0xfc, 0x95, 0x90, 0xcf, |
|
| 10530 |
- 0xd7, 0x5c, 0x3e, 0x2f, 0x4f, 0x35, 0x1f, 0xd2, 0xd5, 0x7f, 0x25, 0x61, 0x99, 0xb0, 0xfa, 0xd6, |
|
| 10531 |
- 0xf5, 0x3b, 0x8e, 0x65, 0x1a, 0x53, 0xa5, 0x03, 0x79, 0x34, 0xeb, 0xc0, 0x8c, 0xdc, 0xa9, 0xcd, |
|
| 10532 |
- 0xc7, 0x24, 0xc1, 0x99, 0x54, 0x30, 0xaa, 0x05, 0x92, 0x64, 0xa6, 0x04, 0x83, 0x65, 0x66, 0x40, |
|
| 10533 |
- 0x2d, 0x7d, 0x7a, 0x56, 0x36, 0xae, 0xcb, 0x5a, 0x9a, 0x08, 0x28, 0xaf, 0x1c, 0xf5, 0x7b, 0x7d, |
|
| 10534 |
- 0xdd, 0xf7, 0xe9, 0x68, 0xec, 0x8b, 0x6c, 0x9c, 0xc6, 0xca, 0x51, 0xbf, 0xa7, 0x49, 0x92, 0xf2, |
|
| 10535 |
- 0x26, 0x64, 0x4f, 0xd1, 0x2a, 0xce, 0xa9, 0x4c, 0xb8, 0x67, 0xeb, 0x95, 0x58, 0xf5, 0x03, 0x96, |
|
| 10536 |
- 0x67, 0x17, 0x16, 0xcb, 0xac, 0xde, 0x6a, 0xb7, 0x1a, 0x81, 0xd5, 0x25, 0xbf, 0x6d, 0xb7, 0x1c, |
|
| 10537 |
- 0x9b, 0xdd, 0x18, 0x68, 0xb7, 0xfa, 0x5b, 0x5a, 0x73, 0x67, 0x8f, 0x30, 0xcb, 0x5f, 0x44, 0x48, |
|
| 10538 |
- 0x29, 0x84, 0x6c, 0xe9, 0xa6, 0xc5, 0x8a, 0xc0, 0xcb, 0x90, 0xd2, 0x5a, 0x98, 0x5d, 0xca, 0x25, |
|
| 10539 |
- 0x64, 0x17, 0x43, 0xb6, 0x66, 0x4f, 0x67, 0x97, 0x69, 0x71, 0x5e, 0xf5, 0x3d, 0x28, 0xee, 0x8d, |
|
| 10540 |
- 0x07, 0x18, 0x10, 0x84, 0x63, 0x2a, 0x57, 0x31, 0xa2, 0xe9, 0xae, 0x6e, 0x59, 0xd4, 0x32, 0xbd, |
|
| 10541 |
- 0x91, 0xec, 0x13, 0xa2, 0x24, 0x2c, 0x6e, 0x9e, 0xdc, 0x96, 0xb2, 0x06, 0x13, 0x02, 0xea, 0x4f, |
|
| 10542 |
- 0x61, 0x15, 0x67, 0xf1, 0x75, 0x2c, 0x36, 0x82, 0xf2, 0x62, 0x13, 0x8a, 0x46, 0x40, 0xea, 0x9b, |
|
| 10543 |
- 0x03, 0x71, 0x03, 0xaa, 0xab, 0x78, 0x7f, 0x0b, 0x21, 0xb4, 0x59, 0x27, 0x85, 0x10, 0xd4, 0x1c, |
|
| 10544 |
- 0xb0, 0x7d, 0x8e, 0x11, 0x2a, 0x1c, 0x7a, 0x09, 0xa1, 0xa9, 0x0e, 0x42, 0x18, 0x0d, 0xad, 0x98, |
|
| 10545 |
- 0xa7, 0xf7, 0x4c, 0x1f, 0x6f, 0xe5, 0x40, 0x14, 0x10, 0x19, 0x92, 0x63, 0x84, 0x1a, 0x73, 0xf0, |
|
| 10546 |
- 0xf7, 0x93, 0x00, 0x3d, 0xdd, 0x3b, 0x96, 0x53, 0x63, 0xa9, 0x15, 0x36, 0x56, 0x67, 0x15, 0xf8, |
|
| 10547 |
- 0xbd, 0x00, 0x44, 0x66, 0x78, 0xe5, 0x8d, 0xa0, 0x82, 0x10, 0x75, 0x4f, 0xbc, 0xa0, 0x9c, 0x2b, |
|
| 10548 |
- 0xae, 0x74, 0x98, 0x2f, 0x6e, 0xd8, 0xfd, 0xa7, 0xae, 0xcb, 0xbd, 0x08, 0xef, 0x3f, 0x7e, 0x62, |
|
| 10549 |
- 0xbf, 0x95, 0x0f, 0xf7, 0x2c, 0xb3, 0xe9, 0x73, 0x71, 0x93, 0x2c, 0x18, 0x74, 0xfb, 0x1c, 0x99, |
|
| 10550 |
- 0xc9, 0x55, 0x4b, 0xb0, 0xe2, 0xe2, 0x35, 0xc3, 0x55, 0xf7, 0x3d, 0xce, 0x56, 0xff, 0x8c, 0x36, |
|
| 10551 |
- 0x68, 0x76, 0xb4, 0x5d, 0x79, 0xda, 0x75, 0xc8, 0x1e, 0xea, 0x23, 0xd3, 0x9a, 0xca, 0x6b, 0xf6, |
|
| 10552 |
- 0x6a, 0xdc, 0x14, 0x33, 0x7c, 0x45, 0x1b, 0x0c, 0xb0, 0xdc, 0xf4, 0xb6, 0xb8, 0x0c, 0x91, 0xb2, |
|
| 10553 |
- 0xbc, 0xac, 0x98, 0x1c, 0xd8, 0x58, 0x3e, 0x04, 0x65, 0x05, 0x1f, 0xb1, 0x18, 0xe6, 0xea, 0x76, |
|
| 10554 |
- 0xb8, 0x5b, 0x31, 0x60, 0x56, 0xc0, 0x40, 0x4e, 0x4f, 0xf5, 0xa9, 0xdc, 0x6f, 0x30, 0xc4, 0x22, |
|
| 10555 |
- 0x22, 0x27, 0xba, 0x20, 0x3a, 0xc0, 0x2d, 0xb3, 0x20, 0xfd, 0x55, 0xeb, 0x21, 0x12, 0x2e, 0xa2, |
|
| 10556 |
- 0x73, 0x28, 0x5d, 0x7e, 0x9b, 0x87, 0x94, 0x19, 0xeb, 0x6b, 0x55, 0xfb, 0xaf, 0xc3, 0xf2, 0xdc, |
|
| 10557 |
- 0x3e, 0x1f, 0xa9, 0xe7, 0x9a, 0x9d, 0xfd, 0x37, 0x4b, 0x69, 0xf9, 0xf5, 0xff, 0xa5, 0xac, 0xfa, |
|
| 10558 |
- 0x4f, 0x2c, 0x2f, 0x3b, 0x0e, 0xbf, 0x56, 0xcc, 0xaa, 0xf1, 0xfd, 0x73, 0x8e, 0x77, 0xe3, 0x86, |
|
| 10559 |
- 0x63, 0x49, 0x9f, 0x89, 0x2d, 0x68, 0x66, 0x5a, 0x58, 0x7d, 0xc0, 0xe1, 0x24, 0x14, 0xc4, 0xe8, |
|
| 10560 |
- 0x5b, 0x10, 0x95, 0x59, 0x7f, 0x8c, 0x38, 0x6e, 0xd6, 0x65, 0x02, 0x82, 0xc4, 0x24, 0x59, 0x73, |
|
| 10561 |
- 0x36, 0x9e, 0x1c, 0xe0, 0x35, 0x1d, 0xd2, 0x81, 0xc0, 0xa4, 0x39, 0x66, 0x39, 0xa4, 0x32, 0x98, |
|
| 10562 |
- 0x5a, 0xc7, 0xf6, 0x32, 0xd0, 0xb9, 0x06, 0xa9, 0x5e, 0xad, 0x83, 0x71, 0x67, 0x15, 0xa3, 0x46, |
|
| 10563 |
- 0x21, 0x20, 0x23, 0x89, 0x71, 0xf6, 0xea, 0x1d, 0x0c, 0x37, 0x73, 0x1c, 0x24, 0x95, 0xd3, 0x2c, |
|
| 10564 |
- 0x9c, 0xa8, 0xbf, 0x4a, 0x40, 0x56, 0x24, 0xb7, 0xd8, 0x1d, 0x6b, 0xb0, 0x14, 0x94, 0x5c, 0x22, |
|
| 10565 |
- 0xe3, 0xbe, 0xf8, 0xf8, 0xec, 0x58, 0x91, 0xc9, 0x4c, 0x9c, 0x63, 0x20, 0x57, 0x7e, 0x0b, 0x8a, |
|
| 10566 |
- 0x51, 0xc6, 0xd7, 0x3a, 0xc5, 0x9f, 0x40, 0x81, 0x39, 0x4a, 0x90, 0x25, 0x37, 0x21, 0x2b, 0x12, |
|
| 10567 |
- 0xb0, 0xbc, 0xea, 0x67, 0xa5, 0x6a, 0x89, 0xc4, 0x48, 0xb7, 0x24, 0xd2, 0x7b, 0xd0, 0x78, 0x6e, |
|
| 10568 |
- 0x9c, 0xed, 0x8e, 0x24, 0x80, 0xab, 0xb7, 0x20, 0xdd, 0xa1, 0xa8, 0xe1, 0x39, 0x58, 0xb2, 0x31, |
|
| 10569 |
- 0xf4, 0xcc, 0x22, 0x9b, 0xac, 0x4c, 0x06, 0x14, 0x23, 0x56, 0x96, 0xb1, 0x30, 0x9e, 0xa1, 0xf1, |
|
| 10570 |
- 0x74, 0xf4, 0xb7, 0xa0, 0xf7, 0x66, 0xdf, 0x6a, 0x0f, 0x8a, 0x77, 0xa9, 0x79, 0x34, 0xf4, 0xf1, |
|
| 10571 |
- 0xc4, 0x98, 0xa2, 0x57, 0x21, 0x3d, 0xa6, 0xe1, 0xe2, 0xd7, 0x62, 0x5d, 0x07, 0xf9, 0x84, 0xa3, |
|
| 10572 |
- 0xd8, 0x85, 0x3c, 0xe5, 0xd2, 0xf2, 0xb9, 0x43, 0x8e, 0xd4, 0xdf, 0x27, 0x61, 0xa5, 0xe9, 0x79, |
|
| 10573 |
- 0x13, 0x1d, 0x5b, 0x09, 0x19, 0x05, 0xbf, 0x37, 0xdf, 0x0a, 0x5d, 0x8f, 0xdd, 0xe1, 0x9c, 0xc8, |
|
| 10574 |
- 0x7c, 0x3b, 0x24, 0x23, 0x57, 0x32, 0x8c, 0x5c, 0xea, 0xc3, 0x44, 0xd0, 0x07, 0x5d, 0x8b, 0xdc, |
|
| 10575 |
- 0x9b, 0xf2, 0x1a, 0x3a, 0xd1, 0xc5, 0xa8, 0x26, 0xba, 0x67, 0x1f, 0xdb, 0xce, 0xa9, 0x8d, 0x89, |
|
| 10576 |
- 0x16, 0xfb, 0xa2, 0x56, 0xe3, 0x2e, 0x7a, 0xda, 0x25, 0x04, 0x29, 0x73, 0x20, 0x42, 0x6d, 0x7a, |
|
| 10577 |
- 0xca, 0x34, 0x75, 0x1a, 0xad, 0x7a, 0xb3, 0x75, 0x1b, 0xd3, 0xdb, 0xa3, 0x9a, 0x3a, 0x14, 0xd3, |
|
| 10578 |
- 0x99, 0x7d, 0x84, 0xe6, 0xce, 0x36, 0xbb, 0xdd, 0x3d, 0x5e, 0xa9, 0x3e, 0x8d, 0xa8, 0x0b, 0x73, |
|
| 10579 |
- 0x28, 0x36, 0xc0, 0x32, 0x15, 0x41, 0x2c, 0x93, 0x22, 0x28, 0x1d, 0x03, 0x62, 0xc9, 0x14, 0x03, |
|
| 10580 |
- 0x88, 0xf0, 0xf0, 0xbf, 0x25, 0xa1, 0xa4, 0x19, 0x06, 0x1d, 0xfb, 0x8c, 0x2f, 0xab, 0x93, 0x1e, |
|
| 10581 |
- 0xde, 0x64, 0xf6, 0x65, 0xf2, 0x6a, 0x8b, 0xb9, 0xc5, 0xcd, 0xd8, 0xb7, 0xb0, 0x05, 0xb9, 0x0a, |
|
| 10582 |
- 0x71, 0x2c, 0xaa, 0x0d, 0x46, 0xa6, 0xc7, 0xde, 0x47, 0x04, 0x8d, 0x84, 0x9a, 0xca, 0x5f, 0x24, |
|
| 10583 |
- 0xe0, 0x42, 0x0c, 0x42, 0x79, 0x1d, 0xd2, 0x2e, 0x92, 0xe5, 0xf1, 0xac, 0x3f, 0xae, 0x53, 0x65, |
|
| 10584 |
- 0xa2, 0x84, 0x23, 0x95, 0x0d, 0x00, 0x7d, 0xe2, 0x3b, 0x3a, 0x9f, 0x9f, 0x1f, 0x4c, 0x8e, 0x44, |
|
| 10585 |
- 0x28, 0xca, 0x5d, 0x8c, 0xd6, 0xd4, 0x70, 0x65, 0xb3, 0x57, 0xd8, 0xbc, 0xf5, 0xdf, 0xae, 0xbe, |
|
| 10586 |
- 0xd2, 0xe5, 0x6a, 0x88, 0x54, 0x57, 0xae, 0x60, 0x9f, 0xc0, 0xbf, 0x98, 0x47, 0x63, 0x49, 0xa1, |
|
| 10587 |
- 0xf3, 0x45, 0x17, 0x09, 0xff, 0x66, 0x8e, 0xa2, 0x5b, 0x47, 0x81, 0xa3, 0xe0, 0xa7, 0xfa, 0x11, |
|
| 10588 |
- 0xe6, 0xa2, 0xc6, 0x3d, 0x9f, 0xba, 0xb6, 0x6e, 0xd5, 0x34, 0xa5, 0x11, 0x89, 0x90, 0x62, 0xb7, |
|
| 10589 |
- 0x2f, 0xc5, 0xbe, 0x5f, 0x84, 0x12, 0x95, 0x9a, 0x16, 0x13, 0x23, 0xb1, 0x3a, 0x98, 0xb8, 0x96, |
|
| 10590 |
- 0x7c, 0x0b, 0xe3, 0xd5, 0xc1, 0x1e, 0xd9, 0x21, 0x8c, 0xc6, 0x1e, 0x92, 0x82, 0x88, 0x94, 0x7a, |
|
| 10591 |
- 0xfc, 0x23, 0x66, 0x64, 0x82, 0x6f, 0x3f, 0x2a, 0xbd, 0x0a, 0x30, 0x5b, 0x35, 0x1e, 0x55, 0xa6, |
|
| 10592 |
- 0xb6, 0xd5, 0xed, 0xee, 0xe0, 0xf5, 0xe0, 0xc5, 0xf4, 0x8c, 0xc5, 0xc9, 0xea, 0xef, 0x12, 0x90, |
|
| 10593 |
- 0xab, 0x69, 0x32, 0xab, 0x6c, 0x41, 0x89, 0xc7, 0x12, 0x83, 0xba, 0x7e, 0x9f, 0xde, 0x1b, 0x9b, |
|
| 10594 |
- 0xee, 0x54, 0x86, 0x83, 0xb3, 0xcb, 0xce, 0x15, 0x26, 0x55, 0x43, 0xa1, 0x06, 0x97, 0x51, 0x08, |
|
| 10595 |
- 0x14, 0xa9, 0xdc, 0x62, 0xdf, 0xd0, 0x83, 0xe0, 0xbc, 0x71, 0xb6, 0x29, 0x44, 0x49, 0x36, 0x1b, |
|
| 10596 |
- 0x63, 0xd3, 0x1e, 0x28, 0xa9, 0xe9, 0x9e, 0xba, 0x0f, 0x17, 0xda, 0xae, 0x31, 0xc4, 0xe2, 0x48, |
|
| 10597 |
- 0x4c, 0x2a, 0x97, 0x7c, 0x0b, 0xd6, 0x7d, 0x2c, 0x82, 0xfa, 0x43, 0xd3, 0xf3, 0xd9, 0x13, 0x2c, |
|
| 10598 |
- 0xfa, 0x06, 0xb5, 0x19, 0xbf, 0xcf, 0x9f, 0x4a, 0x65, 0xb3, 0x72, 0x99, 0x61, 0xb6, 0x05, 0x84, |
|
| 10599 |
- 0x04, 0x88, 0x1d, 0x06, 0x50, 0x7f, 0x00, 0xa5, 0xba, 0xe9, 0x8d, 0x75, 0x1f, 0x75, 0xcb, 0xd6, |
|
| 10600 |
- 0x49, 0xb9, 0x0d, 0xa5, 0x21, 0xc5, 0x1a, 0xf6, 0x80, 0xea, 0x98, 0x07, 0xa9, 0x6b, 0x3a, 0x83, |
|
| 10601 |
- 0x27, 0xb2, 0xc3, 0x6a, 0x28, 0xd5, 0xe1, 0x42, 0xea, 0x97, 0x98, 0xb5, 0xd9, 0xdb, 0x94, 0xd4, |
|
| 10602 |
- 0xfb, 0x0a, 0x9c, 0xf7, 0x6c, 0x7d, 0xec, 0x0d, 0x1d, 0xbf, 0x6f, 0xda, 0x3e, 0x7b, 0x8c, 0xb5, |
|
| 10603 |
- 0x64, 0xfd, 0x5b, 0x0a, 0x18, 0x4d, 0x49, 0xc7, 0x78, 0xac, 0x1c, 0x53, 0x3a, 0xee, 0x3b, 0xd6, |
|
| 10604 |
- 0xa0, 0x1f, 0x30, 0xc5, 0x03, 0x2c, 0xa2, 0x19, 0xa7, 0x6d, 0x0d, 0xba, 0x01, 0x5d, 0xa9, 0xc2, |
|
| 10605 |
- 0x86, 0xe5, 0x1c, 0xf5, 0x71, 0x67, 0x2e, 0xde, 0xf5, 0xfe, 0xa1, 0xe3, 0xf6, 0x3d, 0xcb, 0x39, |
|
| 10606 |
- 0xc5, 0x0f, 0x0b, 0xff, 0xa8, 0x1b, 0x34, 0x17, 0x65, 0x44, 0x35, 0x04, 0x68, 0xcb, 0x71, 0xbb, |
|
| 10607 |
- 0xc8, 0xdb, 0x0a, 0x10, 0x2c, 0xb5, 0xcf, 0xb6, 0xed, 0x9b, 0xc6, 0x71, 0x90, 0xda, 0x43, 0x6a, |
|
| 10608 |
- 0x0f, 0x89, 0x18, 0xdd, 0x96, 0xa9, 0x45, 0x0d, 0x6e, 0x64, 0x8e, 0xca, 0x70, 0x54, 0x31, 0x20, |
|
| 10609 |
- 0x32, 0x90, 0xfa, 0xbf, 0x90, 0xef, 0x58, 0xba, 0xc1, 0x9f, 0xb9, 0x59, 0xc5, 0x8f, 0x69, 0x8b, |
|
| 10610 |
- 0x9d, 0x1c, 0xee, 0x5a, 0x84, 0xb4, 0x3c, 0x89, 0x92, 0xd4, 0xf7, 0x31, 0xd1, 0x13, 0xc7, 0xf1, |
|
| 10611 |
- 0xf1, 0x92, 0x5e, 0x85, 0xac, 0xa1, 0xf7, 0x03, 0x77, 0x2f, 0x56, 0xf3, 0xe8, 0x16, 0x99, 0x9a, |
|
| 10612 |
- 0x76, 0x87, 0x4e, 0x49, 0xc6, 0xd0, 0xf1, 0x8f, 0xa5, 0x3c, 0x44, 0x30, 0x27, 0xe5, 0xe6, 0x28, |
|
| 10613 |
- 0x8a, 0x94, 0x87, 0x5e, 0x8c, 0x14, 0x82, 0xc2, 0xec, 0x1f, 0xa3, 0x5a, 0x51, 0x82, 0xfa, 0x43, |
|
| 10614 |
- 0xdd, 0x1b, 0x8a, 0x02, 0xb1, 0xba, 0x82, 0x48, 0x10, 0xc8, 0x6d, 0xa4, 0x12, 0x10, 0x68, 0xf6, |
|
| 10615 |
- 0xad, 0xfe, 0x25, 0x01, 0x05, 0x36, 0x30, 0x0f, 0x4d, 0x83, 0xe5, 0x96, 0xaf, 0x1f, 0x17, 0x31, |
|
| 10616 |
- 0x30, 0x18, 0x9e, 0x2b, 0x17, 0xc5, 0x03, 0x43, 0xad, 0x4b, 0x08, 0xa3, 0x29, 0xef, 0x60, 0x48, |
|
| 10617 |
- 0xe4, 0xb9, 0x4d, 0x86, 0x44, 0xf5, 0xab, 0xb3, 0xa0, 0xec, 0x6c, 0xa4, 0x1c, 0x37, 0xe2, 0x6c, |
|
| 10618 |
- 0x75, 0xfc, 0x68, 0x8a, 0x24, 0x4a, 0x62, 0x4f, 0xf4, 0x86, 0xcd, 0x4f, 0x43, 0x3e, 0xd1, 0xd7, |
|
| 10619 |
- 0x5a, 0x04, 0x29, 0xea, 0x9f, 0x12, 0xb0, 0xdc, 0xb0, 0x0d, 0x77, 0xca, 0x43, 0x0a, 0xb3, 0xe0, |
|
| 10620 |
- 0x3a, 0xe4, 0xb1, 0x80, 0xf6, 0xa6, 0x1e, 0x76, 0x99, 0xc1, 0x0b, 0x60, 0x48, 0x50, 0x9a, 0x90, |
|
| 10621 |
- 0xc7, 0xe0, 0xe9, 0xb8, 0xa6, 0x3f, 0x1c, 0xc9, 0x4a, 0x32, 0x3e, 0x8c, 0x45, 0x75, 0x56, 0xb4, |
|
| 10622 |
- 0x40, 0x84, 0xcc, 0xa4, 0x83, 0xc0, 0x95, 0xe2, 0x8b, 0xe5, 0x81, 0x0b, 0x7b, 0x5e, 0x0b, 0xdb, |
|
| 10623 |
- 0x1b, 0xac, 0x11, 0xfb, 0xac, 0x6b, 0xe0, 0xfb, 0xc0, 0xf6, 0x4f, 0xd2, 0x58, 0x27, 0xa4, 0xaa, |
|
| 10624 |
- 0x90, 0x0f, 0x95, 0xb1, 0x77, 0x57, 0xad, 0xd1, 0xed, 0xdf, 0xd8, 0xbc, 0xd9, 0xbf, 0x5d, 0xdb, |
|
| 10625 |
- 0xc5, 0x30, 0x26, 0xf2, 0xe6, 0x1f, 0x70, 0x4f, 0xbb, 0xba, 0x8d, 0x9d, 0x4d, 0xd0, 0xe7, 0xa1, |
|
| 10626 |
- 0x57, 0xb8, 0x78, 0xd5, 0x82, 0x42, 0x28, 0x2d, 0xbc, 0x82, 0xdd, 0x3e, 0x56, 0x08, 0x31, 0x56, |
|
| 10627 |
- 0x7c, 0x21, 0x14, 0x79, 0x7f, 0x4e, 0x9d, 0xf9, 0xfe, 0x9c, 0xfe, 0x56, 0xde, 0x9f, 0x5f, 0xfe, |
|
| 10628 |
- 0x32, 0x05, 0xf9, 0xb0, 0x6f, 0x63, 0x2e, 0xc3, 0xea, 0x92, 0x73, 0xa2, 0xa3, 0x0e, 0xe9, 0x2d, |
|
| 10629 |
- 0x5e, 0x91, 0xe4, 0xb5, 0x9d, 0x9d, 0x76, 0x4d, 0x63, 0xcf, 0xb7, 0xef, 0x88, 0xc2, 0x25, 0x04, |
|
| 10630 |
- 0x68, 0x78, 0x69, 0xd9, 0xa1, 0x0f, 0x14, 0x75, 0x56, 0xb8, 0xdc, 0x97, 0x7d, 0x7b, 0x88, 0x0a, |
|
| 10631 |
- 0xaa, 0x96, 0xe7, 0x21, 0xa7, 0x75, 0xbb, 0xcd, 0xdb, 0x2d, 0xd4, 0xf4, 0x20, 0x51, 0x7e, 0x0a, |
|
| 10632 |
- 0x41, 0xe7, 0x67, 0xaa, 0x30, 0xe1, 0x1e, 0xd9, 0xa8, 0x89, 0xa1, 0x6a, 0xb5, 0x46, 0x87, 0xcd, |
|
| 10633 |
- 0x77, 0x3f, 0xb9, 0x88, 0xe2, 0xe9, 0x9a, 0xbf, 0xc1, 0xe5, 0x3b, 0xa4, 0xd1, 0xd1, 0x08, 0x9b, |
|
| 10634 |
- 0xf1, 0x41, 0x72, 0x61, 0x5d, 0x1d, 0x97, 0x62, 0x27, 0xcf, 0xe6, 0xdc, 0x08, 0xde, 0xa2, 0xef, |
|
| 10635 |
- 0xa7, 0xc4, 0x3b, 0xcd, 0xac, 0x59, 0x45, 0xfb, 0x4e, 0xd9, 0x6c, 0xdd, 0x9e, 0x46, 0x7a, 0x5c, |
|
| 10636 |
- 0x4d, 0x6a, 0x61, 0xb6, 0x2e, 0x7b, 0x42, 0x60, 0x5a, 0x70, 0x77, 0x64, 0xaf, 0xd5, 0xe2, 0xbb, |
|
| 10637 |
- 0x4b, 0x2f, 0xec, 0x8e, 0x4c, 0x6c, 0x9b, 0x61, 0xae, 0x61, 0x0a, 0x6b, 0xef, 0x76, 0x76, 0x1a, |
|
| 10638 |
- 0xbd, 0x46, 0xe9, 0x41, 0x7a, 0x61, 0x41, 0x35, 0x67, 0x34, 0xb6, 0xa8, 0x2f, 0xb6, 0xd7, 0xdd, |
|
| 10639 |
- 0xde, 0xeb, 0xf1, 0xa7, 0xf2, 0xfb, 0x99, 0xc5, 0x09, 0x87, 0x13, 0x7f, 0xc0, 0x4a, 0xc5, 0xab, |
|
| 10640 |
- 0x61, 0xed, 0xf6, 0x20, 0x23, 0x52, 0x66, 0x88, 0x11, 0x85, 0x1b, 0xd3, 0x43, 0x1a, 0xdf, 0x17, |
|
| 10641 |
- 0xaf, 0xea, 0xf7, 0xb3, 0x0b, 0x7a, 0x08, 0x7d, 0x0f, 0xa3, 0x20, 0x96, 0x77, 0xe1, 0x33, 0x54, |
|
| 10642 |
- 0xc8, 0x7a, 0xf9, 0x87, 0x90, 0x0b, 0x02, 0x06, 0x5a, 0x27, 0x7b, 0xb7, 0x4d, 0xee, 0x34, 0x08, |
|
| 10643 |
- 0x1e, 0x3d, 0xb7, 0x4e, 0xc0, 0xb9, 0xeb, 0xb8, 0xe8, 0x5d, 0xb8, 0x8c, 0xa5, 0x5d, 0xad, 0xa5, |
|
| 10644 |
- 0xdd, 0x46, 0x80, 0x7c, 0x06, 0x0b, 0x00, 0xd2, 0xeb, 0xcb, 0x25, 0x39, 0x41, 0xa8, 0xb3, 0xba, |
|
| 10645 |
- 0xfe, 0xf0, 0xb3, 0x8d, 0x73, 0x9f, 0xe0, 0xef, 0x8b, 0xcf, 0x36, 0x12, 0xf7, 0x3f, 0xdf, 0x48, |
|
| 10646 |
- 0x3c, 0xc4, 0xdf, 0xc7, 0xf8, 0xfb, 0x3b, 0xfe, 0x0e, 0xb2, 0xbc, 0x7e, 0x79, 0xe3, 0x3f, 0x01, |
|
| 10647 |
- 0x00, 0x00, 0xff, 0xff, 0x24, 0xa1, 0x77, 0xb8, 0x17, 0x1e, 0x00, 0x00, |
|
| 10458 |
+ 0xc8, 0xa2, 0x5d, 0xf4, 0xdc, 0xc7, 0x0c, 0x1f, 0x1e, 0x2b, 0x4a, 0x93, 0x85, 0xc0, 0xb9, 0xe7, |
|
| 10459 |
+ 0xfe, 0xce, 0xb9, 0xaf, 0x73, 0xcf, 0xf9, 0x9d, 0x2b, 0xc8, 0xf9, 0xe3, 0x21, 0xf5, 0x4a, 0x43, |
|
| 10460 |
+ 0xd7, 0xf1, 0x1d, 0x45, 0xe9, 0x39, 0xc6, 0x31, 0x75, 0x4b, 0xde, 0xa9, 0xee, 0x0e, 0x8e, 0x4d, |
|
| 10461 |
+ 0xbf, 0x74, 0x72, 0xa3, 0x78, 0xc5, 0x37, 0x07, 0xd4, 0xf3, 0xf5, 0xc1, 0xf0, 0xb5, 0xf0, 0x4b, |
|
| 10462 |
+ 0xc0, 0x8b, 0x4f, 0xf7, 0x46, 0xae, 0xee, 0x9b, 0x8e, 0xfd, 0x5a, 0xf0, 0x21, 0x3b, 0x2e, 0x1d, |
|
| 10463 |
+ 0x39, 0x47, 0x0e, 0xff, 0x7c, 0x8d, 0x7d, 0x09, 0xa9, 0x7a, 0x15, 0x16, 0xf7, 0xa9, 0xeb, 0x21, |
|
| 10464 |
+ 0x4c, 0xb9, 0x04, 0x29, 0xd3, 0xee, 0xd1, 0xfb, 0xab, 0xb1, 0x8d, 0xd8, 0xf5, 0x24, 0x11, 0x0d, |
|
| 10465 |
+ 0xf5, 0xd7, 0x31, 0xc8, 0x69, 0xb6, 0xed, 0xf8, 0xdc, 0x96, 0xa7, 0x28, 0x90, 0xb4, 0xf5, 0x01, |
|
| 10466 |
+ 0xe5, 0xa0, 0x2c, 0xe1, 0xdf, 0x4a, 0x05, 0xd2, 0x96, 0x7e, 0x40, 0x2d, 0x6f, 0x35, 0xbe, 0x91, |
|
| 10467 |
+ 0xb8, 0x9e, 0xdb, 0x7c, 0xa5, 0xf4, 0xf8, 0x9c, 0x4b, 0x53, 0x46, 0x4a, 0x3b, 0x1c, 0x5d, 0xb3, |
|
| 10468 |
+ 0x7d, 0x77, 0x4c, 0xa4, 0x6a, 0xf1, 0x2d, 0xc8, 0x4d, 0x89, 0x95, 0x02, 0x24, 0x8e, 0xe9, 0x58, |
|
| 10469 |
+ 0x0e, 0xc3, 0x3e, 0xd9, 0xfc, 0x4e, 0x74, 0x6b, 0x44, 0x71, 0x10, 0x26, 0x13, 0x8d, 0xb7, 0xe3, |
|
| 10470 |
+ 0x37, 0x63, 0xea, 0x07, 0x90, 0x25, 0xd4, 0x73, 0x46, 0xae, 0x41, 0x3d, 0xe5, 0x25, 0xc8, 0xda, |
|
| 10471 |
+ 0xba, 0xed, 0x74, 0x8d, 0xe1, 0xc8, 0xe3, 0xea, 0x89, 0x72, 0xfe, 0x8b, 0xcf, 0xae, 0x66, 0x1a, |
|
| 10472 |
+ 0x28, 0xac, 0xb4, 0xf6, 0x3c, 0x92, 0x61, 0xdd, 0x15, 0xec, 0x55, 0xfe, 0x07, 0xf2, 0x03, 0x3a, |
|
| 10473 |
+ 0x70, 0xdc, 0x71, 0xf7, 0x60, 0xec, 0x53, 0x8f, 0x1b, 0x4e, 0x90, 0x9c, 0x90, 0x95, 0x99, 0x48, |
|
| 10474 |
+ 0xfd, 0x65, 0x0c, 0x2e, 0x05, 0xb6, 0x09, 0xfd, 0xe1, 0xc8, 0x74, 0xe9, 0x80, 0xda, 0xbe, 0xa7, |
|
| 10475 |
+ 0xfc, 0x1f, 0xae, 0xd9, 0x1c, 0x98, 0xbe, 0x18, 0x23, 0xb7, 0xf9, 0x6c, 0xd4, 0x9a, 0xc3, 0x59, |
|
| 10476 |
+ 0x11, 0x09, 0x56, 0x34, 0xc8, 0xbb, 0xd4, 0xa3, 0xee, 0x89, 0xd8, 0x09, 0x3e, 0xe4, 0xd7, 0x2a, |
|
| 10477 |
+ 0xcf, 0xa8, 0xa8, 0x5b, 0x90, 0x69, 0x59, 0xba, 0x7f, 0xe8, 0xb8, 0x03, 0x45, 0x85, 0xbc, 0xee, |
|
| 10478 |
+ 0x1a, 0x7d, 0xd3, 0xa7, 0x86, 0x3f, 0x72, 0x83, 0x53, 0x99, 0x91, 0x29, 0x97, 0x21, 0xee, 0x88, |
|
| 10479 |
+ 0x81, 0xb2, 0xe5, 0x34, 0xee, 0x44, 0xbc, 0xd9, 0x26, 0x28, 0x51, 0xdf, 0x81, 0x0b, 0x2d, 0x6b, |
|
| 10480 |
+ 0x74, 0x64, 0xda, 0x55, 0xea, 0x19, 0xae, 0x39, 0x64, 0xd6, 0xd9, 0xf1, 0x32, 0xe7, 0x0b, 0x8e, |
|
| 10481 |
+ 0x97, 0x7d, 0x87, 0x47, 0x1e, 0x9f, 0x1c, 0xb9, 0xfa, 0xf3, 0x38, 0x5c, 0xa8, 0xd9, 0xa8, 0x4c, |
|
| 10482 |
+ 0xa7, 0xb5, 0xaf, 0xc1, 0x32, 0xe5, 0xc2, 0xee, 0x89, 0x70, 0x2a, 0x69, 0x67, 0x49, 0x48, 0x03, |
|
| 10483 |
+ 0x4f, 0xab, 0xcf, 0xf9, 0xcb, 0x8d, 0xa8, 0xe5, 0x3f, 0x66, 0x3d, 0xca, 0x6b, 0x94, 0x1a, 0x2c, |
|
| 10484 |
+ 0x0e, 0xf9, 0x22, 0xbc, 0xd5, 0x04, 0xb7, 0x75, 0x2d, 0xca, 0xd6, 0x63, 0xeb, 0x2c, 0x27, 0x1f, |
|
| 10485 |
+ 0x7d, 0x76, 0x75, 0x81, 0x04, 0xba, 0xdf, 0xc6, 0xf9, 0xfe, 0x11, 0x83, 0x95, 0x86, 0xd3, 0x9b, |
|
| 10486 |
+ 0xd9, 0x87, 0x22, 0x64, 0xfa, 0x8e, 0xe7, 0x4f, 0x5d, 0x94, 0xb0, 0xad, 0xdc, 0x84, 0xcc, 0x50, |
|
| 10487 |
+ 0x1e, 0x9f, 0x3c, 0xfd, 0xb5, 0xe8, 0x29, 0x0b, 0x0c, 0x09, 0xd1, 0xca, 0x3b, 0x90, 0x75, 0x03, |
|
| 10488 |
+ 0x9f, 0xc0, 0xd5, 0x9e, 0xc3, 0x71, 0x26, 0x78, 0xe5, 0x7b, 0x90, 0x16, 0x87, 0xb0, 0x9a, 0xe4, |
|
| 10489 |
+ 0x9a, 0xd7, 0xce, 0xb5, 0xe7, 0x44, 0x2a, 0xa9, 0x9f, 0xc6, 0xa0, 0x40, 0xf4, 0x43, 0x7f, 0x97, |
|
| 10490 |
+ 0x0e, 0x0e, 0xa8, 0xdb, 0xc6, 0x8b, 0x8c, 0xf7, 0xe7, 0x32, 0x9e, 0x23, 0xd5, 0x7b, 0xd4, 0xe5, |
|
| 10491 |
+ 0x8b, 0xcc, 0x10, 0xd9, 0x52, 0xf6, 0x98, 0x93, 0xeb, 0x46, 0x5f, 0x3f, 0x30, 0x2d, 0xd3, 0x1f, |
|
| 10492 |
+ 0xf3, 0x65, 0x2e, 0x47, 0x9f, 0xf2, 0xbc, 0x4d, 0x9c, 0xfc, 0x44, 0x91, 0xcc, 0x98, 0x51, 0x56, |
|
| 10493 |
+ 0x61, 0x11, 0x63, 0x9d, 0xa7, 0x1f, 0x51, 0xbe, 0xfa, 0x2c, 0x09, 0x9a, 0xe8, 0xca, 0xf9, 0x69, |
|
| 10494 |
+ 0x3d, 0x25, 0x07, 0x8b, 0x7b, 0x8d, 0x3b, 0x8d, 0xe6, 0xdd, 0x46, 0x61, 0x41, 0x59, 0x81, 0xdc, |
|
| 10495 |
+ 0x5e, 0x83, 0xd4, 0xb4, 0xca, 0xb6, 0x56, 0xde, 0xa9, 0x15, 0x62, 0xca, 0x12, 0x86, 0x8b, 0xb0, |
|
| 10496 |
+ 0x19, 0x57, 0x3f, 0x8e, 0x01, 0xb0, 0x03, 0x94, 0x8b, 0x7a, 0x1b, 0x52, 0x18, 0x4f, 0x7d, 0x71, |
|
| 10497 |
+ 0x70, 0xcb, 0x9b, 0xcf, 0x47, 0xcd, 0x7a, 0x02, 0x2f, 0xb1, 0x1f, 0x4a, 0x84, 0xca, 0xf4, 0x0c, |
|
| 10498 |
+ 0xe3, 0xf3, 0x33, 0x4c, 0x71, 0xe4, 0xec, 0xd4, 0x32, 0x90, 0xac, 0xb2, 0xaf, 0x98, 0x92, 0x85, |
|
| 10499 |
+ 0x14, 0xce, 0xa9, 0xfa, 0x41, 0x21, 0x8e, 0xce, 0x97, 0xaf, 0xd6, 0xdb, 0x95, 0x66, 0xa3, 0x51, |
|
| 10500 |
+ 0xab, 0x74, 0x6a, 0xd5, 0x42, 0x42, 0xbd, 0x06, 0xa9, 0xfa, 0x00, 0xad, 0x28, 0x6b, 0xcc, 0x03, |
|
| 10501 |
+ 0x0e, 0xa9, 0x4b, 0x6d, 0x23, 0x70, 0xac, 0x89, 0x40, 0xfd, 0x04, 0x8d, 0xec, 0x3a, 0x23, 0xdb, |
|
| 10502 |
+ 0x57, 0x36, 0xa7, 0x6e, 0xf1, 0xf2, 0xe6, 0x7a, 0xd4, 0x12, 0x38, 0xb0, 0xd4, 0x41, 0x94, 0xbc, |
|
| 10503 |
+ 0xe5, 0x78, 0x98, 0xc2, 0x57, 0xe4, 0xd4, 0x65, 0x8b, 0xc9, 0x7d, 0xdd, 0x3d, 0xa2, 0xbe, 0xdc, |
|
| 10504 |
+ 0x74, 0xd9, 0x52, 0xae, 0x43, 0x06, 0x4f, 0xa7, 0xe7, 0xd8, 0xd6, 0x98, 0xbb, 0x54, 0x46, 0x84, |
|
| 10505 |
+ 0x59, 0x3c, 0x87, 0x5e, 0x13, 0x65, 0x24, 0xec, 0x55, 0xb6, 0x21, 0x7f, 0x80, 0xc9, 0xa4, 0xeb, |
|
| 10506 |
+ 0x0c, 0x45, 0xcc, 0x4b, 0x3d, 0xd9, 0x01, 0xc5, 0xac, 0xca, 0x88, 0x6e, 0x0a, 0x30, 0xc9, 0x1d, |
|
| 10507 |
+ 0x4c, 0x1a, 0x4a, 0x03, 0x96, 0x4f, 0x1c, 0x6b, 0x34, 0xa0, 0xa1, 0xad, 0x34, 0xb7, 0xf5, 0xe2, |
|
| 10508 |
+ 0x93, 0x6d, 0xed, 0x73, 0x7c, 0x60, 0x6d, 0xe9, 0x64, 0xba, 0xa9, 0xdc, 0x81, 0x25, 0x7f, 0x30, |
|
| 10509 |
+ 0x3c, 0xf4, 0x42, 0x73, 0x8b, 0xdc, 0xdc, 0x0b, 0x67, 0x6c, 0x18, 0x83, 0x07, 0xd6, 0xf2, 0xfe, |
|
| 10510 |
+ 0x54, 0xab, 0xf8, 0xb3, 0x04, 0xe4, 0xa6, 0x66, 0xae, 0xb4, 0x21, 0x87, 0x39, 0x76, 0xa8, 0x1f, |
|
| 10511 |
+ 0xf1, 0xb8, 0x2d, 0xcf, 0xe2, 0xc6, 0xb9, 0x56, 0x5d, 0x6a, 0x4d, 0x14, 0xc9, 0xb4, 0x15, 0xf5, |
|
| 10512 |
+ 0xa3, 0x38, 0xe4, 0xa6, 0x3a, 0x95, 0x97, 0x21, 0x43, 0x5a, 0xa4, 0xbe, 0xaf, 0x75, 0x6a, 0x85, |
|
| 10513 |
+ 0x85, 0xe2, 0xda, 0x87, 0x1f, 0x6d, 0xac, 0x72, 0x6b, 0xd3, 0x06, 0x5a, 0xae, 0x79, 0xc2, 0x5c, |
|
| 10514 |
+ 0xef, 0x3a, 0x2c, 0x06, 0xd0, 0x58, 0xf1, 0x19, 0x84, 0x3e, 0x3d, 0x0f, 0x9d, 0x42, 0x92, 0xf6, |
|
| 10515 |
+ 0xb6, 0x46, 0xd0, 0xfb, 0xe2, 0xd1, 0x48, 0xd2, 0xee, 0xeb, 0x2e, 0xed, 0x29, 0x2f, 0x40, 0x5a, |
|
| 10516 |
+ 0x02, 0x13, 0xc5, 0x22, 0x02, 0x2f, 0xcf, 0x03, 0x27, 0x38, 0xd2, 0xde, 0xd1, 0xf6, 0x6b, 0x85, |
|
| 10517 |
+ 0x64, 0x34, 0x8e, 0xb4, 0x2d, 0xfd, 0x84, 0x2a, 0xcf, 0xe3, 0x3d, 0xe1, 0xb0, 0x54, 0xf1, 0x0a, |
|
| 10518 |
+ 0xc2, 0x9e, 0x7a, 0xcc, 0x1c, 0x43, 0x15, 0x57, 0x7f, 0xf1, 0x9b, 0xf5, 0x85, 0x3f, 0xfe, 0x76, |
|
| 10519 |
+ 0xbd, 0x30, 0xdf, 0x5d, 0xfc, 0x77, 0x0c, 0x96, 0x66, 0x8e, 0x1c, 0x53, 0x64, 0xda, 0x76, 0x0c, |
|
| 10520 |
+ 0x67, 0x28, 0xc2, 0x79, 0xa6, 0x0c, 0xe8, 0xa5, 0xe9, 0x86, 0x53, 0x41, 0x09, 0x91, 0x3d, 0xe8, |
|
| 10521 |
+ 0x07, 0xb3, 0x09, 0xe9, 0x8d, 0x73, 0xfa, 0x53, 0x64, 0x4a, 0xba, 0x05, 0x4b, 0x3d, 0xdc, 0x47, |
|
| 10522 |
+ 0xea, 0x76, 0x0d, 0xc7, 0x3e, 0x34, 0x8f, 0x64, 0xa8, 0x2e, 0x46, 0xd9, 0xac, 0x72, 0x20, 0xc9, |
|
| 10523 |
+ 0x0b, 0x85, 0x0a, 0xc7, 0x7f, 0x8b, 0x64, 0x54, 0xdc, 0x87, 0xfc, 0xb4, 0x87, 0x2a, 0xcf, 0x02, |
|
| 10524 |
+ 0x78, 0xe6, 0x8f, 0xa8, 0xe4, 0x37, 0x9c, 0x0d, 0x91, 0x2c, 0x93, 0x70, 0x76, 0xa3, 0xbc, 0x08, |
|
| 10525 |
+ 0xc9, 0x01, 0x86, 0x32, 0x6e, 0x27, 0x55, 0xbe, 0xc8, 0x72, 0xe2, 0x5f, 0x3f, 0xbb, 0x9a, 0x73, |
|
| 10526 |
+ 0xbc, 0xd2, 0x96, 0x69, 0xd1, 0x5d, 0xec, 0x22, 0x1c, 0xa0, 0x9e, 0x40, 0x92, 0x85, 0x0a, 0xe5, |
|
| 10527 |
+ 0x19, 0x48, 0x96, 0xeb, 0x8d, 0x2a, 0xba, 0xda, 0x05, 0x3c, 0x9d, 0x25, 0xbe, 0x25, 0xac, 0x83, |
|
| 10528 |
+ 0xf9, 0xae, 0x72, 0x15, 0xd2, 0xfb, 0xcd, 0x9d, 0xbd, 0x5d, 0xe6, 0x5e, 0x17, 0xb1, 0x7b, 0x25, |
|
| 10529 |
+ 0xec, 0x16, 0x9b, 0x86, 0xb3, 0x49, 0x75, 0x76, 0x5b, 0x5b, 0x6d, 0x74, 0x2a, 0x05, 0xfb, 0x97, |
|
| 10530 |
+ 0xc3, 0x7e, 0x3e, 0xe7, 0xe2, 0x05, 0x79, 0xaa, 0xd9, 0x50, 0xae, 0xfe, 0x2b, 0x0e, 0x4b, 0x84, |
|
| 10531 |
+ 0xf1, 0x5b, 0xd7, 0x6f, 0x39, 0x96, 0x69, 0x8c, 0x95, 0x16, 0x64, 0x71, 0x5b, 0x7b, 0xe6, 0xd4, |
|
| 10532 |
+ 0x9d, 0xda, 0x7c, 0x42, 0x12, 0x9c, 0x68, 0x05, 0xad, 0x4a, 0xa0, 0x49, 0x26, 0x46, 0x30, 0x58, |
|
| 10533 |
+ 0xa6, 0x7a, 0xd4, 0xd2, 0xc7, 0x67, 0x65, 0xe3, 0xaa, 0xe4, 0xd2, 0x44, 0x40, 0x39, 0x73, 0xd4, |
|
| 10534 |
+ 0xef, 0x77, 0x75, 0xdf, 0xa7, 0x83, 0xa1, 0x2f, 0xb2, 0x71, 0x12, 0x99, 0xa3, 0x7e, 0x5f, 0x93, |
|
| 10535 |
+ 0x22, 0xe5, 0x4d, 0x48, 0x9f, 0xe2, 0xae, 0x38, 0xa7, 0x32, 0xe1, 0x9e, 0x6d, 0x57, 0x62, 0xd5, |
|
| 10536 |
+ 0x0f, 0x59, 0x9e, 0x9d, 0x9b, 0x2c, 0xdb, 0xf5, 0x46, 0xb3, 0x51, 0x0b, 0x76, 0x5d, 0xf6, 0x37, |
|
| 10537 |
+ 0xed, 0x86, 0x63, 0xb3, 0x1b, 0x03, 0xcd, 0x46, 0x77, 0x4b, 0xab, 0xef, 0xec, 0x11, 0xb6, 0xf3, |
|
| 10538 |
+ 0x97, 0x10, 0x52, 0x08, 0x21, 0x5b, 0xba, 0x69, 0x31, 0x12, 0x78, 0x05, 0x12, 0x5a, 0x03, 0xb3, |
|
| 10539 |
+ 0x4b, 0xb1, 0x80, 0xdd, 0xf9, 0xb0, 0x5b, 0xb3, 0xc7, 0x93, 0xcb, 0x34, 0x3f, 0xae, 0x7a, 0x0f, |
|
| 10540 |
+ 0xf2, 0x7b, 0xc3, 0x1e, 0x06, 0x04, 0xe1, 0x98, 0xca, 0x06, 0x46, 0x34, 0xdd, 0xd5, 0x2d, 0x8b, |
|
| 10541 |
+ 0x5a, 0xa6, 0x37, 0x90, 0x75, 0xc2, 0xb4, 0x08, 0xc9, 0xcd, 0xf9, 0xf7, 0x52, 0x72, 0x30, 0xa1, |
|
| 10542 |
+ 0xa0, 0xfe, 0x04, 0x56, 0x70, 0x14, 0x5f, 0x47, 0xb2, 0x11, 0xd0, 0x8b, 0x4d, 0xc8, 0x1b, 0x81, |
|
| 10543 |
+ 0xa8, 0x6b, 0xf6, 0xc4, 0x0d, 0x28, 0xaf, 0xe0, 0xfd, 0xcd, 0x85, 0xd0, 0x7a, 0x95, 0xe4, 0x42, |
|
| 10544 |
+ 0x50, 0xbd, 0xc7, 0xd6, 0x39, 0x44, 0xa8, 0x70, 0xe8, 0x45, 0x84, 0x26, 0x5a, 0x08, 0x61, 0x32, |
|
| 10545 |
+ 0xdc, 0xc5, 0x2c, 0xbd, 0x6f, 0xfa, 0x78, 0x2b, 0x7b, 0x82, 0x40, 0xa4, 0x48, 0x86, 0x09, 0x2a, |
|
| 10546 |
+ 0xcc, 0xc1, 0x7f, 0x1a, 0x07, 0xe8, 0xe8, 0xde, 0xb1, 0x1c, 0x1a, 0xa9, 0x56, 0x58, 0x58, 0x9d, |
|
| 10547 |
+ 0x45, 0xf0, 0x3b, 0x01, 0x88, 0x4c, 0xf0, 0xca, 0x1b, 0x01, 0x83, 0x10, 0xbc, 0x27, 0x5a, 0x51, |
|
| 10548 |
+ 0x8e, 0x15, 0x45, 0x1d, 0x66, 0xc9, 0x0d, 0xbb, 0xff, 0xd4, 0x75, 0xb9, 0x17, 0xe1, 0xfd, 0xc7, |
|
| 10549 |
+ 0x4f, 0xac, 0xb7, 0xb2, 0xe1, 0x9a, 0x65, 0x36, 0x7d, 0x2e, 0x6a, 0x90, 0xb9, 0x0d, 0xdd, 0x5e, |
|
| 10550 |
+ 0x20, 0x13, 0xbd, 0x72, 0x01, 0x96, 0x5d, 0xbc, 0x66, 0x38, 0xeb, 0xae, 0xc7, 0xbb, 0xd5, 0x3f, |
|
| 10551 |
+ 0xe3, 0x1e, 0xd4, 0x5b, 0xda, 0xae, 0x3c, 0xed, 0x2a, 0xa4, 0x0f, 0xf5, 0x81, 0x69, 0x8d, 0xe5, |
|
| 10552 |
+ 0x35, 0x7b, 0x35, 0x6a, 0x88, 0x09, 0xbe, 0xa4, 0xf5, 0x7a, 0x48, 0x37, 0xbd, 0x2d, 0xae, 0x43, |
|
| 10553 |
+ 0xa4, 0x2e, 0xa7, 0x15, 0xa3, 0x03, 0x1b, 0xe9, 0x43, 0x40, 0x2b, 0x78, 0x8b, 0xc5, 0x30, 0x57, |
|
| 10554 |
+ 0xb7, 0xc3, 0xd5, 0x8a, 0x06, 0xdb, 0x05, 0x0c, 0xe4, 0xf4, 0x54, 0x1f, 0xcb, 0xf5, 0x06, 0x4d, |
|
| 10555 |
+ 0x24, 0x11, 0x19, 0x51, 0x05, 0xd1, 0x1e, 0x2e, 0x99, 0x05, 0xe9, 0xaf, 0x9b, 0x0f, 0x91, 0x70, |
|
| 10556 |
+ 0x11, 0x9d, 0x43, 0xed, 0xe2, 0x3b, 0x3c, 0xa4, 0x4c, 0xba, 0xbe, 0x11, 0xdb, 0x7f, 0x1d, 0x96, |
|
| 10557 |
+ 0x66, 0xd6, 0xf9, 0x18, 0x9f, 0xab, 0xb7, 0xf6, 0xdf, 0x2c, 0x24, 0xe5, 0xd7, 0xff, 0x17, 0xd2, |
|
| 10558 |
+ 0xea, 0x3f, 0x91, 0x5e, 0xb6, 0x1c, 0x7e, 0xad, 0xd8, 0xae, 0x46, 0xd7, 0xcf, 0x19, 0x5e, 0x8d, |
|
| 10559 |
+ 0x1b, 0x8e, 0x25, 0x7d, 0x26, 0x92, 0xd0, 0x4c, 0xac, 0x30, 0x7e, 0xc0, 0xe1, 0x24, 0x54, 0xc4, |
|
| 10560 |
+ 0xe8, 0x9b, 0x13, 0xcc, 0xac, 0x3b, 0x44, 0x1c, 0xdf, 0xd6, 0x25, 0x02, 0x42, 0xc4, 0x34, 0x59, |
|
| 10561 |
+ 0x71, 0x36, 0x1c, 0x1d, 0xe0, 0x35, 0xed, 0xd3, 0x9e, 0xc0, 0x24, 0x39, 0x66, 0x29, 0x94, 0x32, |
|
| 10562 |
+ 0x98, 0x5a, 0xc5, 0xf2, 0x32, 0xb0, 0xb9, 0x0a, 0x89, 0x4e, 0xa5, 0x85, 0x71, 0x67, 0x05, 0xa3, |
|
| 10563 |
+ 0x46, 0x2e, 0x10, 0xa3, 0x88, 0xf5, 0xec, 0x55, 0x5b, 0x18, 0x6e, 0x66, 0x7a, 0x50, 0x54, 0x4c, |
|
| 10564 |
+ 0xb2, 0x70, 0xa2, 0xfe, 0x2a, 0x06, 0x69, 0x91, 0xdc, 0x22, 0x57, 0xac, 0xc1, 0x62, 0x40, 0xb9, |
|
| 10565 |
+ 0x44, 0xc6, 0x7d, 0xf1, 0xc9, 0xd9, 0xb1, 0x24, 0x93, 0x99, 0x38, 0xc7, 0x40, 0xaf, 0xf8, 0x36, |
|
| 10566 |
+ 0xe4, 0xa7, 0x3b, 0xbe, 0xd1, 0x29, 0xfe, 0x18, 0x72, 0xcc, 0x51, 0x82, 0x2c, 0xb9, 0x09, 0x69, |
|
| 10567 |
+ 0x91, 0x80, 0xe5, 0x55, 0x3f, 0x2b, 0x55, 0x4b, 0x24, 0x46, 0xba, 0x45, 0x91, 0xde, 0x83, 0xc2, |
|
| 10568 |
+ 0x73, 0xfd, 0x6c, 0x77, 0x24, 0x01, 0x5c, 0xbd, 0x05, 0xc9, 0x16, 0x45, 0x0b, 0xcf, 0xc1, 0xa2, |
|
| 10569 |
+ 0x8d, 0xa1, 0x67, 0x12, 0xd9, 0x24, 0x33, 0xe9, 0x51, 0x8c, 0x58, 0x69, 0xd6, 0x85, 0xf1, 0x0c, |
|
| 10570 |
+ 0x37, 0x4f, 0x47, 0x7f, 0x0b, 0x6a, 0x6f, 0xf6, 0xad, 0x76, 0x20, 0x7f, 0x97, 0x9a, 0x47, 0x7d, |
|
| 10571 |
+ 0x1f, 0x4f, 0x8c, 0x19, 0x7a, 0x15, 0x92, 0x43, 0x1a, 0x4e, 0x7e, 0x35, 0xd2, 0x75, 0xb0, 0x9f, |
|
| 10572 |
+ 0x70, 0x14, 0xbb, 0x90, 0xa7, 0x5c, 0x5b, 0x3e, 0x77, 0xc8, 0x96, 0xfa, 0xfb, 0x38, 0x2c, 0xd7, |
|
| 10573 |
+ 0x3d, 0x6f, 0xa4, 0x63, 0x29, 0x21, 0xa3, 0xe0, 0xbb, 0xb3, 0xa5, 0xd0, 0xf5, 0xc8, 0x15, 0xce, |
|
| 10574 |
+ 0xa8, 0xcc, 0x96, 0x43, 0x32, 0x72, 0xc5, 0xc3, 0xc8, 0xa5, 0x3e, 0x8a, 0x05, 0x75, 0xd0, 0xb5, |
|
| 10575 |
+ 0xa9, 0x7b, 0x53, 0x5c, 0x45, 0x27, 0xba, 0x34, 0x6d, 0x89, 0xee, 0xd9, 0xc7, 0xb6, 0x73, 0x6a, |
|
| 10576 |
+ 0x63, 0xa2, 0xc5, 0xba, 0xa8, 0x51, 0xbb, 0x8b, 0x9e, 0x76, 0x19, 0x41, 0xca, 0x0c, 0x88, 0x50, |
|
| 10577 |
+ 0x9b, 0x9e, 0x32, 0x4b, 0xad, 0x5a, 0xa3, 0x5a, 0x6f, 0xdc, 0xc6, 0xf4, 0xf6, 0xb8, 0xa5, 0x16, |
|
| 10578 |
+ 0xc5, 0x74, 0x66, 0x1f, 0xe1, 0x76, 0xa7, 0xeb, 0xed, 0xf6, 0x1e, 0x67, 0xaa, 0x4f, 0x23, 0xea, |
|
| 10579 |
+ 0xe2, 0x0c, 0x8a, 0x35, 0x90, 0xa6, 0x22, 0x88, 0x65, 0x52, 0x04, 0x25, 0x23, 0x40, 0x2c, 0x99, |
|
| 10580 |
+ 0x62, 0x00, 0x11, 0x1e, 0xfe, 0xb7, 0x38, 0x14, 0x34, 0xc3, 0xa0, 0x43, 0x9f, 0xf5, 0x4b, 0x76, |
|
| 10581 |
+ 0xd2, 0xc1, 0x9b, 0xcc, 0xbe, 0x4c, 0xce, 0xb6, 0x98, 0x5b, 0xdc, 0x8c, 0x7c, 0x0b, 0x9b, 0xd3, |
|
| 10582 |
+ 0x2b, 0x11, 0xc7, 0xa2, 0x5a, 0x6f, 0x60, 0x7a, 0xec, 0x7d, 0x44, 0xc8, 0x48, 0x68, 0xa9, 0xf8, |
|
| 10583 |
+ 0x65, 0x0c, 0x2e, 0x46, 0x20, 0x94, 0xd7, 0x21, 0xe9, 0xa2, 0x58, 0x1e, 0xcf, 0xda, 0x93, 0x2a, |
|
| 10584 |
+ 0x55, 0xa6, 0x4a, 0x38, 0x52, 0x59, 0x07, 0xd0, 0x47, 0xbe, 0xa3, 0xf3, 0xf1, 0xf9, 0xc1, 0x64, |
|
| 10585 |
+ 0xc8, 0x94, 0x44, 0xb9, 0x8b, 0xd1, 0x9a, 0x1a, 0xae, 0x2c, 0xf6, 0x72, 0x9b, 0xb7, 0xfe, 0xdb, |
|
| 10586 |
+ 0xd9, 0x97, 0xda, 0xdc, 0x0c, 0x91, 0xe6, 0x8a, 0x25, 0xac, 0x13, 0xf8, 0x17, 0xf3, 0x68, 0xa4, |
|
| 10587 |
+ 0x14, 0x3a, 0x9f, 0x74, 0x9e, 0xf0, 0x6f, 0xe6, 0x28, 0xba, 0x75, 0x14, 0x38, 0x0a, 0x7e, 0xaa, |
|
| 10588 |
+ 0x1f, 0x63, 0x2e, 0xaa, 0xdd, 0xf7, 0xa9, 0x6b, 0xeb, 0x56, 0x45, 0x53, 0x6a, 0x53, 0x11, 0x52, |
|
| 10589 |
+ 0xac, 0xf6, 0xa5, 0xc8, 0xf7, 0x8b, 0x50, 0xa3, 0x54, 0xd1, 0x22, 0x62, 0x24, 0xb2, 0x83, 0x91, |
|
| 10590 |
+ 0x6b, 0xc9, 0xb7, 0x30, 0xce, 0x0e, 0xf6, 0xc8, 0x0e, 0x61, 0x32, 0xf6, 0x90, 0x14, 0x44, 0xa4, |
|
| 10591 |
+ 0xc4, 0x93, 0x1f, 0x31, 0xa7, 0x06, 0xf8, 0xee, 0xa3, 0xd2, 0xab, 0x00, 0x93, 0x59, 0xe3, 0x51, |
|
| 10592 |
+ 0xa5, 0x2a, 0x5b, 0xed, 0xf6, 0x0e, 0x5e, 0x0f, 0x4e, 0xa6, 0x27, 0x5d, 0x5c, 0xac, 0xfe, 0x2e, |
|
| 10593 |
+ 0x06, 0x99, 0x8a, 0x26, 0xb3, 0xca, 0x16, 0x14, 0x78, 0x2c, 0x31, 0xa8, 0xeb, 0x77, 0xe9, 0xfd, |
|
| 10594 |
+ 0xa1, 0xe9, 0x8e, 0x65, 0x38, 0x38, 0x9b, 0x76, 0x2e, 0x33, 0xad, 0x0a, 0x2a, 0xd5, 0xb8, 0x8e, |
|
| 10595 |
+ 0x42, 0x20, 0x4f, 0xe5, 0x12, 0xbb, 0x86, 0x1e, 0x04, 0xe7, 0xf5, 0xb3, 0xb7, 0x42, 0x50, 0xb2, |
|
| 10596 |
+ 0x49, 0x1b, 0x8b, 0xf6, 0xc0, 0x48, 0x45, 0xf7, 0xd4, 0x7d, 0xb8, 0xd8, 0x74, 0x8d, 0x3e, 0x92, |
|
| 10597 |
+ 0x23, 0x31, 0xa8, 0x9c, 0xf2, 0x2d, 0x58, 0xf3, 0x91, 0x04, 0x75, 0xfb, 0xa6, 0xe7, 0xb3, 0x27, |
|
| 10598 |
+ 0x58, 0xf4, 0x0d, 0x6a, 0xb3, 0xfe, 0x2e, 0x7f, 0x2a, 0x95, 0xc5, 0xca, 0x15, 0x86, 0xd9, 0x16, |
|
| 10599 |
+ 0x10, 0x12, 0x20, 0x76, 0x18, 0x40, 0xad, 0x63, 0xad, 0x83, 0x9d, 0x55, 0x7a, 0xa8, 0x8f, 0x2c, |
|
| 10600 |
+ 0x24, 0xdc, 0x6f, 0x01, 0x58, 0xce, 0x51, 0xf7, 0xdc, 0x91, 0x3c, 0x8b, 0x68, 0xf1, 0xa9, 0x7e, |
|
| 10601 |
+ 0x1f, 0x0a, 0x55, 0xd3, 0x1b, 0xea, 0x3e, 0x4e, 0x53, 0x56, 0x61, 0xca, 0x6d, 0x28, 0xf4, 0x29, |
|
| 10602 |
+ 0xd2, 0xe1, 0x03, 0xaa, 0x63, 0x4a, 0xa5, 0xae, 0xe9, 0xf4, 0xce, 0xb5, 0xa5, 0x2b, 0xa1, 0x56, |
|
| 10603 |
+ 0x8b, 0x2b, 0xa9, 0x5f, 0x21, 0x01, 0x60, 0xcf, 0x5c, 0xd2, 0xee, 0x2b, 0x70, 0xc1, 0xb3, 0xf5, |
|
| 10604 |
+ 0xa1, 0xd7, 0x77, 0xfc, 0xae, 0x69, 0xfb, 0xec, 0x5d, 0xd7, 0x92, 0x54, 0xba, 0x10, 0x74, 0xd4, |
|
| 10605 |
+ 0xa5, 0x1c, 0x43, 0xbb, 0x72, 0x4c, 0xe9, 0xb0, 0xeb, 0x58, 0xbd, 0x6e, 0xd0, 0x29, 0xde, 0x72, |
|
| 10606 |
+ 0x11, 0xcd, 0x7a, 0x9a, 0x56, 0xaf, 0x1d, 0xc8, 0x95, 0x32, 0xac, 0xb3, 0x1d, 0xc0, 0x4d, 0x72, |
|
| 10607 |
+ 0x31, 0x6c, 0x74, 0x0f, 0x1d, 0xb7, 0xeb, 0x59, 0xce, 0x29, 0x7e, 0x58, 0xf8, 0x43, 0xdd, 0xa0, |
|
| 10608 |
+ 0x4e, 0x29, 0x22, 0xaa, 0x26, 0x40, 0x5b, 0x8e, 0xdb, 0xc6, 0xbe, 0xad, 0x00, 0xc1, 0x58, 0xc2, |
|
| 10609 |
+ 0x64, 0xd9, 0xbe, 0x69, 0x1c, 0x07, 0x2c, 0x21, 0x94, 0x76, 0x50, 0x88, 0x81, 0x72, 0x89, 0x5a, |
|
| 10610 |
+ 0xd4, 0xe0, 0xe7, 0xc5, 0x51, 0x29, 0x8e, 0xca, 0x07, 0x42, 0x06, 0x52, 0xff, 0x17, 0xb2, 0x2d, |
|
| 10611 |
+ 0x4b, 0x37, 0xf8, 0x8b, 0x39, 0x2b, 0x1e, 0x30, 0x03, 0x32, 0x27, 0xc0, 0x55, 0x8b, 0xe8, 0x98, |
|
| 10612 |
+ 0x25, 0xd3, 0x22, 0xf5, 0x5d, 0x80, 0xf7, 0x1d, 0xd3, 0xee, 0x38, 0xc7, 0xd4, 0xe6, 0x8f, 0x8b, |
|
| 10613 |
+ 0xa7, 0x8e, 0x7b, 0x2c, 0x8f, 0x12, 0x89, 0xa3, 0x68, 0x71, 0xa2, 0xac, 0xdb, 0x48, 0x8c, 0xdd, |
|
| 10614 |
+ 0xf0, 0x8d, 0x4d, 0x34, 0x59, 0x72, 0x49, 0x13, 0xc7, 0xf1, 0x31, 0x5e, 0x6c, 0x40, 0xda, 0xd0, |
|
| 10615 |
+ 0xbb, 0xc1, 0xcd, 0xcb, 0x97, 0xb3, 0xe8, 0xa1, 0xa9, 0x8a, 0x76, 0x87, 0x8e, 0x49, 0xca, 0xd0, |
|
| 10616 |
+ 0xf1, 0x87, 0x65, 0x5f, 0x44, 0xb0, 0xfb, 0xc2, 0xcd, 0xe4, 0x45, 0xf6, 0xc5, 0x0b, 0x85, 0x12, |
|
| 10617 |
+ 0x82, 0xca, 0xec, 0x17, 0x03, 0x6c, 0x5e, 0x82, 0xba, 0x7d, 0xdd, 0xeb, 0x0b, 0xae, 0x5a, 0x5e, |
|
| 10618 |
+ 0x46, 0x24, 0x08, 0xe4, 0x36, 0x4a, 0x09, 0x08, 0x34, 0xfb, 0xc6, 0x30, 0x92, 0xbb, 0x87, 0x6b, |
|
| 10619 |
+ 0xe8, 0xfa, 0x7c, 0x11, 0xb2, 0xf4, 0x8b, 0xbc, 0x3f, 0x93, 0xa5, 0xca, 0x42, 0x08, 0xee, 0x85, |
|
| 10620 |
+ 0x12, 0xf5, 0x2f, 0x31, 0xc8, 0x31, 0x9b, 0xe6, 0xa1, 0x69, 0xb0, 0x6c, 0xf9, 0xcd, 0x23, 0x3d, |
|
| 10621 |
+ 0x86, 0x3a, 0xc3, 0x73, 0xe5, 0xda, 0x78, 0xa8, 0xab, 0xb4, 0x09, 0x61, 0x32, 0xe5, 0x3d, 0x0c, |
|
| 10622 |
+ 0xf2, 0x3c, 0x5b, 0xcb, 0x20, 0xaf, 0x7e, 0x7d, 0x5e, 0x97, 0x53, 0x94, 0x7a, 0xfc, 0x2c, 0x27, |
|
| 10623 |
+ 0xb3, 0xe3, 0xab, 0xcc, 0x93, 0x69, 0x11, 0xfb, 0xa7, 0x83, 0x61, 0x73, 0xa7, 0x90, 0xff, 0x74, |
|
| 10624 |
+ 0xa8, 0x34, 0x08, 0x4a, 0xd4, 0x3f, 0xc5, 0x60, 0xa9, 0x66, 0x1b, 0xee, 0x98, 0x07, 0x49, 0x76, |
|
| 10625 |
+ 0x10, 0x6b, 0x90, 0xc5, 0x92, 0xc0, 0x1b, 0x7b, 0x58, 0x37, 0x07, 0x6f, 0x9a, 0xa1, 0x40, 0xa9, |
|
| 10626 |
+ 0x43, 0x16, 0xd3, 0x81, 0xe3, 0x9a, 0x7e, 0x7f, 0x20, 0xb9, 0x71, 0x74, 0x60, 0x9e, 0xb6, 0x59, |
|
| 10627 |
+ 0xd2, 0x02, 0x15, 0x32, 0xd1, 0x0e, 0x42, 0x71, 0x82, 0x4f, 0x96, 0x87, 0x62, 0xac, 0xe2, 0x2d, |
|
| 10628 |
+ 0x2c, 0xd8, 0x90, 0xf5, 0x76, 0x59, 0x1d, 0xc4, 0xd7, 0x81, 0x05, 0xad, 0x94, 0xb1, 0xda, 0x4e, |
|
| 10629 |
+ 0x55, 0x21, 0x1b, 0x1a, 0x63, 0x2f, 0xc9, 0x5a, 0xad, 0xdd, 0xbd, 0xb1, 0x79, 0xb3, 0x7b, 0xbb, |
|
| 10630 |
+ 0xb2, 0x8b, 0x81, 0x59, 0x30, 0x81, 0x3f, 0xe0, 0x9a, 0x76, 0x85, 0x0f, 0x4a, 0xe2, 0x84, 0xce, |
|
| 10631 |
+ 0xe5, 0xe2, 0x8d, 0x0f, 0xa8, 0x5d, 0x52, 0x38, 0x17, 0x0b, 0x02, 0x8c, 0xda, 0xb1, 0xae, 0x68, |
|
| 10632 |
+ 0x6a, 0x37, 0xf5, 0xa2, 0x9e, 0x38, 0xf3, 0x45, 0x3d, 0xf9, 0x9d, 0xbc, 0xa8, 0xbf, 0xfc, 0x55, |
|
| 10633 |
+ 0x02, 0xb2, 0x61, 0x25, 0xca, 0x5c, 0x86, 0x31, 0xad, 0x05, 0xf1, 0x46, 0x10, 0xca, 0x1b, 0x9c, |
|
| 10634 |
+ 0x63, 0x65, 0xb5, 0x9d, 0x9d, 0x66, 0x45, 0x63, 0x0f, 0xd2, 0xef, 0x09, 0x2a, 0x16, 0x02, 0x34, |
|
| 10635 |
+ 0x8c, 0x1d, 0xec, 0xd0, 0x7b, 0x8a, 0x3a, 0xa1, 0x62, 0x0f, 0xe4, 0x4b, 0x44, 0x88, 0x0a, 0x78, |
|
| 10636 |
+ 0xd8, 0xf3, 0x90, 0xd1, 0xda, 0xed, 0xfa, 0xed, 0x06, 0x5a, 0x7a, 0x18, 0x2b, 0x3e, 0x85, 0xa0, |
|
| 10637 |
+ 0x0b, 0x13, 0x53, 0x48, 0x21, 0x8e, 0x6c, 0xb4, 0xc4, 0x50, 0x95, 0x4a, 0xad, 0xc5, 0xc6, 0x7b, |
|
| 10638 |
+ 0x10, 0x9f, 0x47, 0x71, 0x02, 0xc2, 0x5f, 0x15, 0xb3, 0x2d, 0x52, 0x6b, 0x69, 0x84, 0x8d, 0xf8, |
|
| 10639 |
+ 0x30, 0x3e, 0x37, 0xaf, 0x96, 0x4b, 0x87, 0xba, 0xcb, 0xc6, 0x5c, 0x0f, 0x5e, 0xd7, 0x1f, 0x24, |
|
| 10640 |
+ 0xc4, 0xcb, 0xd3, 0xa4, 0xfc, 0xc6, 0xfd, 0x1d, 0xb3, 0xd1, 0xda, 0x1d, 0x8d, 0x74, 0xb8, 0x99, |
|
| 10641 |
+ 0xc4, 0xdc, 0x68, 0x6d, 0xf6, 0x28, 0xc2, 0xac, 0xe0, 0xea, 0xc8, 0x5e, 0xa3, 0xc1, 0x57, 0x97, |
|
| 10642 |
+ 0x9c, 0x5b, 0x1d, 0x19, 0xd9, 0x36, 0xc3, 0x5c, 0xc3, 0xa4, 0xdc, 0xdc, 0x6d, 0xed, 0xd4, 0x3a, |
|
| 10643 |
+ 0xb5, 0xc2, 0xc3, 0xe4, 0xdc, 0x84, 0x2a, 0xce, 0x60, 0x68, 0x51, 0x5f, 0x2c, 0xaf, 0xbd, 0xbd, |
|
| 10644 |
+ 0xd7, 0xe1, 0x8f, 0xff, 0x0f, 0x52, 0xf3, 0x03, 0xf6, 0x47, 0x7e, 0x8f, 0x91, 0xdf, 0x8d, 0x90, |
|
| 10645 |
+ 0x8d, 0x3e, 0x4c, 0x09, 0x12, 0x10, 0x62, 0x04, 0x15, 0x65, 0x76, 0x48, 0xed, 0x7d, 0xf1, 0x7f, |
|
| 10646 |
+ 0x82, 0x07, 0xe9, 0x39, 0x3b, 0x84, 0xde, 0xc3, 0x60, 0x8c, 0x84, 0x35, 0x7c, 0x58, 0x0b, 0xbb, |
|
| 10647 |
+ 0x5e, 0xfe, 0x01, 0x64, 0x82, 0x80, 0x81, 0xbb, 0x93, 0xbe, 0xdb, 0x24, 0x77, 0x6a, 0x04, 0x8f, |
|
| 10648 |
+ 0x9e, 0xef, 0x4e, 0xd0, 0x73, 0x57, 0x44, 0xdc, 0x0d, 0x58, 0xdc, 0xd5, 0x1a, 0xda, 0x6d, 0x04, |
|
| 10649 |
+ 0xc8, 0x87, 0xbd, 0x00, 0x20, 0xbd, 0xbe, 0x58, 0x90, 0x03, 0x84, 0x36, 0xcb, 0x6b, 0x8f, 0x3e, |
|
| 10650 |
+ 0x5f, 0x5f, 0xf8, 0x14, 0xff, 0xbe, 0xfc, 0x7c, 0x3d, 0xf6, 0xe0, 0x8b, 0xf5, 0xd8, 0x23, 0xfc, |
|
| 10651 |
+ 0xfb, 0x04, 0xff, 0xfe, 0x8e, 0x7f, 0x07, 0x69, 0xce, 0xc8, 0xde, 0xf8, 0x4f, 0x00, 0x00, 0x00, |
|
| 10652 |
+ 0xff, 0xff, 0x0e, 0xef, 0x48, 0x56, 0xe9, 0x1e, 0x00, 0x00, |
|
| 10648 | 10653 |
} |
| ... | ... |
@@ -521,6 +521,17 @@ message OrchestrationConfig {
|
| 521 | 521 |
// TaskHistoryRetentionLimit is the number of historic tasks to keep per instance or |
| 522 | 522 |
// node. If negative, never remove completed or failed tasks. |
| 523 | 523 |
int64 task_history_retention_limit = 1; |
| 524 |
+ |
|
| 525 |
+} |
|
| 526 |
+ |
|
| 527 |
+// TaskDefaults specifies default values for task creation. |
|
| 528 |
+message TaskDefaults {
|
|
| 529 |
+ // LogDriver specifies the log driver to use for the cluster if not |
|
| 530 |
+ // specified for each task. |
|
| 531 |
+ // |
|
| 532 |
+ // If this is changed, only new tasks will pick up the new log driver. |
|
| 533 |
+ // Existing tasks will continue to use the previous default until rescheduled. |
|
| 534 |
+ Driver log_driver = 1; |
|
| 524 | 535 |
} |
| 525 | 536 |
|
| 526 | 537 |
// DispatcherConfig defines cluster-level dispatcher settings. |
| ... | ... |
@@ -554,6 +565,15 @@ message Placement {
|
| 554 | 554 |
repeated string constraints = 1; |
| 555 | 555 |
} |
| 556 | 556 |
|
| 557 |
+// JoinToken contains the join tokens for workers and managers. |
|
| 558 |
+message JoinTokens {
|
|
| 559 |
+ // Worker is the join token workers may use to join the swarm. |
|
| 560 |
+ string worker = 1; |
|
| 561 |
+ |
|
| 562 |
+ // Manager is the join token workers may use to join the swarm. |
|
| 563 |
+ string manager = 2; |
|
| 564 |
+} |
|
| 565 |
+ |
|
| 557 | 566 |
message RootCA {
|
| 558 | 567 |
// CAKey is the root CA private key. |
| 559 | 568 |
bytes ca_key = 1 [(gogoproto.customname) = "CAKey"]; |
| ... | ... |
@@ -563,6 +583,9 @@ message RootCA {
|
| 563 | 563 |
|
| 564 | 564 |
// CACertHash is the digest of the CA Certificate. |
| 565 | 565 |
string ca_cert_hash = 3 [(gogoproto.customname) = "CACertHash"]; |
| 566 |
+ |
|
| 567 |
+ // JoinTokens contains the join tokens for workers and managers. |
|
| 568 |
+ JoinTokens join_tokens = 4 [(gogoproto.nullable) = false]; |
|
| 566 | 569 |
} |
| 567 | 570 |
|
| 568 | 571 |
|
| ... | ... |
@@ -156,7 +156,7 @@ func (rca *RootCA) IssueAndSaveNewCertificates(paths CertPaths, cn, ou, org stri |
| 156 | 156 |
|
| 157 | 157 |
// RequestAndSaveNewCertificates gets new certificates issued, either by signing them locally if a signer is |
| 158 | 158 |
// available, or by requesting them from the remote server at remoteAddr. |
| 159 |
-func (rca *RootCA) RequestAndSaveNewCertificates(ctx context.Context, paths CertPaths, role, secret string, picker *picker.Picker, transport credentials.TransportAuthenticator, nodeInfo chan<- api.IssueNodeCertificateResponse) (*tls.Certificate, error) {
|
|
| 159 |
+func (rca *RootCA) RequestAndSaveNewCertificates(ctx context.Context, paths CertPaths, token string, picker *picker.Picker, transport credentials.TransportAuthenticator, nodeInfo chan<- api.IssueNodeCertificateResponse) (*tls.Certificate, error) {
|
|
| 160 | 160 |
// Create a new key/pair and CSR for the new manager |
| 161 | 161 |
// Write the new CSR and the new key to a temporary location so we can survive crashes on rotation |
| 162 | 162 |
tempPaths := genTempPaths(paths) |
| ... | ... |
@@ -171,7 +171,7 @@ func (rca *RootCA) RequestAndSaveNewCertificates(ctx context.Context, paths Cert |
| 171 | 171 |
// responding properly (for example, it may have just been demoted). |
| 172 | 172 |
var signedCert []byte |
| 173 | 173 |
for i := 0; i != 5; i++ {
|
| 174 |
- signedCert, err = GetRemoteSignedCertificate(ctx, csr, role, secret, rca.Pool, picker, transport, nodeInfo) |
|
| 174 |
+ signedCert, err = GetRemoteSignedCertificate(ctx, csr, token, rca.Pool, picker, transport, nodeInfo) |
|
| 175 | 175 |
if err == nil {
|
| 176 | 176 |
break |
| 177 | 177 |
} |
| ... | ... |
@@ -207,7 +207,9 @@ func (rca *RootCA) RequestAndSaveNewCertificates(ctx context.Context, paths Cert |
| 207 | 207 |
return nil, err |
| 208 | 208 |
} |
| 209 | 209 |
|
| 210 |
- log.Infof("Downloaded new TLS credentials with role: %s.", role)
|
|
| 210 |
+ if len(X509Cert.Subject.OrganizationalUnit) != 0 {
|
|
| 211 |
+ log.Infof("Downloaded new TLS credentials with role: %s.", X509Cert.Subject.OrganizationalUnit[0])
|
|
| 212 |
+ } |
|
| 211 | 213 |
|
| 212 | 214 |
// Ensure directory exists |
| 213 | 215 |
err = os.MkdirAll(filepath.Dir(paths.Cert), 0755) |
| ... | ... |
@@ -480,7 +482,7 @@ func GetRemoteCA(ctx context.Context, d digest.Digest, picker *picker.Picker) (R |
| 480 | 480 |
return RootCA{}, fmt.Errorf("failed to append certificate to cert pool")
|
| 481 | 481 |
} |
| 482 | 482 |
|
| 483 |
- return RootCA{Cert: response.Certificate, Pool: pool}, nil
|
|
| 483 |
+ return RootCA{Cert: response.Certificate, Digest: digest.FromBytes(response.Certificate), Pool: pool}, nil
|
|
| 484 | 484 |
} |
| 485 | 485 |
|
| 486 | 486 |
// CreateAndWriteRootCA creates a Certificate authority for a new Swarm Cluster, potentially |
| ... | ... |
@@ -595,9 +597,10 @@ func GenerateAndWriteNewKey(paths CertPaths) (csr, key []byte, err error) {
|
| 595 | 595 |
return |
| 596 | 596 |
} |
| 597 | 597 |
|
| 598 |
-// GetRemoteSignedCertificate submits a CSR together with the intended role to a remote CA server address |
|
| 599 |
-// available through a picker, and that is part of a CA identified by a specific certificate pool. |
|
| 600 |
-func GetRemoteSignedCertificate(ctx context.Context, csr []byte, role, secret string, rootCAPool *x509.CertPool, picker *picker.Picker, creds credentials.TransportAuthenticator, nodeInfo chan<- api.IssueNodeCertificateResponse) ([]byte, error) {
|
|
| 598 |
+// GetRemoteSignedCertificate submits a CSR to a remote CA server address |
|
| 599 |
+// available through a picker, and that is part of a CA identified by a |
|
| 600 |
+// specific certificate pool. |
|
| 601 |
+func GetRemoteSignedCertificate(ctx context.Context, csr []byte, token string, rootCAPool *x509.CertPool, picker *picker.Picker, creds credentials.TransportAuthenticator, nodeInfo chan<- api.IssueNodeCertificateResponse) ([]byte, error) {
|
|
| 601 | 602 |
if rootCAPool == nil {
|
| 602 | 603 |
return nil, fmt.Errorf("valid root CA pool required")
|
| 603 | 604 |
} |
| ... | ... |
@@ -630,14 +633,8 @@ func GetRemoteSignedCertificate(ctx context.Context, csr []byte, role, secret st |
| 630 | 630 |
// Create a CAClient to retrieve a new Certificate |
| 631 | 631 |
caClient := api.NewNodeCAClient(conn) |
| 632 | 632 |
|
| 633 |
- // Convert our internal string roles into an API role |
|
| 634 |
- apiRole, err := FormatRole(role) |
|
| 635 |
- if err != nil {
|
|
| 636 |
- return nil, err |
|
| 637 |
- } |
|
| 638 |
- |
|
| 639 | 633 |
// Send the Request and retrieve the request token |
| 640 |
- issueRequest := &api.IssueNodeCertificateRequest{CSR: csr, Role: apiRole, Secret: secret}
|
|
| 634 |
+ issueRequest := &api.IssueNodeCertificateRequest{CSR: csr, Token: token}
|
|
| 641 | 635 |
issueResponse, err := caClient.IssueNodeCertificate(ctx, issueRequest) |
| 642 | 636 |
if err != nil {
|
| 643 | 637 |
return nil, err |
| ... | ... |
@@ -1,11 +1,14 @@ |
| 1 | 1 |
package ca |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 |
+ cryptorand "crypto/rand" |
|
| 4 | 5 |
"crypto/tls" |
| 5 | 6 |
"crypto/x509" |
| 6 | 7 |
"encoding/pem" |
| 8 |
+ "errors" |
|
| 7 | 9 |
"fmt" |
| 8 | 10 |
"io/ioutil" |
| 11 |
+ "math/big" |
|
| 9 | 12 |
"math/rand" |
| 10 | 13 |
"path/filepath" |
| 11 | 14 |
"strings" |
| ... | ... |
@@ -28,9 +31,7 @@ const ( |
| 28 | 28 |
nodeTLSCertFilename = "swarm-node.crt" |
| 29 | 29 |
nodeTLSKeyFilename = "swarm-node.key" |
| 30 | 30 |
nodeCSRFilename = "swarm-node.csr" |
| 31 |
-) |
|
| 32 | 31 |
|
| 33 |
-const ( |
|
| 34 | 32 |
rootCN = "swarm-ca" |
| 35 | 33 |
// ManagerRole represents the Manager node type, and is used for authorization to endpoints |
| 36 | 34 |
ManagerRole = "swarm-manager" |
| ... | ... |
@@ -38,6 +39,13 @@ const ( |
| 38 | 38 |
AgentRole = "swarm-worker" |
| 39 | 39 |
// CARole represents the CA node type, and is used for clients attempting to get new certificates issued |
| 40 | 40 |
CARole = "swarm-ca" |
| 41 |
+ |
|
| 42 |
+ generatedSecretEntropyBytes = 16 |
|
| 43 |
+ joinTokenBase = 36 |
|
| 44 |
+ // ceil(log(2^128-1, 36)) |
|
| 45 |
+ maxGeneratedSecretLength = 25 |
|
| 46 |
+ // ceil(log(2^256-1, 36)) |
|
| 47 |
+ base36DigestLen = 50 |
|
| 41 | 48 |
) |
| 42 | 49 |
|
| 43 | 50 |
// SecurityConfig is used to represent a node's security configuration. It includes information about |
| ... | ... |
@@ -148,10 +156,36 @@ func NewConfigPaths(baseCertDir string) *SecurityConfigPaths {
|
| 148 | 148 |
} |
| 149 | 149 |
} |
| 150 | 150 |
|
| 151 |
+// GenerateJoinToken creates a new join token. |
|
| 152 |
+func GenerateJoinToken(rootCA *RootCA) string {
|
|
| 153 |
+ var secretBytes [generatedSecretEntropyBytes]byte |
|
| 154 |
+ |
|
| 155 |
+ if _, err := cryptorand.Read(secretBytes[:]); err != nil {
|
|
| 156 |
+ panic(fmt.Errorf("failed to read random bytes: %v", err))
|
|
| 157 |
+ } |
|
| 158 |
+ |
|
| 159 |
+ var nn, digest big.Int |
|
| 160 |
+ nn.SetBytes(secretBytes[:]) |
|
| 161 |
+ digest.SetString(rootCA.Digest.Hex(), 16) |
|
| 162 |
+ return fmt.Sprintf("SWMTKN-1-%0[1]*s-%0[3]*s", base36DigestLen, digest.Text(joinTokenBase), maxGeneratedSecretLength, nn.Text(joinTokenBase))
|
|
| 163 |
+} |
|
| 164 |
+ |
|
| 165 |
+func getCAHashFromToken(token string) (digest.Digest, error) {
|
|
| 166 |
+ split := strings.Split(token, "-") |
|
| 167 |
+ if len(split) != 4 || split[0] != "SWMTKN" || split[1] != "1" {
|
|
| 168 |
+ return "", errors.New("invalid join token")
|
|
| 169 |
+ } |
|
| 170 |
+ |
|
| 171 |
+ var digestInt big.Int |
|
| 172 |
+ digestInt.SetString(split[2], joinTokenBase) |
|
| 173 |
+ |
|
| 174 |
+ return digest.ParseDigest(fmt.Sprintf("sha256:%0[1]*s", 64, digestInt.Text(16)))
|
|
| 175 |
+} |
|
| 176 |
+ |
|
| 151 | 177 |
// LoadOrCreateSecurityConfig encapsulates the security logic behind joining a cluster. |
| 152 | 178 |
// Every node requires at least a set of TLS certificates with which to join the cluster with. |
| 153 | 179 |
// In the case of a manager, these certificates will be used both for client and server credentials. |
| 154 |
-func LoadOrCreateSecurityConfig(ctx context.Context, baseCertDir, caHash, secret, proposedRole string, picker *picker.Picker, nodeInfo chan<- api.IssueNodeCertificateResponse) (*SecurityConfig, error) {
|
|
| 180 |
+func LoadOrCreateSecurityConfig(ctx context.Context, baseCertDir, token, proposedRole string, picker *picker.Picker, nodeInfo chan<- api.IssueNodeCertificateResponse) (*SecurityConfig, error) {
|
|
| 155 | 181 |
paths := NewConfigPaths(baseCertDir) |
| 156 | 182 |
|
| 157 | 183 |
var ( |
| ... | ... |
@@ -171,9 +205,12 @@ func LoadOrCreateSecurityConfig(ctx context.Context, baseCertDir, caHash, secret |
| 171 | 171 |
// Get a digest for the optional CA hash string that we've been provided |
| 172 | 172 |
// If we were provided a non-empty string, and it is an invalid hash, return |
| 173 | 173 |
// otherwise, allow the invalid digest through. |
| 174 |
- d, err := digest.ParseDigest(caHash) |
|
| 175 |
- if err != nil && caHash != "" {
|
|
| 176 |
- return nil, err |
|
| 174 |
+ var d digest.Digest |
|
| 175 |
+ if token != "" {
|
|
| 176 |
+ d, err = getCAHashFromToken(token) |
|
| 177 |
+ if err != nil {
|
|
| 178 |
+ return nil, err |
|
| 179 |
+ } |
|
| 177 | 180 |
} |
| 178 | 181 |
|
| 179 | 182 |
// Get the remote CA certificate, verify integrity with the |
| ... | ... |
@@ -232,7 +269,7 @@ func LoadOrCreateSecurityConfig(ctx context.Context, baseCertDir, caHash, secret |
| 232 | 232 |
} else {
|
| 233 | 233 |
// There was an error loading our Credentials, let's get a new certificate issued |
| 234 | 234 |
// Last argument is nil because at this point we don't have any valid TLS creds |
| 235 |
- tlsKeyPair, err = rootCA.RequestAndSaveNewCertificates(ctx, paths.Node, proposedRole, secret, picker, nil, nodeInfo) |
|
| 235 |
+ tlsKeyPair, err = rootCA.RequestAndSaveNewCertificates(ctx, paths.Node, token, picker, nil, nodeInfo) |
|
| 236 | 236 |
if err != nil {
|
| 237 | 237 |
return nil, err |
| 238 | 238 |
} |
| ... | ... |
@@ -304,11 +341,10 @@ func RenewTLSConfig(ctx context.Context, s *SecurityConfig, baseCertDir string, |
| 304 | 304 |
} |
| 305 | 305 |
log.Infof("Renewing TLS Certificate.")
|
| 306 | 306 |
|
| 307 |
- // Let's request new certs. Renewals don't require a secret. |
|
| 307 |
+ // Let's request new certs. Renewals don't require a token. |
|
| 308 | 308 |
rootCA := s.RootCA() |
| 309 | 309 |
tlsKeyPair, err := rootCA.RequestAndSaveNewCertificates(ctx, |
| 310 | 310 |
paths.Node, |
| 311 |
- s.ClientTLSCreds.Role(), |
|
| 312 | 311 |
"", |
| 313 | 312 |
picker, |
| 314 | 313 |
s.ClientTLSCreds, |
| ... | ... |
@@ -2,9 +2,7 @@ package ca |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 | 4 |
"crypto/subtle" |
| 5 |
- "errors" |
|
| 6 | 5 |
"fmt" |
| 7 |
- "strings" |
|
| 8 | 6 |
"sync" |
| 9 | 7 |
|
| 10 | 8 |
"github.com/Sirupsen/logrus" |
| ... | ... |
@@ -14,7 +12,6 @@ import ( |
| 14 | 14 |
"github.com/docker/swarmkit/manager/state" |
| 15 | 15 |
"github.com/docker/swarmkit/manager/state/store" |
| 16 | 16 |
"github.com/docker/swarmkit/protobuf/ptypes" |
| 17 |
- "golang.org/x/crypto/bcrypt" |
|
| 18 | 17 |
"golang.org/x/net/context" |
| 19 | 18 |
"google.golang.org/grpc" |
| 20 | 19 |
"google.golang.org/grpc/codes" |
| ... | ... |
@@ -25,35 +22,19 @@ import ( |
| 25 | 25 |
// CA, NodeCA, and other hypothetical future CA services. At the moment, |
| 26 | 26 |
// breaking it apart doesn't seem worth it. |
| 27 | 27 |
type Server struct {
|
| 28 |
- mu sync.Mutex |
|
| 29 |
- wg sync.WaitGroup |
|
| 30 |
- ctx context.Context |
|
| 31 |
- cancel func() |
|
| 32 |
- store *store.MemoryStore |
|
| 33 |
- securityConfig *SecurityConfig |
|
| 34 |
- acceptancePolicy *api.AcceptancePolicy |
|
| 28 |
+ mu sync.Mutex |
|
| 29 |
+ wg sync.WaitGroup |
|
| 30 |
+ ctx context.Context |
|
| 31 |
+ cancel func() |
|
| 32 |
+ store *store.MemoryStore |
|
| 33 |
+ securityConfig *SecurityConfig |
|
| 34 |
+ joinTokens *api.JoinTokens |
|
| 35 | 35 |
|
| 36 | 36 |
// Started is a channel which gets closed once the server is running |
| 37 | 37 |
// and able to service RPCs. |
| 38 | 38 |
started chan struct{}
|
| 39 | 39 |
} |
| 40 | 40 |
|
| 41 |
-// DefaultAcceptancePolicy returns the default acceptance policy. |
|
| 42 |
-func DefaultAcceptancePolicy() api.AcceptancePolicy {
|
|
| 43 |
- return api.AcceptancePolicy{
|
|
| 44 |
- Policies: []*api.AcceptancePolicy_RoleAdmissionPolicy{
|
|
| 45 |
- {
|
|
| 46 |
- Role: api.NodeRoleWorker, |
|
| 47 |
- Autoaccept: true, |
|
| 48 |
- }, |
|
| 49 |
- {
|
|
| 50 |
- Role: api.NodeRoleManager, |
|
| 51 |
- Autoaccept: false, |
|
| 52 |
- }, |
|
| 53 |
- }, |
|
| 54 |
- } |
|
| 55 |
-} |
|
| 56 |
- |
|
| 57 | 41 |
// DefaultCAConfig returns the default CA Config, with a default expiration. |
| 58 | 42 |
func DefaultCAConfig() api.CAConfig {
|
| 59 | 43 |
return api.CAConfig{
|
| ... | ... |
@@ -154,14 +135,12 @@ func (s *Server) NodeCertificateStatus(ctx context.Context, request *api.NodeCer |
| 154 | 154 |
// IssueNodeCertificate is responsible for gatekeeping both certificate requests from new nodes in the swarm, |
| 155 | 155 |
// and authorizing certificate renewals. |
| 156 | 156 |
// If a node presented a valid certificate, the corresponding certificate is set in a RENEW state. |
| 157 |
-// If a node failed to present a valid certificate, we enforce all the policies currently configured in |
|
| 158 |
-// the swarm for node acceptance: check for the validity of the presented secret and check what is the |
|
| 159 |
-// acceptance state the certificate should be put in (PENDING or ACCEPTED). |
|
| 160 |
-// After going through the configured policies, a new random node ID is generated, and the corresponding node |
|
| 161 |
-// entry is created. IssueNodeCertificate is the only place where new node entries to raft should be created. |
|
| 157 |
+// If a node failed to present a valid certificate, we check for a valid join token and set the |
|
| 158 |
+// role accordingly. A new random node ID is generated, and the corresponding node entry is created. |
|
| 159 |
+// IssueNodeCertificate is the only place where new node entries to raft should be created. |
|
| 162 | 160 |
func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNodeCertificateRequest) (*api.IssueNodeCertificateResponse, error) {
|
| 163 |
- // First, let's see if the remote node is proposing to be added as a valid node, and with a non-empty CSR |
|
| 164 |
- if len(request.CSR) == 0 || (request.Role != api.NodeRoleWorker && request.Role != api.NodeRoleManager) {
|
|
| 161 |
+ // First, let's see if the remote node is presenting a non-empty CSR |
|
| 162 |
+ if len(request.CSR) == 0 {
|
|
| 165 | 163 |
return nil, grpc.Errorf(codes.InvalidArgument, codes.InvalidArgument.String()) |
| 166 | 164 |
} |
| 167 | 165 |
|
| ... | ... |
@@ -184,23 +163,20 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
| 184 | 184 |
return s.issueRenewCertificate(ctx, nodeID, request.CSR) |
| 185 | 185 |
} |
| 186 | 186 |
|
| 187 |
- // The remote node didn't successfully present a valid MTLS certificate, let's issue a PENDING |
|
| 187 |
+ // The remote node didn't successfully present a valid MTLS certificate, let's issue a |
|
| 188 | 188 |
// certificate with a new random ID |
| 189 |
- nodeMembership := api.NodeMembershipPending |
|
| 190 |
- |
|
| 191 |
- // If there are acceptance policies configured in the system, we should enforce them |
|
| 192 |
- policy := s.getRolePolicy(request.Role) |
|
| 193 |
- if policy != nil {
|
|
| 194 |
- // If the policy has a Secret set, let's verify it |
|
| 195 |
- if policy.Secret != nil {
|
|
| 196 |
- if err := checkSecretValidity(policy, request.Secret); err != nil {
|
|
| 197 |
- return nil, grpc.Errorf(codes.InvalidArgument, "A valid secret token is necessary to join this cluster: %v", err) |
|
| 198 |
- } |
|
| 199 |
- } |
|
| 200 |
- // Check to see if our autoacceptance policy allows this node to be issued without manual intervention |
|
| 201 |
- if policy.Autoaccept {
|
|
| 202 |
- nodeMembership = api.NodeMembershipAccepted |
|
| 203 |
- } |
|
| 189 |
+ role := api.NodeRole(-1) |
|
| 190 |
+ |
|
| 191 |
+ s.mu.Lock() |
|
| 192 |
+ if subtle.ConstantTimeCompare([]byte(s.joinTokens.Manager), []byte(request.Token)) == 1 {
|
|
| 193 |
+ role = api.NodeRoleManager |
|
| 194 |
+ } else if subtle.ConstantTimeCompare([]byte(s.joinTokens.Worker), []byte(request.Token)) == 1 {
|
|
| 195 |
+ role = api.NodeRoleWorker |
|
| 196 |
+ } |
|
| 197 |
+ s.mu.Unlock() |
|
| 198 |
+ |
|
| 199 |
+ if role < 0 {
|
|
| 200 |
+ return nil, grpc.Errorf(codes.InvalidArgument, "A valid join token is necessary to join this cluster") |
|
| 204 | 201 |
} |
| 205 | 202 |
|
| 206 | 203 |
// Max number of collisions of ID or CN to tolerate before giving up |
| ... | ... |
@@ -216,14 +192,14 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
| 216 | 216 |
Certificate: api.Certificate{
|
| 217 | 217 |
CSR: request.CSR, |
| 218 | 218 |
CN: nodeID, |
| 219 |
- Role: request.Role, |
|
| 219 |
+ Role: role, |
|
| 220 | 220 |
Status: api.IssuanceStatus{
|
| 221 | 221 |
State: api.IssuanceStatePending, |
| 222 | 222 |
}, |
| 223 | 223 |
}, |
| 224 | 224 |
Spec: api.NodeSpec{
|
| 225 |
- Role: request.Role, |
|
| 226 |
- Membership: nodeMembership, |
|
| 225 |
+ Role: role, |
|
| 226 |
+ Membership: api.NodeMembershipAccepted, |
|
| 227 | 227 |
}, |
| 228 | 228 |
} |
| 229 | 229 |
|
| ... | ... |
@@ -232,7 +208,7 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
| 232 | 232 |
if err == nil {
|
| 233 | 233 |
log.G(ctx).WithFields(logrus.Fields{
|
| 234 | 234 |
"node.id": nodeID, |
| 235 |
- "node.role": request.Role, |
|
| 235 |
+ "node.role": role, |
|
| 236 | 236 |
"method": "IssueNodeCertificate", |
| 237 | 237 |
}).Debugf("new certificate entry added")
|
| 238 | 238 |
break |
| ... | ... |
@@ -245,55 +221,17 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
| 245 | 245 |
} |
| 246 | 246 |
log.G(ctx).WithFields(logrus.Fields{
|
| 247 | 247 |
"node.id": nodeID, |
| 248 |
- "node.role": request.Role, |
|
| 248 |
+ "node.role": role, |
|
| 249 | 249 |
"method": "IssueNodeCertificate", |
| 250 | 250 |
}).Errorf("randomly generated node ID collided with an existing one - retrying")
|
| 251 | 251 |
} |
| 252 | 252 |
|
| 253 | 253 |
return &api.IssueNodeCertificateResponse{
|
| 254 | 254 |
NodeID: nodeID, |
| 255 |
- NodeMembership: nodeMembership, |
|
| 255 |
+ NodeMembership: api.NodeMembershipAccepted, |
|
| 256 | 256 |
}, nil |
| 257 | 257 |
} |
| 258 | 258 |
|
| 259 |
-// checkSecretValidity verifies if a secret string matches the secret hash stored in the |
|
| 260 |
-// Acceptance Policy. It currently only supports bcrypted hashes and plaintext. |
|
| 261 |
-func checkSecretValidity(policy *api.AcceptancePolicy_RoleAdmissionPolicy, secret string) error {
|
|
| 262 |
- if policy == nil || secret == "" {
|
|
| 263 |
- return fmt.Errorf("invalid policy or secret")
|
|
| 264 |
- } |
|
| 265 |
- |
|
| 266 |
- switch strings.ToLower(policy.Secret.Alg) {
|
|
| 267 |
- case "bcrypt": |
|
| 268 |
- return bcrypt.CompareHashAndPassword(policy.Secret.Data, []byte(secret)) |
|
| 269 |
- case "plaintext": |
|
| 270 |
- if subtle.ConstantTimeCompare(policy.Secret.Data, []byte(secret)) == 1 {
|
|
| 271 |
- return nil |
|
| 272 |
- } |
|
| 273 |
- return errors.New("incorrect secret")
|
|
| 274 |
- } |
|
| 275 |
- |
|
| 276 |
- return fmt.Errorf("hash algorithm not supported: %s", policy.Secret.Alg)
|
|
| 277 |
-} |
|
| 278 |
- |
|
| 279 |
-// getRolePolicy is a helper method that returns all the admission policies that should be |
|
| 280 |
-// enforced for a particular role |
|
| 281 |
-func (s *Server) getRolePolicy(role api.NodeRole) *api.AcceptancePolicy_RoleAdmissionPolicy {
|
|
| 282 |
- s.mu.Lock() |
|
| 283 |
- defer s.mu.Unlock() |
|
| 284 |
- |
|
| 285 |
- if s.acceptancePolicy != nil && len(s.acceptancePolicy.Policies) > 0 {
|
|
| 286 |
- // Let's go through all the configured policies and try to find one for this role |
|
| 287 |
- for _, p := range s.acceptancePolicy.Policies {
|
|
| 288 |
- if role == p.Role {
|
|
| 289 |
- return p |
|
| 290 |
- } |
|
| 291 |
- } |
|
| 292 |
- } |
|
| 293 |
- |
|
| 294 |
- return nil |
|
| 295 |
-} |
|
| 296 |
- |
|
| 297 | 259 |
// issueRenewCertificate receives a nodeID and a CSR and modifies the node's certificate entry with the new CSR |
| 298 | 260 |
// and changes the state to RENEW, so it can be picked up and signed by the signing reconciliation loop |
| 299 | 261 |
func (s *Server) issueRenewCertificate(ctx context.Context, nodeID string, csr []byte) (*api.IssueNodeCertificateResponse, error) {
|
| ... | ... |
@@ -365,11 +303,11 @@ func (s *Server) Run(ctx context.Context) error {
|
| 365 | 365 |
return fmt.Errorf("CA signer is already running")
|
| 366 | 366 |
} |
| 367 | 367 |
s.wg.Add(1) |
| 368 |
+ s.mu.Unlock() |
|
| 369 |
+ |
|
| 368 | 370 |
defer s.wg.Done() |
| 369 | 371 |
logger := log.G(ctx).WithField("module", "ca")
|
| 370 | 372 |
ctx = log.WithLogger(ctx, logger) |
| 371 |
- s.ctx, s.cancel = context.WithCancel(ctx) |
|
| 372 |
- s.mu.Unlock() |
|
| 373 | 373 |
|
| 374 | 374 |
// Run() should never be called twice, but just in case, we're |
| 375 | 375 |
// attempting to close the started channel in a safe way |
| ... | ... |
@@ -402,6 +340,13 @@ func (s *Server) Run(ctx context.Context) error {
|
| 402 | 402 |
state.EventUpdateNode{},
|
| 403 | 403 |
state.EventUpdateCluster{},
|
| 404 | 404 |
) |
| 405 |
+ |
|
| 406 |
+ // Do this after updateCluster has been called, so isRunning never |
|
| 407 |
+ // returns true without joinTokens being set correctly. |
|
| 408 |
+ s.mu.Lock() |
|
| 409 |
+ s.ctx, s.cancel = context.WithCancel(ctx) |
|
| 410 |
+ s.mu.Unlock() |
|
| 411 |
+ |
|
| 405 | 412 |
if err != nil {
|
| 406 | 413 |
log.G(ctx).WithFields(logrus.Fields{
|
| 407 | 414 |
"method": "(*Server).Run", |
| ... | ... |
@@ -497,7 +442,7 @@ func (s *Server) isRunning() bool {
|
| 497 | 497 |
// always aware of changes in clusterExpiry and the Root CA key material |
| 498 | 498 |
func (s *Server) updateCluster(ctx context.Context, cluster *api.Cluster) {
|
| 499 | 499 |
s.mu.Lock() |
| 500 |
- s.acceptancePolicy = cluster.Spec.AcceptancePolicy.Copy() |
|
| 500 |
+ s.joinTokens = cluster.RootCA.JoinTokens.Copy() |
|
| 501 | 501 |
s.mu.Unlock() |
| 502 | 502 |
var err error |
| 503 | 503 |
|
| ... | ... |
@@ -97,6 +97,13 @@ func (s *Server) UpdateCluster(ctx context.Context, request *api.UpdateClusterRe |
| 97 | 97 |
} |
| 98 | 98 |
cluster.Meta.Version = *request.ClusterVersion |
| 99 | 99 |
cluster.Spec = *request.Spec.Copy() |
| 100 |
+ |
|
| 101 |
+ if request.Rotation.RotateWorkerToken {
|
|
| 102 |
+ cluster.RootCA.JoinTokens.Worker = ca.GenerateJoinToken(s.rootCA) |
|
| 103 |
+ } |
|
| 104 |
+ if request.Rotation.RotateManagerToken {
|
|
| 105 |
+ cluster.RootCA.JoinTokens.Manager = ca.GenerateJoinToken(s.rootCA) |
|
| 106 |
+ } |
|
| 100 | 107 |
return store.UpdateCluster(tx, cluster) |
| 101 | 108 |
}) |
| 102 | 109 |
if err != nil {
|
| ... | ... |
@@ -193,6 +200,7 @@ func redactClusters(clusters []*api.Cluster) []*api.Cluster {
|
| 193 | 193 |
RootCA: api.RootCA{
|
| 194 | 194 |
CACert: cluster.RootCA.CACert, |
| 195 | 195 |
CACertHash: cluster.RootCA.CACertHash, |
| 196 |
+ JoinTokens: cluster.RootCA.JoinTokens, |
|
| 196 | 197 |
}, |
| 197 | 198 |
} |
| 198 | 199 |
|
| ... | ... |
@@ -3,6 +3,7 @@ package controlapi |
| 3 | 3 |
import ( |
| 4 | 4 |
"errors" |
| 5 | 5 |
|
| 6 |
+ "github.com/docker/swarmkit/ca" |
|
| 6 | 7 |
"github.com/docker/swarmkit/manager/state/raft" |
| 7 | 8 |
"github.com/docker/swarmkit/manager/state/store" |
| 8 | 9 |
) |
| ... | ... |
@@ -14,14 +15,16 @@ var ( |
| 14 | 14 |
|
| 15 | 15 |
// Server is the Cluster API gRPC server. |
| 16 | 16 |
type Server struct {
|
| 17 |
- store *store.MemoryStore |
|
| 18 |
- raft *raft.Node |
|
| 17 |
+ store *store.MemoryStore |
|
| 18 |
+ raft *raft.Node |
|
| 19 |
+ rootCA *ca.RootCA |
|
| 19 | 20 |
} |
| 20 | 21 |
|
| 21 | 22 |
// NewServer creates a Cluster API server. |
| 22 |
-func NewServer(store *store.MemoryStore, raft *raft.Node) *Server {
|
|
| 23 |
+func NewServer(store *store.MemoryStore, raft *raft.Node, rootCA *ca.RootCA) *Server {
|
|
| 23 | 24 |
return &Server{
|
| 24 |
- store: store, |
|
| 25 |
- raft: raft, |
|
| 25 |
+ store: store, |
|
| 26 |
+ raft: raft, |
|
| 27 |
+ rootCA: rootCA, |
|
| 26 | 28 |
} |
| 27 | 29 |
} |
| ... | ... |
@@ -7,6 +7,7 @@ package keymanager |
| 7 | 7 |
// plane information. It can also be used to encrypt overlay data traffic. |
| 8 | 8 |
import ( |
| 9 | 9 |
"crypto/rand" |
| 10 |
+ "encoding/binary" |
|
| 10 | 11 |
"fmt" |
| 11 | 12 |
"sync" |
| 12 | 13 |
"time" |
| ... | ... |
@@ -87,7 +88,7 @@ func New(store *store.MemoryStore, config *Config) *KeyManager {
|
| 87 | 87 |
return &KeyManager{
|
| 88 | 88 |
config: config, |
| 89 | 89 |
store: store, |
| 90 |
- keyRing: &keyRing{},
|
|
| 90 |
+ keyRing: &keyRing{lClock: genSkew()},
|
|
| 91 | 91 |
} |
| 92 | 92 |
} |
| 93 | 93 |
|
| ... | ... |
@@ -230,3 +231,12 @@ func (k *KeyManager) Stop() error {
|
| 230 | 230 |
k.cancel() |
| 231 | 231 |
return nil |
| 232 | 232 |
} |
| 233 |
+ |
|
| 234 |
+// genSkew generates a random uint64 number between 0 and 65535 |
|
| 235 |
+func genSkew() uint64 {
|
|
| 236 |
+ b := make([]byte, 2) |
|
| 237 |
+ if _, err := rand.Read(b); err != nil {
|
|
| 238 |
+ panic(err) |
|
| 239 |
+ } |
|
| 240 |
+ return uint64(binary.BigEndian.Uint16(b)) |
|
| 241 |
+} |
| ... | ... |
@@ -301,7 +301,6 @@ func (m *Manager) Run(parent context.Context) error {
|
| 301 | 301 |
Annotations: api.Annotations{
|
| 302 | 302 |
Name: store.DefaultClusterName, |
| 303 | 303 |
}, |
| 304 |
- AcceptancePolicy: ca.DefaultAcceptancePolicy(), |
|
| 305 | 304 |
Orchestration: api.OrchestrationConfig{
|
| 306 | 305 |
TaskHistoryRetentionLimit: defaultTaskHistoryRetentionLimit, |
| 307 | 306 |
}, |
| ... | ... |
@@ -315,6 +314,10 @@ func (m *Manager) Run(parent context.Context) error {
|
| 315 | 315 |
CAKey: rootCA.Key, |
| 316 | 316 |
CACert: rootCA.Cert, |
| 317 | 317 |
CACertHash: rootCA.Digest.String(), |
| 318 |
+ JoinTokens: api.JoinTokens{
|
|
| 319 |
+ Worker: ca.GenerateJoinToken(rootCA), |
|
| 320 |
+ Manager: ca.GenerateJoinToken(rootCA), |
|
| 321 |
+ }, |
|
| 318 | 322 |
}, |
| 319 | 323 |
}) |
| 320 | 324 |
// Add Node entry for ourself, if one |
| ... | ... |
@@ -449,7 +452,7 @@ func (m *Manager) Run(parent context.Context) error {
|
| 449 | 449 |
return err |
| 450 | 450 |
} |
| 451 | 451 |
|
| 452 |
- baseControlAPI := controlapi.NewServer(m.RaftNode.MemoryStore(), m.RaftNode) |
|
| 452 |
+ baseControlAPI := controlapi.NewServer(m.RaftNode.MemoryStore(), m.RaftNode, m.config.SecurityConfig.RootCA()) |
|
| 453 | 453 |
healthServer := health.NewHealthServer() |
| 454 | 454 |
|
| 455 | 455 |
authenticatedControlAPI := api.NewAuthenticatedWrapperControlServer(baseControlAPI, authorize) |
| ... | ... |
@@ -111,7 +111,7 @@ func newTask(cluster *api.Cluster, service *api.Service, instance uint64) *api.T |
| 111 | 111 |
logDriver = service.Spec.Task.LogDriver |
| 112 | 112 |
} else if cluster != nil {
|
| 113 | 113 |
// pick up the cluster default, if available. |
| 114 |
- logDriver = cluster.Spec.DefaultLogDriver // nil is okay here. |
|
| 114 |
+ logDriver = cluster.Spec.TaskDefaults.LogDriver // nil is okay here. |
|
| 115 | 115 |
} |
| 116 | 116 |
|
| 117 | 117 |
// NOTE(stevvooe): For now, we don't override the container naming and |
| 118 | 118 |
deleted file mode 100644 |
| ... | ... |
@@ -1,35 +0,0 @@ |
| 1 |
-// Copyright 2011 The Go Authors. All rights reserved. |
|
| 2 |
-// Use of this source code is governed by a BSD-style |
|
| 3 |
-// license that can be found in the LICENSE file. |
|
| 4 |
- |
|
| 5 |
-package bcrypt |
|
| 6 |
- |
|
| 7 |
-import "encoding/base64" |
|
| 8 |
- |
|
| 9 |
-const alphabet = "./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" |
|
| 10 |
- |
|
| 11 |
-var bcEncoding = base64.NewEncoding(alphabet) |
|
| 12 |
- |
|
| 13 |
-func base64Encode(src []byte) []byte {
|
|
| 14 |
- n := bcEncoding.EncodedLen(len(src)) |
|
| 15 |
- dst := make([]byte, n) |
|
| 16 |
- bcEncoding.Encode(dst, src) |
|
| 17 |
- for dst[n-1] == '=' {
|
|
| 18 |
- n-- |
|
| 19 |
- } |
|
| 20 |
- return dst[:n] |
|
| 21 |
-} |
|
| 22 |
- |
|
| 23 |
-func base64Decode(src []byte) ([]byte, error) {
|
|
| 24 |
- numOfEquals := 4 - (len(src) % 4) |
|
| 25 |
- for i := 0; i < numOfEquals; i++ {
|
|
| 26 |
- src = append(src, '=') |
|
| 27 |
- } |
|
| 28 |
- |
|
| 29 |
- dst := make([]byte, bcEncoding.DecodedLen(len(src))) |
|
| 30 |
- n, err := bcEncoding.Decode(dst, src) |
|
| 31 |
- if err != nil {
|
|
| 32 |
- return nil, err |
|
| 33 |
- } |
|
| 34 |
- return dst[:n], nil |
|
| 35 |
-} |
| 36 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,294 +0,0 @@ |
| 1 |
-// Copyright 2011 The Go Authors. All rights reserved. |
|
| 2 |
-// Use of this source code is governed by a BSD-style |
|
| 3 |
-// license that can be found in the LICENSE file. |
|
| 4 |
- |
|
| 5 |
-// Package bcrypt implements Provos and Mazières's bcrypt adaptive hashing |
|
| 6 |
-// algorithm. See http://www.usenix.org/event/usenix99/provos/provos.pdf |
|
| 7 |
-package bcrypt // import "golang.org/x/crypto/bcrypt" |
|
| 8 |
- |
|
| 9 |
-// The code is a port of Provos and Mazières's C implementation. |
|
| 10 |
-import ( |
|
| 11 |
- "crypto/rand" |
|
| 12 |
- "crypto/subtle" |
|
| 13 |
- "errors" |
|
| 14 |
- "fmt" |
|
| 15 |
- "golang.org/x/crypto/blowfish" |
|
| 16 |
- "io" |
|
| 17 |
- "strconv" |
|
| 18 |
-) |
|
| 19 |
- |
|
| 20 |
-const ( |
|
| 21 |
- MinCost int = 4 // the minimum allowable cost as passed in to GenerateFromPassword |
|
| 22 |
- MaxCost int = 31 // the maximum allowable cost as passed in to GenerateFromPassword |
|
| 23 |
- DefaultCost int = 10 // the cost that will actually be set if a cost below MinCost is passed into GenerateFromPassword |
|
| 24 |
-) |
|
| 25 |
- |
|
| 26 |
-// The error returned from CompareHashAndPassword when a password and hash do |
|
| 27 |
-// not match. |
|
| 28 |
-var ErrMismatchedHashAndPassword = errors.New("crypto/bcrypt: hashedPassword is not the hash of the given password")
|
|
| 29 |
- |
|
| 30 |
-// The error returned from CompareHashAndPassword when a hash is too short to |
|
| 31 |
-// be a bcrypt hash. |
|
| 32 |
-var ErrHashTooShort = errors.New("crypto/bcrypt: hashedSecret too short to be a bcrypted password")
|
|
| 33 |
- |
|
| 34 |
-// The error returned from CompareHashAndPassword when a hash was created with |
|
| 35 |
-// a bcrypt algorithm newer than this implementation. |
|
| 36 |
-type HashVersionTooNewError byte |
|
| 37 |
- |
|
| 38 |
-func (hv HashVersionTooNewError) Error() string {
|
|
| 39 |
- return fmt.Sprintf("crypto/bcrypt: bcrypt algorithm version '%c' requested is newer than current version '%c'", byte(hv), majorVersion)
|
|
| 40 |
-} |
|
| 41 |
- |
|
| 42 |
-// The error returned from CompareHashAndPassword when a hash starts with something other than '$' |
|
| 43 |
-type InvalidHashPrefixError byte |
|
| 44 |
- |
|
| 45 |
-func (ih InvalidHashPrefixError) Error() string {
|
|
| 46 |
- return fmt.Sprintf("crypto/bcrypt: bcrypt hashes must start with '$', but hashedSecret started with '%c'", byte(ih))
|
|
| 47 |
-} |
|
| 48 |
- |
|
| 49 |
-type InvalidCostError int |
|
| 50 |
- |
|
| 51 |
-func (ic InvalidCostError) Error() string {
|
|
| 52 |
- return fmt.Sprintf("crypto/bcrypt: cost %d is outside allowed range (%d,%d)", int(ic), int(MinCost), int(MaxCost))
|
|
| 53 |
-} |
|
| 54 |
- |
|
| 55 |
-const ( |
|
| 56 |
- majorVersion = '2' |
|
| 57 |
- minorVersion = 'a' |
|
| 58 |
- maxSaltSize = 16 |
|
| 59 |
- maxCryptedHashSize = 23 |
|
| 60 |
- encodedSaltSize = 22 |
|
| 61 |
- encodedHashSize = 31 |
|
| 62 |
- minHashSize = 59 |
|
| 63 |
-) |
|
| 64 |
- |
|
| 65 |
-// magicCipherData is an IV for the 64 Blowfish encryption calls in |
|
| 66 |
-// bcrypt(). It's the string "OrpheanBeholderScryDoubt" in big-endian bytes. |
|
| 67 |
-var magicCipherData = []byte{
|
|
| 68 |
- 0x4f, 0x72, 0x70, 0x68, |
|
| 69 |
- 0x65, 0x61, 0x6e, 0x42, |
|
| 70 |
- 0x65, 0x68, 0x6f, 0x6c, |
|
| 71 |
- 0x64, 0x65, 0x72, 0x53, |
|
| 72 |
- 0x63, 0x72, 0x79, 0x44, |
|
| 73 |
- 0x6f, 0x75, 0x62, 0x74, |
|
| 74 |
-} |
|
| 75 |
- |
|
| 76 |
-type hashed struct {
|
|
| 77 |
- hash []byte |
|
| 78 |
- salt []byte |
|
| 79 |
- cost int // allowed range is MinCost to MaxCost |
|
| 80 |
- major byte |
|
| 81 |
- minor byte |
|
| 82 |
-} |
|
| 83 |
- |
|
| 84 |
-// GenerateFromPassword returns the bcrypt hash of the password at the given |
|
| 85 |
-// cost. If the cost given is less than MinCost, the cost will be set to |
|
| 86 |
-// DefaultCost, instead. Use CompareHashAndPassword, as defined in this package, |
|
| 87 |
-// to compare the returned hashed password with its cleartext version. |
|
| 88 |
-func GenerateFromPassword(password []byte, cost int) ([]byte, error) {
|
|
| 89 |
- p, err := newFromPassword(password, cost) |
|
| 90 |
- if err != nil {
|
|
| 91 |
- return nil, err |
|
| 92 |
- } |
|
| 93 |
- return p.Hash(), nil |
|
| 94 |
-} |
|
| 95 |
- |
|
| 96 |
-// CompareHashAndPassword compares a bcrypt hashed password with its possible |
|
| 97 |
-// plaintext equivalent. Returns nil on success, or an error on failure. |
|
| 98 |
-func CompareHashAndPassword(hashedPassword, password []byte) error {
|
|
| 99 |
- p, err := newFromHash(hashedPassword) |
|
| 100 |
- if err != nil {
|
|
| 101 |
- return err |
|
| 102 |
- } |
|
| 103 |
- |
|
| 104 |
- otherHash, err := bcrypt(password, p.cost, p.salt) |
|
| 105 |
- if err != nil {
|
|
| 106 |
- return err |
|
| 107 |
- } |
|
| 108 |
- |
|
| 109 |
- otherP := &hashed{otherHash, p.salt, p.cost, p.major, p.minor}
|
|
| 110 |
- if subtle.ConstantTimeCompare(p.Hash(), otherP.Hash()) == 1 {
|
|
| 111 |
- return nil |
|
| 112 |
- } |
|
| 113 |
- |
|
| 114 |
- return ErrMismatchedHashAndPassword |
|
| 115 |
-} |
|
| 116 |
- |
|
| 117 |
-// Cost returns the hashing cost used to create the given hashed |
|
| 118 |
-// password. When, in the future, the hashing cost of a password system needs |
|
| 119 |
-// to be increased in order to adjust for greater computational power, this |
|
| 120 |
-// function allows one to establish which passwords need to be updated. |
|
| 121 |
-func Cost(hashedPassword []byte) (int, error) {
|
|
| 122 |
- p, err := newFromHash(hashedPassword) |
|
| 123 |
- if err != nil {
|
|
| 124 |
- return 0, err |
|
| 125 |
- } |
|
| 126 |
- return p.cost, nil |
|
| 127 |
-} |
|
| 128 |
- |
|
| 129 |
-func newFromPassword(password []byte, cost int) (*hashed, error) {
|
|
| 130 |
- if cost < MinCost {
|
|
| 131 |
- cost = DefaultCost |
|
| 132 |
- } |
|
| 133 |
- p := new(hashed) |
|
| 134 |
- p.major = majorVersion |
|
| 135 |
- p.minor = minorVersion |
|
| 136 |
- |
|
| 137 |
- err := checkCost(cost) |
|
| 138 |
- if err != nil {
|
|
| 139 |
- return nil, err |
|
| 140 |
- } |
|
| 141 |
- p.cost = cost |
|
| 142 |
- |
|
| 143 |
- unencodedSalt := make([]byte, maxSaltSize) |
|
| 144 |
- _, err = io.ReadFull(rand.Reader, unencodedSalt) |
|
| 145 |
- if err != nil {
|
|
| 146 |
- return nil, err |
|
| 147 |
- } |
|
| 148 |
- |
|
| 149 |
- p.salt = base64Encode(unencodedSalt) |
|
| 150 |
- hash, err := bcrypt(password, p.cost, p.salt) |
|
| 151 |
- if err != nil {
|
|
| 152 |
- return nil, err |
|
| 153 |
- } |
|
| 154 |
- p.hash = hash |
|
| 155 |
- return p, err |
|
| 156 |
-} |
|
| 157 |
- |
|
| 158 |
-func newFromHash(hashedSecret []byte) (*hashed, error) {
|
|
| 159 |
- if len(hashedSecret) < minHashSize {
|
|
| 160 |
- return nil, ErrHashTooShort |
|
| 161 |
- } |
|
| 162 |
- p := new(hashed) |
|
| 163 |
- n, err := p.decodeVersion(hashedSecret) |
|
| 164 |
- if err != nil {
|
|
| 165 |
- return nil, err |
|
| 166 |
- } |
|
| 167 |
- hashedSecret = hashedSecret[n:] |
|
| 168 |
- n, err = p.decodeCost(hashedSecret) |
|
| 169 |
- if err != nil {
|
|
| 170 |
- return nil, err |
|
| 171 |
- } |
|
| 172 |
- hashedSecret = hashedSecret[n:] |
|
| 173 |
- |
|
| 174 |
- // The "+2" is here because we'll have to append at most 2 '=' to the salt |
|
| 175 |
- // when base64 decoding it in expensiveBlowfishSetup(). |
|
| 176 |
- p.salt = make([]byte, encodedSaltSize, encodedSaltSize+2) |
|
| 177 |
- copy(p.salt, hashedSecret[:encodedSaltSize]) |
|
| 178 |
- |
|
| 179 |
- hashedSecret = hashedSecret[encodedSaltSize:] |
|
| 180 |
- p.hash = make([]byte, len(hashedSecret)) |
|
| 181 |
- copy(p.hash, hashedSecret) |
|
| 182 |
- |
|
| 183 |
- return p, nil |
|
| 184 |
-} |
|
| 185 |
- |
|
| 186 |
-func bcrypt(password []byte, cost int, salt []byte) ([]byte, error) {
|
|
| 187 |
- cipherData := make([]byte, len(magicCipherData)) |
|
| 188 |
- copy(cipherData, magicCipherData) |
|
| 189 |
- |
|
| 190 |
- c, err := expensiveBlowfishSetup(password, uint32(cost), salt) |
|
| 191 |
- if err != nil {
|
|
| 192 |
- return nil, err |
|
| 193 |
- } |
|
| 194 |
- |
|
| 195 |
- for i := 0; i < 24; i += 8 {
|
|
| 196 |
- for j := 0; j < 64; j++ {
|
|
| 197 |
- c.Encrypt(cipherData[i:i+8], cipherData[i:i+8]) |
|
| 198 |
- } |
|
| 199 |
- } |
|
| 200 |
- |
|
| 201 |
- // Bug compatibility with C bcrypt implementations. We only encode 23 of |
|
| 202 |
- // the 24 bytes encrypted. |
|
| 203 |
- hsh := base64Encode(cipherData[:maxCryptedHashSize]) |
|
| 204 |
- return hsh, nil |
|
| 205 |
-} |
|
| 206 |
- |
|
| 207 |
-func expensiveBlowfishSetup(key []byte, cost uint32, salt []byte) (*blowfish.Cipher, error) {
|
|
| 208 |
- |
|
| 209 |
- csalt, err := base64Decode(salt) |
|
| 210 |
- if err != nil {
|
|
| 211 |
- return nil, err |
|
| 212 |
- } |
|
| 213 |
- |
|
| 214 |
- // Bug compatibility with C bcrypt implementations. They use the trailing |
|
| 215 |
- // NULL in the key string during expansion. |
|
| 216 |
- ckey := append(key, 0) |
|
| 217 |
- |
|
| 218 |
- c, err := blowfish.NewSaltedCipher(ckey, csalt) |
|
| 219 |
- if err != nil {
|
|
| 220 |
- return nil, err |
|
| 221 |
- } |
|
| 222 |
- |
|
| 223 |
- var i, rounds uint64 |
|
| 224 |
- rounds = 1 << cost |
|
| 225 |
- for i = 0; i < rounds; i++ {
|
|
| 226 |
- blowfish.ExpandKey(ckey, c) |
|
| 227 |
- blowfish.ExpandKey(csalt, c) |
|
| 228 |
- } |
|
| 229 |
- |
|
| 230 |
- return c, nil |
|
| 231 |
-} |
|
| 232 |
- |
|
| 233 |
-func (p *hashed) Hash() []byte {
|
|
| 234 |
- arr := make([]byte, 60) |
|
| 235 |
- arr[0] = '$' |
|
| 236 |
- arr[1] = p.major |
|
| 237 |
- n := 2 |
|
| 238 |
- if p.minor != 0 {
|
|
| 239 |
- arr[2] = p.minor |
|
| 240 |
- n = 3 |
|
| 241 |
- } |
|
| 242 |
- arr[n] = '$' |
|
| 243 |
- n += 1 |
|
| 244 |
- copy(arr[n:], []byte(fmt.Sprintf("%02d", p.cost)))
|
|
| 245 |
- n += 2 |
|
| 246 |
- arr[n] = '$' |
|
| 247 |
- n += 1 |
|
| 248 |
- copy(arr[n:], p.salt) |
|
| 249 |
- n += encodedSaltSize |
|
| 250 |
- copy(arr[n:], p.hash) |
|
| 251 |
- n += encodedHashSize |
|
| 252 |
- return arr[:n] |
|
| 253 |
-} |
|
| 254 |
- |
|
| 255 |
-func (p *hashed) decodeVersion(sbytes []byte) (int, error) {
|
|
| 256 |
- if sbytes[0] != '$' {
|
|
| 257 |
- return -1, InvalidHashPrefixError(sbytes[0]) |
|
| 258 |
- } |
|
| 259 |
- if sbytes[1] > majorVersion {
|
|
| 260 |
- return -1, HashVersionTooNewError(sbytes[1]) |
|
| 261 |
- } |
|
| 262 |
- p.major = sbytes[1] |
|
| 263 |
- n := 3 |
|
| 264 |
- if sbytes[2] != '$' {
|
|
| 265 |
- p.minor = sbytes[2] |
|
| 266 |
- n++ |
|
| 267 |
- } |
|
| 268 |
- return n, nil |
|
| 269 |
-} |
|
| 270 |
- |
|
| 271 |
-// sbytes should begin where decodeVersion left off. |
|
| 272 |
-func (p *hashed) decodeCost(sbytes []byte) (int, error) {
|
|
| 273 |
- cost, err := strconv.Atoi(string(sbytes[0:2])) |
|
| 274 |
- if err != nil {
|
|
| 275 |
- return -1, err |
|
| 276 |
- } |
|
| 277 |
- err = checkCost(cost) |
|
| 278 |
- if err != nil {
|
|
| 279 |
- return -1, err |
|
| 280 |
- } |
|
| 281 |
- p.cost = cost |
|
| 282 |
- return 3, nil |
|
| 283 |
-} |
|
| 284 |
- |
|
| 285 |
-func (p *hashed) String() string {
|
|
| 286 |
- return fmt.Sprintf("&{hash: %#v, salt: %#v, cost: %d, major: %c, minor: %c}", string(p.hash), p.salt, p.cost, p.major, p.minor)
|
|
| 287 |
-} |
|
| 288 |
- |
|
| 289 |
-func checkCost(cost int) error {
|
|
| 290 |
- if cost < MinCost || cost > MaxCost {
|
|
| 291 |
- return InvalidCostError(cost) |
|
| 292 |
- } |
|
| 293 |
- return nil |
|
| 294 |
-} |
| 295 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,159 +0,0 @@ |
| 1 |
-// Copyright 2010 The Go Authors. All rights reserved. |
|
| 2 |
-// Use of this source code is governed by a BSD-style |
|
| 3 |
-// license that can be found in the LICENSE file. |
|
| 4 |
- |
|
| 5 |
-package blowfish |
|
| 6 |
- |
|
| 7 |
-// getNextWord returns the next big-endian uint32 value from the byte slice |
|
| 8 |
-// at the given position in a circular manner, updating the position. |
|
| 9 |
-func getNextWord(b []byte, pos *int) uint32 {
|
|
| 10 |
- var w uint32 |
|
| 11 |
- j := *pos |
|
| 12 |
- for i := 0; i < 4; i++ {
|
|
| 13 |
- w = w<<8 | uint32(b[j]) |
|
| 14 |
- j++ |
|
| 15 |
- if j >= len(b) {
|
|
| 16 |
- j = 0 |
|
| 17 |
- } |
|
| 18 |
- } |
|
| 19 |
- *pos = j |
|
| 20 |
- return w |
|
| 21 |
-} |
|
| 22 |
- |
|
| 23 |
-// ExpandKey performs a key expansion on the given *Cipher. Specifically, it |
|
| 24 |
-// performs the Blowfish algorithm's key schedule which sets up the *Cipher's |
|
| 25 |
-// pi and substitution tables for calls to Encrypt. This is used, primarily, |
|
| 26 |
-// by the bcrypt package to reuse the Blowfish key schedule during its |
|
| 27 |
-// set up. It's unlikely that you need to use this directly. |
|
| 28 |
-func ExpandKey(key []byte, c *Cipher) {
|
|
| 29 |
- j := 0 |
|
| 30 |
- for i := 0; i < 18; i++ {
|
|
| 31 |
- // Using inlined getNextWord for performance. |
|
| 32 |
- var d uint32 |
|
| 33 |
- for k := 0; k < 4; k++ {
|
|
| 34 |
- d = d<<8 | uint32(key[j]) |
|
| 35 |
- j++ |
|
| 36 |
- if j >= len(key) {
|
|
| 37 |
- j = 0 |
|
| 38 |
- } |
|
| 39 |
- } |
|
| 40 |
- c.p[i] ^= d |
|
| 41 |
- } |
|
| 42 |
- |
|
| 43 |
- var l, r uint32 |
|
| 44 |
- for i := 0; i < 18; i += 2 {
|
|
| 45 |
- l, r = encryptBlock(l, r, c) |
|
| 46 |
- c.p[i], c.p[i+1] = l, r |
|
| 47 |
- } |
|
| 48 |
- |
|
| 49 |
- for i := 0; i < 256; i += 2 {
|
|
| 50 |
- l, r = encryptBlock(l, r, c) |
|
| 51 |
- c.s0[i], c.s0[i+1] = l, r |
|
| 52 |
- } |
|
| 53 |
- for i := 0; i < 256; i += 2 {
|
|
| 54 |
- l, r = encryptBlock(l, r, c) |
|
| 55 |
- c.s1[i], c.s1[i+1] = l, r |
|
| 56 |
- } |
|
| 57 |
- for i := 0; i < 256; i += 2 {
|
|
| 58 |
- l, r = encryptBlock(l, r, c) |
|
| 59 |
- c.s2[i], c.s2[i+1] = l, r |
|
| 60 |
- } |
|
| 61 |
- for i := 0; i < 256; i += 2 {
|
|
| 62 |
- l, r = encryptBlock(l, r, c) |
|
| 63 |
- c.s3[i], c.s3[i+1] = l, r |
|
| 64 |
- } |
|
| 65 |
-} |
|
| 66 |
- |
|
| 67 |
-// This is similar to ExpandKey, but folds the salt during the key |
|
| 68 |
-// schedule. While ExpandKey is essentially expandKeyWithSalt with an all-zero |
|
| 69 |
-// salt passed in, reusing ExpandKey turns out to be a place of inefficiency |
|
| 70 |
-// and specializing it here is useful. |
|
| 71 |
-func expandKeyWithSalt(key []byte, salt []byte, c *Cipher) {
|
|
| 72 |
- j := 0 |
|
| 73 |
- for i := 0; i < 18; i++ {
|
|
| 74 |
- c.p[i] ^= getNextWord(key, &j) |
|
| 75 |
- } |
|
| 76 |
- |
|
| 77 |
- j = 0 |
|
| 78 |
- var l, r uint32 |
|
| 79 |
- for i := 0; i < 18; i += 2 {
|
|
| 80 |
- l ^= getNextWord(salt, &j) |
|
| 81 |
- r ^= getNextWord(salt, &j) |
|
| 82 |
- l, r = encryptBlock(l, r, c) |
|
| 83 |
- c.p[i], c.p[i+1] = l, r |
|
| 84 |
- } |
|
| 85 |
- |
|
| 86 |
- for i := 0; i < 256; i += 2 {
|
|
| 87 |
- l ^= getNextWord(salt, &j) |
|
| 88 |
- r ^= getNextWord(salt, &j) |
|
| 89 |
- l, r = encryptBlock(l, r, c) |
|
| 90 |
- c.s0[i], c.s0[i+1] = l, r |
|
| 91 |
- } |
|
| 92 |
- |
|
| 93 |
- for i := 0; i < 256; i += 2 {
|
|
| 94 |
- l ^= getNextWord(salt, &j) |
|
| 95 |
- r ^= getNextWord(salt, &j) |
|
| 96 |
- l, r = encryptBlock(l, r, c) |
|
| 97 |
- c.s1[i], c.s1[i+1] = l, r |
|
| 98 |
- } |
|
| 99 |
- |
|
| 100 |
- for i := 0; i < 256; i += 2 {
|
|
| 101 |
- l ^= getNextWord(salt, &j) |
|
| 102 |
- r ^= getNextWord(salt, &j) |
|
| 103 |
- l, r = encryptBlock(l, r, c) |
|
| 104 |
- c.s2[i], c.s2[i+1] = l, r |
|
| 105 |
- } |
|
| 106 |
- |
|
| 107 |
- for i := 0; i < 256; i += 2 {
|
|
| 108 |
- l ^= getNextWord(salt, &j) |
|
| 109 |
- r ^= getNextWord(salt, &j) |
|
| 110 |
- l, r = encryptBlock(l, r, c) |
|
| 111 |
- c.s3[i], c.s3[i+1] = l, r |
|
| 112 |
- } |
|
| 113 |
-} |
|
| 114 |
- |
|
| 115 |
-func encryptBlock(l, r uint32, c *Cipher) (uint32, uint32) {
|
|
| 116 |
- xl, xr := l, r |
|
| 117 |
- xl ^= c.p[0] |
|
| 118 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[1] |
|
| 119 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[2] |
|
| 120 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[3] |
|
| 121 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[4] |
|
| 122 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[5] |
|
| 123 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[6] |
|
| 124 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[7] |
|
| 125 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[8] |
|
| 126 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[9] |
|
| 127 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[10] |
|
| 128 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[11] |
|
| 129 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[12] |
|
| 130 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[13] |
|
| 131 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[14] |
|
| 132 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[15] |
|
| 133 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[16] |
|
| 134 |
- xr ^= c.p[17] |
|
| 135 |
- return xr, xl |
|
| 136 |
-} |
|
| 137 |
- |
|
| 138 |
-func decryptBlock(l, r uint32, c *Cipher) (uint32, uint32) {
|
|
| 139 |
- xl, xr := l, r |
|
| 140 |
- xl ^= c.p[17] |
|
| 141 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[16] |
|
| 142 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[15] |
|
| 143 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[14] |
|
| 144 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[13] |
|
| 145 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[12] |
|
| 146 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[11] |
|
| 147 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[10] |
|
| 148 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[9] |
|
| 149 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[8] |
|
| 150 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[7] |
|
| 151 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[6] |
|
| 152 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[5] |
|
| 153 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[4] |
|
| 154 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[3] |
|
| 155 |
- xr ^= ((c.s0[byte(xl>>24)] + c.s1[byte(xl>>16)]) ^ c.s2[byte(xl>>8)]) + c.s3[byte(xl)] ^ c.p[2] |
|
| 156 |
- xl ^= ((c.s0[byte(xr>>24)] + c.s1[byte(xr>>16)]) ^ c.s2[byte(xr>>8)]) + c.s3[byte(xr)] ^ c.p[1] |
|
| 157 |
- xr ^= c.p[0] |
|
| 158 |
- return xr, xl |
|
| 159 |
-} |
| 160 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,91 +0,0 @@ |
| 1 |
-// Copyright 2010 The Go Authors. All rights reserved. |
|
| 2 |
-// Use of this source code is governed by a BSD-style |
|
| 3 |
-// license that can be found in the LICENSE file. |
|
| 4 |
- |
|
| 5 |
-// Package blowfish implements Bruce Schneier's Blowfish encryption algorithm. |
|
| 6 |
-package blowfish // import "golang.org/x/crypto/blowfish" |
|
| 7 |
- |
|
| 8 |
-// The code is a port of Bruce Schneier's C implementation. |
|
| 9 |
-// See http://www.schneier.com/blowfish.html. |
|
| 10 |
- |
|
| 11 |
-import "strconv" |
|
| 12 |
- |
|
| 13 |
-// The Blowfish block size in bytes. |
|
| 14 |
-const BlockSize = 8 |
|
| 15 |
- |
|
| 16 |
-// A Cipher is an instance of Blowfish encryption using a particular key. |
|
| 17 |
-type Cipher struct {
|
|
| 18 |
- p [18]uint32 |
|
| 19 |
- s0, s1, s2, s3 [256]uint32 |
|
| 20 |
-} |
|
| 21 |
- |
|
| 22 |
-type KeySizeError int |
|
| 23 |
- |
|
| 24 |
-func (k KeySizeError) Error() string {
|
|
| 25 |
- return "crypto/blowfish: invalid key size " + strconv.Itoa(int(k)) |
|
| 26 |
-} |
|
| 27 |
- |
|
| 28 |
-// NewCipher creates and returns a Cipher. |
|
| 29 |
-// The key argument should be the Blowfish key, from 1 to 56 bytes. |
|
| 30 |
-func NewCipher(key []byte) (*Cipher, error) {
|
|
| 31 |
- var result Cipher |
|
| 32 |
- if k := len(key); k < 1 || k > 56 {
|
|
| 33 |
- return nil, KeySizeError(k) |
|
| 34 |
- } |
|
| 35 |
- initCipher(&result) |
|
| 36 |
- ExpandKey(key, &result) |
|
| 37 |
- return &result, nil |
|
| 38 |
-} |
|
| 39 |
- |
|
| 40 |
-// NewSaltedCipher creates a returns a Cipher that folds a salt into its key |
|
| 41 |
-// schedule. For most purposes, NewCipher, instead of NewSaltedCipher, is |
|
| 42 |
-// sufficient and desirable. For bcrypt compatiblity, the key can be over 56 |
|
| 43 |
-// bytes. |
|
| 44 |
-func NewSaltedCipher(key, salt []byte) (*Cipher, error) {
|
|
| 45 |
- if len(salt) == 0 {
|
|
| 46 |
- return NewCipher(key) |
|
| 47 |
- } |
|
| 48 |
- var result Cipher |
|
| 49 |
- if k := len(key); k < 1 {
|
|
| 50 |
- return nil, KeySizeError(k) |
|
| 51 |
- } |
|
| 52 |
- initCipher(&result) |
|
| 53 |
- expandKeyWithSalt(key, salt, &result) |
|
| 54 |
- return &result, nil |
|
| 55 |
-} |
|
| 56 |
- |
|
| 57 |
-// BlockSize returns the Blowfish block size, 8 bytes. |
|
| 58 |
-// It is necessary to satisfy the Block interface in the |
|
| 59 |
-// package "crypto/cipher". |
|
| 60 |
-func (c *Cipher) BlockSize() int { return BlockSize }
|
|
| 61 |
- |
|
| 62 |
-// Encrypt encrypts the 8-byte buffer src using the key k |
|
| 63 |
-// and stores the result in dst. |
|
| 64 |
-// Note that for amounts of data larger than a block, |
|
| 65 |
-// it is not safe to just call Encrypt on successive blocks; |
|
| 66 |
-// instead, use an encryption mode like CBC (see crypto/cipher/cbc.go). |
|
| 67 |
-func (c *Cipher) Encrypt(dst, src []byte) {
|
|
| 68 |
- l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) |
|
| 69 |
- r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) |
|
| 70 |
- l, r = encryptBlock(l, r, c) |
|
| 71 |
- dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) |
|
| 72 |
- dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) |
|
| 73 |
-} |
|
| 74 |
- |
|
| 75 |
-// Decrypt decrypts the 8-byte buffer src using the key k |
|
| 76 |
-// and stores the result in dst. |
|
| 77 |
-func (c *Cipher) Decrypt(dst, src []byte) {
|
|
| 78 |
- l := uint32(src[0])<<24 | uint32(src[1])<<16 | uint32(src[2])<<8 | uint32(src[3]) |
|
| 79 |
- r := uint32(src[4])<<24 | uint32(src[5])<<16 | uint32(src[6])<<8 | uint32(src[7]) |
|
| 80 |
- l, r = decryptBlock(l, r, c) |
|
| 81 |
- dst[0], dst[1], dst[2], dst[3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l) |
|
| 82 |
- dst[4], dst[5], dst[6], dst[7] = byte(r>>24), byte(r>>16), byte(r>>8), byte(r) |
|
| 83 |
-} |
|
| 84 |
- |
|
| 85 |
-func initCipher(c *Cipher) {
|
|
| 86 |
- copy(c.p[0:], p[0:]) |
|
| 87 |
- copy(c.s0[0:], s0[0:]) |
|
| 88 |
- copy(c.s1[0:], s1[0:]) |
|
| 89 |
- copy(c.s2[0:], s2[0:]) |
|
| 90 |
- copy(c.s3[0:], s3[0:]) |
|
| 91 |
-} |
| 92 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,199 +0,0 @@ |
| 1 |
-// Copyright 2010 The Go Authors. All rights reserved. |
|
| 2 |
-// Use of this source code is governed by a BSD-style |
|
| 3 |
-// license that can be found in the LICENSE file. |
|
| 4 |
- |
|
| 5 |
-// The startup permutation array and substitution boxes. |
|
| 6 |
-// They are the hexadecimal digits of PI; see: |
|
| 7 |
-// http://www.schneier.com/code/constants.txt. |
|
| 8 |
- |
|
| 9 |
-package blowfish |
|
| 10 |
- |
|
| 11 |
-var s0 = [256]uint32{
|
|
| 12 |
- 0xd1310ba6, 0x98dfb5ac, 0x2ffd72db, 0xd01adfb7, 0xb8e1afed, 0x6a267e96, |
|
| 13 |
- 0xba7c9045, 0xf12c7f99, 0x24a19947, 0xb3916cf7, 0x0801f2e2, 0x858efc16, |
|
| 14 |
- 0x636920d8, 0x71574e69, 0xa458fea3, 0xf4933d7e, 0x0d95748f, 0x728eb658, |
|
| 15 |
- 0x718bcd58, 0x82154aee, 0x7b54a41d, 0xc25a59b5, 0x9c30d539, 0x2af26013, |
|
| 16 |
- 0xc5d1b023, 0x286085f0, 0xca417918, 0xb8db38ef, 0x8e79dcb0, 0x603a180e, |
|
| 17 |
- 0x6c9e0e8b, 0xb01e8a3e, 0xd71577c1, 0xbd314b27, 0x78af2fda, 0x55605c60, |
|
| 18 |
- 0xe65525f3, 0xaa55ab94, 0x57489862, 0x63e81440, 0x55ca396a, 0x2aab10b6, |
|
| 19 |
- 0xb4cc5c34, 0x1141e8ce, 0xa15486af, 0x7c72e993, 0xb3ee1411, 0x636fbc2a, |
|
| 20 |
- 0x2ba9c55d, 0x741831f6, 0xce5c3e16, 0x9b87931e, 0xafd6ba33, 0x6c24cf5c, |
|
| 21 |
- 0x7a325381, 0x28958677, 0x3b8f4898, 0x6b4bb9af, 0xc4bfe81b, 0x66282193, |
|
| 22 |
- 0x61d809cc, 0xfb21a991, 0x487cac60, 0x5dec8032, 0xef845d5d, 0xe98575b1, |
|
| 23 |
- 0xdc262302, 0xeb651b88, 0x23893e81, 0xd396acc5, 0x0f6d6ff3, 0x83f44239, |
|
| 24 |
- 0x2e0b4482, 0xa4842004, 0x69c8f04a, 0x9e1f9b5e, 0x21c66842, 0xf6e96c9a, |
|
| 25 |
- 0x670c9c61, 0xabd388f0, 0x6a51a0d2, 0xd8542f68, 0x960fa728, 0xab5133a3, |
|
| 26 |
- 0x6eef0b6c, 0x137a3be4, 0xba3bf050, 0x7efb2a98, 0xa1f1651d, 0x39af0176, |
|
| 27 |
- 0x66ca593e, 0x82430e88, 0x8cee8619, 0x456f9fb4, 0x7d84a5c3, 0x3b8b5ebe, |
|
| 28 |
- 0xe06f75d8, 0x85c12073, 0x401a449f, 0x56c16aa6, 0x4ed3aa62, 0x363f7706, |
|
| 29 |
- 0x1bfedf72, 0x429b023d, 0x37d0d724, 0xd00a1248, 0xdb0fead3, 0x49f1c09b, |
|
| 30 |
- 0x075372c9, 0x80991b7b, 0x25d479d8, 0xf6e8def7, 0xe3fe501a, 0xb6794c3b, |
|
| 31 |
- 0x976ce0bd, 0x04c006ba, 0xc1a94fb6, 0x409f60c4, 0x5e5c9ec2, 0x196a2463, |
|
| 32 |
- 0x68fb6faf, 0x3e6c53b5, 0x1339b2eb, 0x3b52ec6f, 0x6dfc511f, 0x9b30952c, |
|
| 33 |
- 0xcc814544, 0xaf5ebd09, 0xbee3d004, 0xde334afd, 0x660f2807, 0x192e4bb3, |
|
| 34 |
- 0xc0cba857, 0x45c8740f, 0xd20b5f39, 0xb9d3fbdb, 0x5579c0bd, 0x1a60320a, |
|
| 35 |
- 0xd6a100c6, 0x402c7279, 0x679f25fe, 0xfb1fa3cc, 0x8ea5e9f8, 0xdb3222f8, |
|
| 36 |
- 0x3c7516df, 0xfd616b15, 0x2f501ec8, 0xad0552ab, 0x323db5fa, 0xfd238760, |
|
| 37 |
- 0x53317b48, 0x3e00df82, 0x9e5c57bb, 0xca6f8ca0, 0x1a87562e, 0xdf1769db, |
|
| 38 |
- 0xd542a8f6, 0x287effc3, 0xac6732c6, 0x8c4f5573, 0x695b27b0, 0xbbca58c8, |
|
| 39 |
- 0xe1ffa35d, 0xb8f011a0, 0x10fa3d98, 0xfd2183b8, 0x4afcb56c, 0x2dd1d35b, |
|
| 40 |
- 0x9a53e479, 0xb6f84565, 0xd28e49bc, 0x4bfb9790, 0xe1ddf2da, 0xa4cb7e33, |
|
| 41 |
- 0x62fb1341, 0xcee4c6e8, 0xef20cada, 0x36774c01, 0xd07e9efe, 0x2bf11fb4, |
|
| 42 |
- 0x95dbda4d, 0xae909198, 0xeaad8e71, 0x6b93d5a0, 0xd08ed1d0, 0xafc725e0, |
|
| 43 |
- 0x8e3c5b2f, 0x8e7594b7, 0x8ff6e2fb, 0xf2122b64, 0x8888b812, 0x900df01c, |
|
| 44 |
- 0x4fad5ea0, 0x688fc31c, 0xd1cff191, 0xb3a8c1ad, 0x2f2f2218, 0xbe0e1777, |
|
| 45 |
- 0xea752dfe, 0x8b021fa1, 0xe5a0cc0f, 0xb56f74e8, 0x18acf3d6, 0xce89e299, |
|
| 46 |
- 0xb4a84fe0, 0xfd13e0b7, 0x7cc43b81, 0xd2ada8d9, 0x165fa266, 0x80957705, |
|
| 47 |
- 0x93cc7314, 0x211a1477, 0xe6ad2065, 0x77b5fa86, 0xc75442f5, 0xfb9d35cf, |
|
| 48 |
- 0xebcdaf0c, 0x7b3e89a0, 0xd6411bd3, 0xae1e7e49, 0x00250e2d, 0x2071b35e, |
|
| 49 |
- 0x226800bb, 0x57b8e0af, 0x2464369b, 0xf009b91e, 0x5563911d, 0x59dfa6aa, |
|
| 50 |
- 0x78c14389, 0xd95a537f, 0x207d5ba2, 0x02e5b9c5, 0x83260376, 0x6295cfa9, |
|
| 51 |
- 0x11c81968, 0x4e734a41, 0xb3472dca, 0x7b14a94a, 0x1b510052, 0x9a532915, |
|
| 52 |
- 0xd60f573f, 0xbc9bc6e4, 0x2b60a476, 0x81e67400, 0x08ba6fb5, 0x571be91f, |
|
| 53 |
- 0xf296ec6b, 0x2a0dd915, 0xb6636521, 0xe7b9f9b6, 0xff34052e, 0xc5855664, |
|
| 54 |
- 0x53b02d5d, 0xa99f8fa1, 0x08ba4799, 0x6e85076a, |
|
| 55 |
-} |
|
| 56 |
- |
|
| 57 |
-var s1 = [256]uint32{
|
|
| 58 |
- 0x4b7a70e9, 0xb5b32944, 0xdb75092e, 0xc4192623, 0xad6ea6b0, 0x49a7df7d, |
|
| 59 |
- 0x9cee60b8, 0x8fedb266, 0xecaa8c71, 0x699a17ff, 0x5664526c, 0xc2b19ee1, |
|
| 60 |
- 0x193602a5, 0x75094c29, 0xa0591340, 0xe4183a3e, 0x3f54989a, 0x5b429d65, |
|
| 61 |
- 0x6b8fe4d6, 0x99f73fd6, 0xa1d29c07, 0xefe830f5, 0x4d2d38e6, 0xf0255dc1, |
|
| 62 |
- 0x4cdd2086, 0x8470eb26, 0x6382e9c6, 0x021ecc5e, 0x09686b3f, 0x3ebaefc9, |
|
| 63 |
- 0x3c971814, 0x6b6a70a1, 0x687f3584, 0x52a0e286, 0xb79c5305, 0xaa500737, |
|
| 64 |
- 0x3e07841c, 0x7fdeae5c, 0x8e7d44ec, 0x5716f2b8, 0xb03ada37, 0xf0500c0d, |
|
| 65 |
- 0xf01c1f04, 0x0200b3ff, 0xae0cf51a, 0x3cb574b2, 0x25837a58, 0xdc0921bd, |
|
| 66 |
- 0xd19113f9, 0x7ca92ff6, 0x94324773, 0x22f54701, 0x3ae5e581, 0x37c2dadc, |
|
| 67 |
- 0xc8b57634, 0x9af3dda7, 0xa9446146, 0x0fd0030e, 0xecc8c73e, 0xa4751e41, |
|
| 68 |
- 0xe238cd99, 0x3bea0e2f, 0x3280bba1, 0x183eb331, 0x4e548b38, 0x4f6db908, |
|
| 69 |
- 0x6f420d03, 0xf60a04bf, 0x2cb81290, 0x24977c79, 0x5679b072, 0xbcaf89af, |
|
| 70 |
- 0xde9a771f, 0xd9930810, 0xb38bae12, 0xdccf3f2e, 0x5512721f, 0x2e6b7124, |
|
| 71 |
- 0x501adde6, 0x9f84cd87, 0x7a584718, 0x7408da17, 0xbc9f9abc, 0xe94b7d8c, |
|
| 72 |
- 0xec7aec3a, 0xdb851dfa, 0x63094366, 0xc464c3d2, 0xef1c1847, 0x3215d908, |
|
| 73 |
- 0xdd433b37, 0x24c2ba16, 0x12a14d43, 0x2a65c451, 0x50940002, 0x133ae4dd, |
|
| 74 |
- 0x71dff89e, 0x10314e55, 0x81ac77d6, 0x5f11199b, 0x043556f1, 0xd7a3c76b, |
|
| 75 |
- 0x3c11183b, 0x5924a509, 0xf28fe6ed, 0x97f1fbfa, 0x9ebabf2c, 0x1e153c6e, |
|
| 76 |
- 0x86e34570, 0xeae96fb1, 0x860e5e0a, 0x5a3e2ab3, 0x771fe71c, 0x4e3d06fa, |
|
| 77 |
- 0x2965dcb9, 0x99e71d0f, 0x803e89d6, 0x5266c825, 0x2e4cc978, 0x9c10b36a, |
|
| 78 |
- 0xc6150eba, 0x94e2ea78, 0xa5fc3c53, 0x1e0a2df4, 0xf2f74ea7, 0x361d2b3d, |
|
| 79 |
- 0x1939260f, 0x19c27960, 0x5223a708, 0xf71312b6, 0xebadfe6e, 0xeac31f66, |
|
| 80 |
- 0xe3bc4595, 0xa67bc883, 0xb17f37d1, 0x018cff28, 0xc332ddef, 0xbe6c5aa5, |
|
| 81 |
- 0x65582185, 0x68ab9802, 0xeecea50f, 0xdb2f953b, 0x2aef7dad, 0x5b6e2f84, |
|
| 82 |
- 0x1521b628, 0x29076170, 0xecdd4775, 0x619f1510, 0x13cca830, 0xeb61bd96, |
|
| 83 |
- 0x0334fe1e, 0xaa0363cf, 0xb5735c90, 0x4c70a239, 0xd59e9e0b, 0xcbaade14, |
|
| 84 |
- 0xeecc86bc, 0x60622ca7, 0x9cab5cab, 0xb2f3846e, 0x648b1eaf, 0x19bdf0ca, |
|
| 85 |
- 0xa02369b9, 0x655abb50, 0x40685a32, 0x3c2ab4b3, 0x319ee9d5, 0xc021b8f7, |
|
| 86 |
- 0x9b540b19, 0x875fa099, 0x95f7997e, 0x623d7da8, 0xf837889a, 0x97e32d77, |
|
| 87 |
- 0x11ed935f, 0x16681281, 0x0e358829, 0xc7e61fd6, 0x96dedfa1, 0x7858ba99, |
|
| 88 |
- 0x57f584a5, 0x1b227263, 0x9b83c3ff, 0x1ac24696, 0xcdb30aeb, 0x532e3054, |
|
| 89 |
- 0x8fd948e4, 0x6dbc3128, 0x58ebf2ef, 0x34c6ffea, 0xfe28ed61, 0xee7c3c73, |
|
| 90 |
- 0x5d4a14d9, 0xe864b7e3, 0x42105d14, 0x203e13e0, 0x45eee2b6, 0xa3aaabea, |
|
| 91 |
- 0xdb6c4f15, 0xfacb4fd0, 0xc742f442, 0xef6abbb5, 0x654f3b1d, 0x41cd2105, |
|
| 92 |
- 0xd81e799e, 0x86854dc7, 0xe44b476a, 0x3d816250, 0xcf62a1f2, 0x5b8d2646, |
|
| 93 |
- 0xfc8883a0, 0xc1c7b6a3, 0x7f1524c3, 0x69cb7492, 0x47848a0b, 0x5692b285, |
|
| 94 |
- 0x095bbf00, 0xad19489d, 0x1462b174, 0x23820e00, 0x58428d2a, 0x0c55f5ea, |
|
| 95 |
- 0x1dadf43e, 0x233f7061, 0x3372f092, 0x8d937e41, 0xd65fecf1, 0x6c223bdb, |
|
| 96 |
- 0x7cde3759, 0xcbee7460, 0x4085f2a7, 0xce77326e, 0xa6078084, 0x19f8509e, |
|
| 97 |
- 0xe8efd855, 0x61d99735, 0xa969a7aa, 0xc50c06c2, 0x5a04abfc, 0x800bcadc, |
|
| 98 |
- 0x9e447a2e, 0xc3453484, 0xfdd56705, 0x0e1e9ec9, 0xdb73dbd3, 0x105588cd, |
|
| 99 |
- 0x675fda79, 0xe3674340, 0xc5c43465, 0x713e38d8, 0x3d28f89e, 0xf16dff20, |
|
| 100 |
- 0x153e21e7, 0x8fb03d4a, 0xe6e39f2b, 0xdb83adf7, |
|
| 101 |
-} |
|
| 102 |
- |
|
| 103 |
-var s2 = [256]uint32{
|
|
| 104 |
- 0xe93d5a68, 0x948140f7, 0xf64c261c, 0x94692934, 0x411520f7, 0x7602d4f7, |
|
| 105 |
- 0xbcf46b2e, 0xd4a20068, 0xd4082471, 0x3320f46a, 0x43b7d4b7, 0x500061af, |
|
| 106 |
- 0x1e39f62e, 0x97244546, 0x14214f74, 0xbf8b8840, 0x4d95fc1d, 0x96b591af, |
|
| 107 |
- 0x70f4ddd3, 0x66a02f45, 0xbfbc09ec, 0x03bd9785, 0x7fac6dd0, 0x31cb8504, |
|
| 108 |
- 0x96eb27b3, 0x55fd3941, 0xda2547e6, 0xabca0a9a, 0x28507825, 0x530429f4, |
|
| 109 |
- 0x0a2c86da, 0xe9b66dfb, 0x68dc1462, 0xd7486900, 0x680ec0a4, 0x27a18dee, |
|
| 110 |
- 0x4f3ffea2, 0xe887ad8c, 0xb58ce006, 0x7af4d6b6, 0xaace1e7c, 0xd3375fec, |
|
| 111 |
- 0xce78a399, 0x406b2a42, 0x20fe9e35, 0xd9f385b9, 0xee39d7ab, 0x3b124e8b, |
|
| 112 |
- 0x1dc9faf7, 0x4b6d1856, 0x26a36631, 0xeae397b2, 0x3a6efa74, 0xdd5b4332, |
|
| 113 |
- 0x6841e7f7, 0xca7820fb, 0xfb0af54e, 0xd8feb397, 0x454056ac, 0xba489527, |
|
| 114 |
- 0x55533a3a, 0x20838d87, 0xfe6ba9b7, 0xd096954b, 0x55a867bc, 0xa1159a58, |
|
| 115 |
- 0xcca92963, 0x99e1db33, 0xa62a4a56, 0x3f3125f9, 0x5ef47e1c, 0x9029317c, |
|
| 116 |
- 0xfdf8e802, 0x04272f70, 0x80bb155c, 0x05282ce3, 0x95c11548, 0xe4c66d22, |
|
| 117 |
- 0x48c1133f, 0xc70f86dc, 0x07f9c9ee, 0x41041f0f, 0x404779a4, 0x5d886e17, |
|
| 118 |
- 0x325f51eb, 0xd59bc0d1, 0xf2bcc18f, 0x41113564, 0x257b7834, 0x602a9c60, |
|
| 119 |
- 0xdff8e8a3, 0x1f636c1b, 0x0e12b4c2, 0x02e1329e, 0xaf664fd1, 0xcad18115, |
|
| 120 |
- 0x6b2395e0, 0x333e92e1, 0x3b240b62, 0xeebeb922, 0x85b2a20e, 0xe6ba0d99, |
|
| 121 |
- 0xde720c8c, 0x2da2f728, 0xd0127845, 0x95b794fd, 0x647d0862, 0xe7ccf5f0, |
|
| 122 |
- 0x5449a36f, 0x877d48fa, 0xc39dfd27, 0xf33e8d1e, 0x0a476341, 0x992eff74, |
|
| 123 |
- 0x3a6f6eab, 0xf4f8fd37, 0xa812dc60, 0xa1ebddf8, 0x991be14c, 0xdb6e6b0d, |
|
| 124 |
- 0xc67b5510, 0x6d672c37, 0x2765d43b, 0xdcd0e804, 0xf1290dc7, 0xcc00ffa3, |
|
| 125 |
- 0xb5390f92, 0x690fed0b, 0x667b9ffb, 0xcedb7d9c, 0xa091cf0b, 0xd9155ea3, |
|
| 126 |
- 0xbb132f88, 0x515bad24, 0x7b9479bf, 0x763bd6eb, 0x37392eb3, 0xcc115979, |
|
| 127 |
- 0x8026e297, 0xf42e312d, 0x6842ada7, 0xc66a2b3b, 0x12754ccc, 0x782ef11c, |
|
| 128 |
- 0x6a124237, 0xb79251e7, 0x06a1bbe6, 0x4bfb6350, 0x1a6b1018, 0x11caedfa, |
|
| 129 |
- 0x3d25bdd8, 0xe2e1c3c9, 0x44421659, 0x0a121386, 0xd90cec6e, 0xd5abea2a, |
|
| 130 |
- 0x64af674e, 0xda86a85f, 0xbebfe988, 0x64e4c3fe, 0x9dbc8057, 0xf0f7c086, |
|
| 131 |
- 0x60787bf8, 0x6003604d, 0xd1fd8346, 0xf6381fb0, 0x7745ae04, 0xd736fccc, |
|
| 132 |
- 0x83426b33, 0xf01eab71, 0xb0804187, 0x3c005e5f, 0x77a057be, 0xbde8ae24, |
|
| 133 |
- 0x55464299, 0xbf582e61, 0x4e58f48f, 0xf2ddfda2, 0xf474ef38, 0x8789bdc2, |
|
| 134 |
- 0x5366f9c3, 0xc8b38e74, 0xb475f255, 0x46fcd9b9, 0x7aeb2661, 0x8b1ddf84, |
|
| 135 |
- 0x846a0e79, 0x915f95e2, 0x466e598e, 0x20b45770, 0x8cd55591, 0xc902de4c, |
|
| 136 |
- 0xb90bace1, 0xbb8205d0, 0x11a86248, 0x7574a99e, 0xb77f19b6, 0xe0a9dc09, |
|
| 137 |
- 0x662d09a1, 0xc4324633, 0xe85a1f02, 0x09f0be8c, 0x4a99a025, 0x1d6efe10, |
|
| 138 |
- 0x1ab93d1d, 0x0ba5a4df, 0xa186f20f, 0x2868f169, 0xdcb7da83, 0x573906fe, |
|
| 139 |
- 0xa1e2ce9b, 0x4fcd7f52, 0x50115e01, 0xa70683fa, 0xa002b5c4, 0x0de6d027, |
|
| 140 |
- 0x9af88c27, 0x773f8641, 0xc3604c06, 0x61a806b5, 0xf0177a28, 0xc0f586e0, |
|
| 141 |
- 0x006058aa, 0x30dc7d62, 0x11e69ed7, 0x2338ea63, 0x53c2dd94, 0xc2c21634, |
|
| 142 |
- 0xbbcbee56, 0x90bcb6de, 0xebfc7da1, 0xce591d76, 0x6f05e409, 0x4b7c0188, |
|
| 143 |
- 0x39720a3d, 0x7c927c24, 0x86e3725f, 0x724d9db9, 0x1ac15bb4, 0xd39eb8fc, |
|
| 144 |
- 0xed545578, 0x08fca5b5, 0xd83d7cd3, 0x4dad0fc4, 0x1e50ef5e, 0xb161e6f8, |
|
| 145 |
- 0xa28514d9, 0x6c51133c, 0x6fd5c7e7, 0x56e14ec4, 0x362abfce, 0xddc6c837, |
|
| 146 |
- 0xd79a3234, 0x92638212, 0x670efa8e, 0x406000e0, |
|
| 147 |
-} |
|
| 148 |
- |
|
| 149 |
-var s3 = [256]uint32{
|
|
| 150 |
- 0x3a39ce37, 0xd3faf5cf, 0xabc27737, 0x5ac52d1b, 0x5cb0679e, 0x4fa33742, |
|
| 151 |
- 0xd3822740, 0x99bc9bbe, 0xd5118e9d, 0xbf0f7315, 0xd62d1c7e, 0xc700c47b, |
|
| 152 |
- 0xb78c1b6b, 0x21a19045, 0xb26eb1be, 0x6a366eb4, 0x5748ab2f, 0xbc946e79, |
|
| 153 |
- 0xc6a376d2, 0x6549c2c8, 0x530ff8ee, 0x468dde7d, 0xd5730a1d, 0x4cd04dc6, |
|
| 154 |
- 0x2939bbdb, 0xa9ba4650, 0xac9526e8, 0xbe5ee304, 0xa1fad5f0, 0x6a2d519a, |
|
| 155 |
- 0x63ef8ce2, 0x9a86ee22, 0xc089c2b8, 0x43242ef6, 0xa51e03aa, 0x9cf2d0a4, |
|
| 156 |
- 0x83c061ba, 0x9be96a4d, 0x8fe51550, 0xba645bd6, 0x2826a2f9, 0xa73a3ae1, |
|
| 157 |
- 0x4ba99586, 0xef5562e9, 0xc72fefd3, 0xf752f7da, 0x3f046f69, 0x77fa0a59, |
|
| 158 |
- 0x80e4a915, 0x87b08601, 0x9b09e6ad, 0x3b3ee593, 0xe990fd5a, 0x9e34d797, |
|
| 159 |
- 0x2cf0b7d9, 0x022b8b51, 0x96d5ac3a, 0x017da67d, 0xd1cf3ed6, 0x7c7d2d28, |
|
| 160 |
- 0x1f9f25cf, 0xadf2b89b, 0x5ad6b472, 0x5a88f54c, 0xe029ac71, 0xe019a5e6, |
|
| 161 |
- 0x47b0acfd, 0xed93fa9b, 0xe8d3c48d, 0x283b57cc, 0xf8d56629, 0x79132e28, |
|
| 162 |
- 0x785f0191, 0xed756055, 0xf7960e44, 0xe3d35e8c, 0x15056dd4, 0x88f46dba, |
|
| 163 |
- 0x03a16125, 0x0564f0bd, 0xc3eb9e15, 0x3c9057a2, 0x97271aec, 0xa93a072a, |
|
| 164 |
- 0x1b3f6d9b, 0x1e6321f5, 0xf59c66fb, 0x26dcf319, 0x7533d928, 0xb155fdf5, |
|
| 165 |
- 0x03563482, 0x8aba3cbb, 0x28517711, 0xc20ad9f8, 0xabcc5167, 0xccad925f, |
|
| 166 |
- 0x4de81751, 0x3830dc8e, 0x379d5862, 0x9320f991, 0xea7a90c2, 0xfb3e7bce, |
|
| 167 |
- 0x5121ce64, 0x774fbe32, 0xa8b6e37e, 0xc3293d46, 0x48de5369, 0x6413e680, |
|
| 168 |
- 0xa2ae0810, 0xdd6db224, 0x69852dfd, 0x09072166, 0xb39a460a, 0x6445c0dd, |
|
| 169 |
- 0x586cdecf, 0x1c20c8ae, 0x5bbef7dd, 0x1b588d40, 0xccd2017f, 0x6bb4e3bb, |
|
| 170 |
- 0xdda26a7e, 0x3a59ff45, 0x3e350a44, 0xbcb4cdd5, 0x72eacea8, 0xfa6484bb, |
|
| 171 |
- 0x8d6612ae, 0xbf3c6f47, 0xd29be463, 0x542f5d9e, 0xaec2771b, 0xf64e6370, |
|
| 172 |
- 0x740e0d8d, 0xe75b1357, 0xf8721671, 0xaf537d5d, 0x4040cb08, 0x4eb4e2cc, |
|
| 173 |
- 0x34d2466a, 0x0115af84, 0xe1b00428, 0x95983a1d, 0x06b89fb4, 0xce6ea048, |
|
| 174 |
- 0x6f3f3b82, 0x3520ab82, 0x011a1d4b, 0x277227f8, 0x611560b1, 0xe7933fdc, |
|
| 175 |
- 0xbb3a792b, 0x344525bd, 0xa08839e1, 0x51ce794b, 0x2f32c9b7, 0xa01fbac9, |
|
| 176 |
- 0xe01cc87e, 0xbcc7d1f6, 0xcf0111c3, 0xa1e8aac7, 0x1a908749, 0xd44fbd9a, |
|
| 177 |
- 0xd0dadecb, 0xd50ada38, 0x0339c32a, 0xc6913667, 0x8df9317c, 0xe0b12b4f, |
|
| 178 |
- 0xf79e59b7, 0x43f5bb3a, 0xf2d519ff, 0x27d9459c, 0xbf97222c, 0x15e6fc2a, |
|
| 179 |
- 0x0f91fc71, 0x9b941525, 0xfae59361, 0xceb69ceb, 0xc2a86459, 0x12baa8d1, |
|
| 180 |
- 0xb6c1075e, 0xe3056a0c, 0x10d25065, 0xcb03a442, 0xe0ec6e0e, 0x1698db3b, |
|
| 181 |
- 0x4c98a0be, 0x3278e964, 0x9f1f9532, 0xe0d392df, 0xd3a0342b, 0x8971f21e, |
|
| 182 |
- 0x1b0a7441, 0x4ba3348c, 0xc5be7120, 0xc37632d8, 0xdf359f8d, 0x9b992f2e, |
|
| 183 |
- 0xe60b6f47, 0x0fe3f11d, 0xe54cda54, 0x1edad891, 0xce6279cf, 0xcd3e7e6f, |
|
| 184 |
- 0x1618b166, 0xfd2c1d05, 0x848fd2c5, 0xf6fb2299, 0xf523f357, 0xa6327623, |
|
| 185 |
- 0x93a83531, 0x56cccd02, 0xacf08162, 0x5a75ebb5, 0x6e163697, 0x88d273cc, |
|
| 186 |
- 0xde966292, 0x81b949d0, 0x4c50901b, 0x71c65614, 0xe6c6c7bd, 0x327a140a, |
|
| 187 |
- 0x45e1d006, 0xc3f27b9a, 0xc9aa53fd, 0x62a80f00, 0xbb25bfe2, 0x35bdd2f6, |
|
| 188 |
- 0x71126905, 0xb2040222, 0xb6cbcf7c, 0xcd769c2b, 0x53113ec0, 0x1640e3d3, |
|
| 189 |
- 0x38abbd60, 0x2547adf0, 0xba38209c, 0xf746ce76, 0x77afa1c5, 0x20756060, |
|
| 190 |
- 0x85cbfe4e, 0x8ae88dd8, 0x7aaaf9b0, 0x4cf9aa7e, 0x1948c25c, 0x02fb8a8c, |
|
| 191 |
- 0x01c36ae4, 0xd6ebe1f9, 0x90d4f869, 0xa65cdea0, 0x3f09252d, 0xc208e69f, |
|
| 192 |
- 0xb74e6132, 0xce77e25b, 0x578fdfe3, 0x3ac372e6, |
|
| 193 |
-} |
|
| 194 |
- |
|
| 195 |
-var p = [18]uint32{
|
|
| 196 |
- 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344, 0xa4093822, 0x299f31d0, |
|
| 197 |
- 0x082efa98, 0xec4e6c89, 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c, |
|
| 198 |
- 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917, 0x9216d5d9, 0x8979fb1b, |
|
| 199 |
-} |