[WIP] update swarmkit dependecies to support plugable secrets
Brian Goff authored on 2017/08/28 23:31:27... | ... |
@@ -108,7 +108,7 @@ github.com/stevvooe/continuity cd7a8e21e2b6f84799f5dd4b65faf49c8d3ee02d |
108 | 108 |
github.com/tonistiigi/fsutil 0ac4c11b053b9c5c7c47558f81f96c7100ce50fb |
109 | 109 |
|
110 | 110 |
# cluster |
111 |
-github.com/docker/swarmkit 8bdecc57887ffc598b63d6433f58e0d2852112c3 https://github.com/dmcgowan/swarmkit.git |
|
111 |
+github.com/docker/swarmkit ddb4539f883b18ea40af44ee6de63ac2adc8dc1e |
|
112 | 112 |
github.com/gogo/protobuf v0.4 |
113 | 113 |
github.com/cloudflare/cfssl 7fb22c8cba7ecaf98e4082d22d65800cf45e042a |
114 | 114 |
github.com/google/certificate-transparency d90e65c3a07988180c5b1ece71791c0b6506826e |
... | ... |
@@ -6,3 +6,19 @@ $ make generate |
6 | 6 |
``` |
7 | 7 |
|
8 | 8 |
Click [here](https://github.com/google/protobuf) for more information about protobuf. |
9 |
+ |
|
10 |
+The `api.pb.txt` file contains merged descriptors of all defined services and messages. |
|
11 |
+Definitions present here are considered frozen after the release. |
|
12 |
+ |
|
13 |
+At release time, the current `api.pb.txt` file will be moved into place to |
|
14 |
+freeze the API changes for the minor version. For example, when 1.0.0 is |
|
15 |
+released, `api.pb.txt` should be moved to `1.0.txt`. Notice that we leave off |
|
16 |
+the patch number, since the API will be completely locked down for a given |
|
17 |
+patch series. |
|
18 |
+ |
|
19 |
+We may find that by default, protobuf descriptors are too noisy to lock down |
|
20 |
+API changes. In that case, we may filter out certain fields in the descriptors, |
|
21 |
+possibly regenerating for old versions. |
|
22 |
+ |
|
23 |
+This process is similar to the [process used to ensure backwards compatibility |
|
24 |
+in Go](https://github.com/golang/go/tree/master/api). |
... | ... |
@@ -1,7 +1,223 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: ca.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/ca.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 |
+/* |
|
6 |
+ Package api is a generated protocol buffer package. |
|
7 |
+ |
|
8 |
+ It is generated from these files: |
|
9 |
+ github.com/docker/swarmkit/api/ca.proto |
|
10 |
+ github.com/docker/swarmkit/api/control.proto |
|
11 |
+ github.com/docker/swarmkit/api/dispatcher.proto |
|
12 |
+ github.com/docker/swarmkit/api/health.proto |
|
13 |
+ github.com/docker/swarmkit/api/logbroker.proto |
|
14 |
+ github.com/docker/swarmkit/api/objects.proto |
|
15 |
+ github.com/docker/swarmkit/api/raft.proto |
|
16 |
+ github.com/docker/swarmkit/api/resource.proto |
|
17 |
+ github.com/docker/swarmkit/api/snapshot.proto |
|
18 |
+ github.com/docker/swarmkit/api/specs.proto |
|
19 |
+ github.com/docker/swarmkit/api/types.proto |
|
20 |
+ github.com/docker/swarmkit/api/watch.proto |
|
21 |
+ |
|
22 |
+ It has these top-level messages: |
|
23 |
+ NodeCertificateStatusRequest |
|
24 |
+ NodeCertificateStatusResponse |
|
25 |
+ IssueNodeCertificateRequest |
|
26 |
+ IssueNodeCertificateResponse |
|
27 |
+ GetRootCACertificateRequest |
|
28 |
+ GetRootCACertificateResponse |
|
29 |
+ GetUnlockKeyRequest |
|
30 |
+ GetUnlockKeyResponse |
|
31 |
+ GetNodeRequest |
|
32 |
+ GetNodeResponse |
|
33 |
+ ListNodesRequest |
|
34 |
+ ListNodesResponse |
|
35 |
+ UpdateNodeRequest |
|
36 |
+ UpdateNodeResponse |
|
37 |
+ RemoveNodeRequest |
|
38 |
+ RemoveNodeResponse |
|
39 |
+ GetTaskRequest |
|
40 |
+ GetTaskResponse |
|
41 |
+ RemoveTaskRequest |
|
42 |
+ RemoveTaskResponse |
|
43 |
+ ListTasksRequest |
|
44 |
+ ListTasksResponse |
|
45 |
+ CreateServiceRequest |
|
46 |
+ CreateServiceResponse |
|
47 |
+ GetServiceRequest |
|
48 |
+ GetServiceResponse |
|
49 |
+ UpdateServiceRequest |
|
50 |
+ UpdateServiceResponse |
|
51 |
+ RemoveServiceRequest |
|
52 |
+ RemoveServiceResponse |
|
53 |
+ ListServicesRequest |
|
54 |
+ ListServicesResponse |
|
55 |
+ CreateNetworkRequest |
|
56 |
+ CreateNetworkResponse |
|
57 |
+ GetNetworkRequest |
|
58 |
+ GetNetworkResponse |
|
59 |
+ RemoveNetworkRequest |
|
60 |
+ RemoveNetworkResponse |
|
61 |
+ ListNetworksRequest |
|
62 |
+ ListNetworksResponse |
|
63 |
+ GetClusterRequest |
|
64 |
+ GetClusterResponse |
|
65 |
+ ListClustersRequest |
|
66 |
+ ListClustersResponse |
|
67 |
+ KeyRotation |
|
68 |
+ UpdateClusterRequest |
|
69 |
+ UpdateClusterResponse |
|
70 |
+ GetSecretRequest |
|
71 |
+ GetSecretResponse |
|
72 |
+ UpdateSecretRequest |
|
73 |
+ UpdateSecretResponse |
|
74 |
+ ListSecretsRequest |
|
75 |
+ ListSecretsResponse |
|
76 |
+ CreateSecretRequest |
|
77 |
+ CreateSecretResponse |
|
78 |
+ RemoveSecretRequest |
|
79 |
+ RemoveSecretResponse |
|
80 |
+ GetConfigRequest |
|
81 |
+ GetConfigResponse |
|
82 |
+ UpdateConfigRequest |
|
83 |
+ UpdateConfigResponse |
|
84 |
+ ListConfigsRequest |
|
85 |
+ ListConfigsResponse |
|
86 |
+ CreateConfigRequest |
|
87 |
+ CreateConfigResponse |
|
88 |
+ RemoveConfigRequest |
|
89 |
+ RemoveConfigResponse |
|
90 |
+ SessionRequest |
|
91 |
+ SessionMessage |
|
92 |
+ HeartbeatRequest |
|
93 |
+ HeartbeatResponse |
|
94 |
+ UpdateTaskStatusRequest |
|
95 |
+ UpdateTaskStatusResponse |
|
96 |
+ TasksRequest |
|
97 |
+ TasksMessage |
|
98 |
+ AssignmentsRequest |
|
99 |
+ Assignment |
|
100 |
+ AssignmentChange |
|
101 |
+ AssignmentsMessage |
|
102 |
+ HealthCheckRequest |
|
103 |
+ HealthCheckResponse |
|
104 |
+ LogSubscriptionOptions |
|
105 |
+ LogSelector |
|
106 |
+ LogContext |
|
107 |
+ LogAttr |
|
108 |
+ LogMessage |
|
109 |
+ SubscribeLogsRequest |
|
110 |
+ SubscribeLogsMessage |
|
111 |
+ ListenSubscriptionsRequest |
|
112 |
+ SubscriptionMessage |
|
113 |
+ PublishLogsMessage |
|
114 |
+ PublishLogsResponse |
|
115 |
+ Meta |
|
116 |
+ Node |
|
117 |
+ Service |
|
118 |
+ Endpoint |
|
119 |
+ Task |
|
120 |
+ NetworkAttachment |
|
121 |
+ Network |
|
122 |
+ Cluster |
|
123 |
+ Secret |
|
124 |
+ Config |
|
125 |
+ Resource |
|
126 |
+ Extension |
|
127 |
+ RaftMember |
|
128 |
+ JoinRequest |
|
129 |
+ JoinResponse |
|
130 |
+ LeaveRequest |
|
131 |
+ LeaveResponse |
|
132 |
+ ProcessRaftMessageRequest |
|
133 |
+ ProcessRaftMessageResponse |
|
134 |
+ ResolveAddressRequest |
|
135 |
+ ResolveAddressResponse |
|
136 |
+ InternalRaftRequest |
|
137 |
+ StoreAction |
|
138 |
+ AttachNetworkRequest |
|
139 |
+ AttachNetworkResponse |
|
140 |
+ DetachNetworkRequest |
|
141 |
+ DetachNetworkResponse |
|
142 |
+ StoreSnapshot |
|
143 |
+ ClusterSnapshot |
|
144 |
+ Snapshot |
|
145 |
+ NodeSpec |
|
146 |
+ ServiceSpec |
|
147 |
+ ReplicatedService |
|
148 |
+ GlobalService |
|
149 |
+ TaskSpec |
|
150 |
+ ResourceReference |
|
151 |
+ GenericRuntimeSpec |
|
152 |
+ NetworkAttachmentSpec |
|
153 |
+ ContainerSpec |
|
154 |
+ EndpointSpec |
|
155 |
+ NetworkSpec |
|
156 |
+ ClusterSpec |
|
157 |
+ SecretSpec |
|
158 |
+ ConfigSpec |
|
159 |
+ Version |
|
160 |
+ IndexEntry |
|
161 |
+ Annotations |
|
162 |
+ NamedGenericResource |
|
163 |
+ DiscreteGenericResource |
|
164 |
+ GenericResource |
|
165 |
+ Resources |
|
166 |
+ ResourceRequirements |
|
167 |
+ Platform |
|
168 |
+ PluginDescription |
|
169 |
+ EngineDescription |
|
170 |
+ NodeDescription |
|
171 |
+ NodeTLSInfo |
|
172 |
+ RaftMemberStatus |
|
173 |
+ NodeStatus |
|
174 |
+ Image |
|
175 |
+ Mount |
|
176 |
+ RestartPolicy |
|
177 |
+ UpdateConfig |
|
178 |
+ UpdateStatus |
|
179 |
+ ContainerStatus |
|
180 |
+ PortStatus |
|
181 |
+ TaskStatus |
|
182 |
+ NetworkAttachmentConfig |
|
183 |
+ IPAMConfig |
|
184 |
+ PortConfig |
|
185 |
+ Driver |
|
186 |
+ IPAMOptions |
|
187 |
+ Peer |
|
188 |
+ WeightedPeer |
|
189 |
+ IssuanceStatus |
|
190 |
+ AcceptancePolicy |
|
191 |
+ ExternalCA |
|
192 |
+ CAConfig |
|
193 |
+ OrchestrationConfig |
|
194 |
+ TaskDefaults |
|
195 |
+ DispatcherConfig |
|
196 |
+ RaftConfig |
|
197 |
+ EncryptionConfig |
|
198 |
+ SpreadOver |
|
199 |
+ PlacementPreference |
|
200 |
+ Placement |
|
201 |
+ JoinTokens |
|
202 |
+ RootCA |
|
203 |
+ Certificate |
|
204 |
+ EncryptionKey |
|
205 |
+ ManagerStatus |
|
206 |
+ FileTarget |
|
207 |
+ SecretReference |
|
208 |
+ ConfigReference |
|
209 |
+ BlacklistedCertificate |
|
210 |
+ HealthConfig |
|
211 |
+ MaybeEncryptedRecord |
|
212 |
+ RootRotation |
|
213 |
+ Privileges |
|
214 |
+ Object |
|
215 |
+ SelectBySlot |
|
216 |
+ SelectByCustom |
|
217 |
+ SelectBy |
|
218 |
+ WatchRequest |
|
219 |
+ WatchMessage |
|
220 |
+*/ |
|
5 | 221 |
package api |
6 | 222 |
|
7 | 223 |
import proto "github.com/gogo/protobuf/proto" |
... | ... |
@@ -33,6 +249,12 @@ var _ = proto.Marshal |
33 | 33 |
var _ = fmt.Errorf |
34 | 34 |
var _ = math.Inf |
35 | 35 |
|
36 |
+// This is a compile-time assertion to ensure that this generated file |
|
37 |
+// is compatible with the proto package it is being compiled against. |
|
38 |
+// A compilation error at this line likely means your copy of the |
|
39 |
+// proto package needs to be updated. |
|
40 |
+const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package |
|
41 |
+ |
|
36 | 42 |
type NodeCertificateStatusRequest struct { |
37 | 43 |
NodeID string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` |
38 | 44 |
} |
... | ... |
@@ -401,7 +623,7 @@ var _CA_serviceDesc = grpc.ServiceDesc{ |
401 | 401 |
}, |
402 | 402 |
}, |
403 | 403 |
Streams: []grpc.StreamDesc{}, |
404 |
- Metadata: "ca.proto", |
|
404 |
+ Metadata: "github.com/docker/swarmkit/api/ca.proto", |
|
405 | 405 |
} |
406 | 406 |
|
407 | 407 |
// Client API for NodeCA service |
... | ... |
@@ -498,7 +720,7 @@ var _NodeCA_serviceDesc = grpc.ServiceDesc{ |
498 | 498 |
}, |
499 | 499 |
}, |
500 | 500 |
Streams: []grpc.StreamDesc{}, |
501 |
- Metadata: "ca.proto", |
|
501 |
+ Metadata: "github.com/docker/swarmkit/api/ca.proto", |
|
502 | 502 |
} |
503 | 503 |
|
504 | 504 |
func (m *NodeCertificateStatusRequest) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -2070,47 +2292,48 @@ var ( |
2070 | 2070 |
ErrIntOverflowCa = fmt.Errorf("proto: integer overflow") |
2071 | 2071 |
) |
2072 | 2072 |
|
2073 |
-func init() { proto.RegisterFile("ca.proto", fileDescriptorCa) } |
|
2073 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/ca.proto", fileDescriptorCa) } |
|
2074 | 2074 |
|
2075 | 2075 |
var fileDescriptorCa = []byte{ |
2076 |
- // 610 bytes of a gzipped FileDescriptorProto |
|
2077 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xcd, 0x6e, 0xd3, 0x40, |
|
2078 |
- 0x10, 0xee, 0xba, 0x25, 0x6d, 0x27, 0xa1, 0x45, 0xdb, 0x56, 0x32, 0x69, 0xea, 0x54, 0xe6, 0xd0, |
|
2079 |
- 0x72, 0xc0, 0x6d, 0x03, 0x27, 0xb8, 0x90, 0x04, 0xa9, 0x8a, 0x50, 0x11, 0xda, 0x08, 0xae, 0x95, |
|
2080 |
- 0xe3, 0x2c, 0xc1, 0x8a, 0xe3, 0x35, 0xde, 0x75, 0x20, 0x37, 0x24, 0x10, 0x6f, 0x80, 0xe0, 0xc4, |
|
2081 |
- 0x23, 0xf0, 0x1c, 0x11, 0x27, 0x24, 0x2e, 0x9c, 0x22, 0xea, 0x07, 0xe0, 0x19, 0x90, 0xd7, 0x36, |
|
2082 |
- 0xcd, 0x8f, 0x13, 0xca, 0xc9, 0xbb, 0xb3, 0xdf, 0xf7, 0xcd, 0xcc, 0xb7, 0xe3, 0x85, 0x35, 0xcb, |
|
2083 |
- 0x34, 0x3c, 0x9f, 0x09, 0x86, 0x71, 0x9b, 0x59, 0x5d, 0xea, 0x1b, 0xfc, 0xb5, 0xe9, 0xf7, 0xba, |
|
2084 |
- 0xb6, 0x30, 0xfa, 0x27, 0xc5, 0xbc, 0x18, 0x78, 0x94, 0xc7, 0x80, 0x62, 0x9e, 0x7b, 0xd4, 0x4a, |
|
2085 |
- 0x37, 0xdb, 0x1d, 0xd6, 0x61, 0x72, 0x79, 0x14, 0xad, 0x92, 0xe8, 0x96, 0xe7, 0x04, 0x1d, 0xdb, |
|
2086 |
- 0x3d, 0x8a, 0x3f, 0x71, 0x50, 0xaf, 0x43, 0xe9, 0x09, 0x6b, 0xd3, 0x3a, 0xf5, 0x85, 0xfd, 0xc2, |
|
2087 |
- 0xb6, 0x4c, 0x41, 0x9b, 0xc2, 0x14, 0x01, 0x27, 0xf4, 0x55, 0x40, 0xb9, 0xc0, 0xb7, 0x60, 0xd5, |
|
2088 |
- 0x65, 0x6d, 0x7a, 0x6e, 0xb7, 0x55, 0xb4, 0x8f, 0x0e, 0xd7, 0x6b, 0x10, 0x8e, 0xca, 0xb9, 0x88, |
|
2089 |
- 0xd2, 0x78, 0x44, 0x72, 0xd1, 0x51, 0xa3, 0xad, 0x7f, 0x41, 0xb0, 0x37, 0x47, 0x85, 0x7b, 0xcc, |
|
2090 |
- 0xe5, 0x14, 0xdf, 0x87, 0x1c, 0x97, 0x11, 0xa9, 0x92, 0xaf, 0xe8, 0xc6, 0x6c, 0x43, 0x46, 0x83, |
|
2091 |
- 0xf3, 0xc0, 0x74, 0xad, 0x94, 0x9b, 0x30, 0x70, 0x15, 0xf2, 0xd6, 0xa5, 0xb0, 0xaa, 0x48, 0x81, |
|
2092 |
- 0x72, 0x96, 0xc0, 0x58, 0x7e, 0x32, 0xce, 0xd1, 0x7f, 0x20, 0xd8, 0x8d, 0xd4, 0xe9, 0x54, 0x95, |
|
2093 |
- 0x69, 0x97, 0xf7, 0x60, 0xc5, 0x67, 0x0e, 0x95, 0xc5, 0x6d, 0x54, 0x4a, 0x59, 0xda, 0x11, 0x93, |
|
2094 |
- 0x30, 0x87, 0xd6, 0x14, 0x15, 0x11, 0x89, 0xc6, 0x37, 0x61, 0xd9, 0xe2, 0xbe, 0x2c, 0xa8, 0x50, |
|
2095 |
- 0x5b, 0x0d, 0x47, 0xe5, 0xe5, 0x7a, 0x93, 0x90, 0x28, 0x86, 0xb7, 0xe1, 0x9a, 0x60, 0x5d, 0xea, |
|
2096 |
- 0xaa, 0xcb, 0x91, 0x69, 0x24, 0xde, 0xe0, 0x33, 0x28, 0x98, 0x7d, 0xd3, 0x76, 0xcc, 0x96, 0xed, |
|
2097 |
- 0xd8, 0x62, 0xa0, 0xae, 0xc8, 0x74, 0xb7, 0xe7, 0xa5, 0x6b, 0x7a, 0xd4, 0x32, 0xaa, 0x63, 0x04, |
|
2098 |
- 0x32, 0x41, 0xd7, 0x3f, 0x22, 0x28, 0x65, 0x77, 0x95, 0xb8, 0x7e, 0x95, 0xcb, 0xc3, 0x4f, 0x61, |
|
2099 |
- 0x53, 0x82, 0x7a, 0xb4, 0xd7, 0xa2, 0x3e, 0x7f, 0x69, 0x7b, 0xb2, 0xa3, 0x8d, 0xca, 0xc1, 0xc2, |
|
2100 |
- 0xba, 0xce, 0xfe, 0xc2, 0xc9, 0x46, 0xc4, 0xbf, 0xdc, 0xeb, 0x7b, 0xb0, 0x7b, 0x4a, 0x05, 0x61, |
|
2101 |
- 0x4c, 0xd4, 0xab, 0xb3, 0x66, 0xeb, 0x0f, 0xa1, 0x94, 0x7d, 0x9c, 0x54, 0xbd, 0x3f, 0x79, 0xdf, |
|
2102 |
- 0x51, 0xe5, 0x85, 0xc9, 0xeb, 0xdc, 0x81, 0xad, 0x53, 0x2a, 0x9e, 0xb9, 0x0e, 0xb3, 0xba, 0x8f, |
|
2103 |
- 0xe9, 0x20, 0x15, 0xf6, 0x61, 0x7b, 0x32, 0x9c, 0x08, 0xee, 0x01, 0x04, 0x32, 0x78, 0xde, 0xa5, |
|
2104 |
- 0x83, 0x44, 0x6f, 0x3d, 0x48, 0x61, 0xf8, 0x01, 0xac, 0xf6, 0xa9, 0xcf, 0x6d, 0xe6, 0x26, 0xb3, |
|
2105 |
- 0xb5, 0x9b, 0xd5, 0xf8, 0xf3, 0x18, 0x52, 0x5b, 0x19, 0x8e, 0xca, 0x4b, 0x24, 0x65, 0x54, 0xde, |
|
2106 |
- 0x2b, 0xa0, 0xd4, 0xab, 0xf8, 0x1d, 0x92, 0xb9, 0x67, 0x9a, 0xc2, 0x47, 0x59, 0x5a, 0x0b, 0xdc, |
|
2107 |
- 0x29, 0x1e, 0x5f, 0x9d, 0x10, 0xb7, 0xa7, 0xaf, 0x7d, 0xfb, 0xfa, 0xfb, 0xb3, 0xa2, 0xdc, 0x40, |
|
2108 |
- 0xf8, 0x0d, 0x14, 0xc6, 0x0d, 0xc0, 0x07, 0x73, 0xb4, 0xa6, 0x9d, 0x2b, 0x1e, 0xfe, 0x1b, 0x98, |
|
2109 |
- 0x24, 0xdb, 0x91, 0xc9, 0x36, 0xe1, 0xba, 0x44, 0xde, 0xe9, 0x99, 0xae, 0xd9, 0xa1, 0x7e, 0xe5, |
|
2110 |
- 0x93, 0x02, 0x72, 0xae, 0x12, 0x2b, 0xb2, 0xa6, 0x32, 0xdb, 0x8a, 0x05, 0x7f, 0x65, 0xb6, 0x15, |
|
2111 |
- 0x8b, 0x06, 0x7e, 0xcc, 0x8a, 0x0f, 0x08, 0x76, 0x32, 0x9f, 0x24, 0x7c, 0x3c, 0x6f, 0xac, 0xe7, |
|
2112 |
- 0xbd, 0x81, 0xc5, 0x93, 0xff, 0x60, 0x4c, 0x17, 0x52, 0x53, 0x87, 0x17, 0xda, 0xd2, 0xcf, 0x0b, |
|
2113 |
- 0x6d, 0xe9, 0x6d, 0xa8, 0xa1, 0x61, 0xa8, 0xa1, 0xef, 0xa1, 0x86, 0x7e, 0x85, 0x1a, 0x6a, 0xe5, |
|
2114 |
- 0xe4, 0x0b, 0x7c, 0xf7, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x69, 0xad, 0xed, 0x8f, 0xe6, 0x05, |
|
2115 |
- 0x00, 0x00, |
|
2076 |
+ // 638 bytes of a gzipped FileDescriptorProto |
|
2077 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xc1, 0x6e, 0xd3, 0x4c, |
|
2078 |
+ 0x10, 0xee, 0xba, 0xfd, 0xd3, 0xbf, 0xd3, 0xd0, 0xa2, 0xa5, 0x95, 0x4c, 0x9a, 0x3a, 0x95, 0x39, |
|
2079 |
+ 0xb4, 0x20, 0x61, 0xb7, 0x01, 0x09, 0x09, 0x2e, 0x24, 0x41, 0xaa, 0x2a, 0x54, 0x84, 0xb6, 0x82, |
|
2080 |
+ 0x6b, 0xe5, 0x38, 0xdb, 0x74, 0x15, 0xc7, 0x6b, 0xbc, 0xeb, 0x42, 0x6e, 0x48, 0x20, 0xde, 0x00, |
|
2081 |
+ 0xc1, 0x89, 0x47, 0xe0, 0x39, 0x2a, 0x4e, 0x48, 0x5c, 0x38, 0x55, 0xd4, 0x0f, 0xc0, 0x33, 0x20, |
|
2082 |
+ 0xaf, 0x6d, 0x9a, 0xb4, 0x4e, 0x5a, 0x4e, 0xf1, 0xce, 0x7c, 0xdf, 0x37, 0x33, 0xdf, 0x4e, 0x16, |
|
2083 |
+ 0xd6, 0xbb, 0x4c, 0x1e, 0x46, 0x6d, 0xcb, 0xe5, 0x7d, 0xbb, 0xc3, 0xdd, 0x1e, 0x0d, 0x6d, 0xf1, |
|
2084 |
+ 0xda, 0x09, 0xfb, 0x3d, 0x26, 0x6d, 0x27, 0x60, 0xb6, 0xeb, 0x58, 0x41, 0xc8, 0x25, 0xc7, 0x38, |
|
2085 |
+ 0xcd, 0x5a, 0x79, 0xd6, 0x3a, 0xda, 0xaa, 0xdc, 0xb9, 0x84, 0x2c, 0x07, 0x01, 0x15, 0x29, 0xff, |
|
2086 |
+ 0x52, 0xac, 0x08, 0xa8, 0x9b, 0x63, 0x97, 0xba, 0xbc, 0xcb, 0xd5, 0xa7, 0x9d, 0x7c, 0x65, 0xd1, |
|
2087 |
+ 0x07, 0x13, 0x14, 0x14, 0xa2, 0x1d, 0x1d, 0xd8, 0x81, 0x17, 0x75, 0x99, 0x9f, 0xfd, 0xa4, 0x44, |
|
2088 |
+ 0xb3, 0x05, 0xd5, 0x67, 0xbc, 0x43, 0x5b, 0x34, 0x94, 0xec, 0x80, 0xb9, 0x8e, 0xa4, 0x7b, 0xd2, |
|
2089 |
+ 0x91, 0x91, 0x20, 0xf4, 0x55, 0x44, 0x85, 0xc4, 0xb7, 0x60, 0xd6, 0xe7, 0x1d, 0xba, 0xcf, 0x3a, |
|
2090 |
+ 0x3a, 0x5a, 0x43, 0x1b, 0x73, 0x4d, 0x88, 0x4f, 0x6a, 0xa5, 0x84, 0xb2, 0xf3, 0x84, 0x94, 0x92, |
|
2091 |
+ 0xd4, 0x4e, 0xc7, 0xfc, 0x82, 0x60, 0x75, 0x8c, 0x8a, 0x08, 0xb8, 0x2f, 0x28, 0x7e, 0x08, 0x25, |
|
2092 |
+ 0xa1, 0x22, 0x4a, 0x65, 0xbe, 0x6e, 0x5a, 0x17, 0x2d, 0xb3, 0x76, 0x84, 0x88, 0x1c, 0xdf, 0xcd, |
|
2093 |
+ 0xb9, 0x19, 0x03, 0x37, 0x60, 0xde, 0x3d, 0x13, 0xd6, 0x35, 0x25, 0x50, 0x2b, 0x12, 0x18, 0xaa, |
|
2094 |
+ 0x4f, 0x86, 0x39, 0xe6, 0x0f, 0x04, 0x2b, 0x89, 0x3a, 0x3d, 0xd7, 0x65, 0x3e, 0xe5, 0x7d, 0x98, |
|
2095 |
+ 0x09, 0xb9, 0x47, 0x55, 0x73, 0x0b, 0xf5, 0x6a, 0x91, 0x76, 0xc2, 0x24, 0xdc, 0xa3, 0x4d, 0x4d, |
|
2096 |
+ 0x47, 0x44, 0xa1, 0xf1, 0x4d, 0x98, 0x76, 0x45, 0xa8, 0x1a, 0x2a, 0x37, 0x67, 0xe3, 0x93, 0xda, |
|
2097 |
+ 0x74, 0x6b, 0x8f, 0x90, 0x24, 0x86, 0x97, 0xe0, 0x3f, 0xc9, 0x7b, 0xd4, 0xd7, 0xa7, 0x13, 0xd3, |
|
2098 |
+ 0x48, 0x7a, 0xc0, 0xbb, 0x50, 0x76, 0x8e, 0x1c, 0xe6, 0x39, 0x6d, 0xe6, 0x31, 0x39, 0xd0, 0x67, |
|
2099 |
+ 0x54, 0xb9, 0xdb, 0xe3, 0xca, 0xed, 0x05, 0xd4, 0xb5, 0x1a, 0x43, 0x04, 0x32, 0x42, 0x37, 0x3f, |
|
2100 |
+ 0x22, 0xa8, 0x16, 0x4f, 0x95, 0xb9, 0x7e, 0x95, 0xcb, 0xc3, 0xcf, 0x61, 0x51, 0x81, 0xfa, 0xb4, |
|
2101 |
+ 0xdf, 0xa6, 0xa1, 0x38, 0x64, 0x81, 0x9a, 0x68, 0xa1, 0xbe, 0x3e, 0xb1, 0xaf, 0xdd, 0xbf, 0x70, |
|
2102 |
+ 0xb2, 0x90, 0xf0, 0xcf, 0xce, 0xe6, 0x2a, 0xac, 0x6c, 0x53, 0x49, 0x38, 0x97, 0xad, 0xc6, 0x45, |
|
2103 |
+ 0xb3, 0xcd, 0xc7, 0x50, 0x2d, 0x4e, 0x67, 0x5d, 0xaf, 0x8d, 0xde, 0x77, 0xd2, 0x79, 0x79, 0xf4, |
|
2104 |
+ 0x3a, 0x97, 0xe1, 0xc6, 0x36, 0x95, 0x2f, 0x7c, 0x8f, 0xbb, 0xbd, 0xa7, 0x74, 0x90, 0x0b, 0x87, |
|
2105 |
+ 0xb0, 0x34, 0x1a, 0xce, 0x04, 0x57, 0x01, 0x22, 0x15, 0xdc, 0xef, 0xd1, 0x41, 0xa6, 0x37, 0x17, |
|
2106 |
+ 0xe5, 0x30, 0xfc, 0x08, 0x66, 0x8f, 0x68, 0x28, 0x18, 0xf7, 0xb3, 0xdd, 0x5a, 0x29, 0x1a, 0xfc, |
|
2107 |
+ 0x65, 0x0a, 0x69, 0xce, 0x1c, 0x9f, 0xd4, 0xa6, 0x48, 0xce, 0xa8, 0xbf, 0xd7, 0x40, 0x6b, 0x35, |
|
2108 |
+ 0xf0, 0x3b, 0xa4, 0x6a, 0x5f, 0x18, 0x0a, 0xdb, 0x45, 0x5a, 0x13, 0xdc, 0xa9, 0x6c, 0x5e, 0x9d, |
|
2109 |
+ 0x90, 0x8e, 0x67, 0xfe, 0xff, 0xed, 0xeb, 0xef, 0xcf, 0x9a, 0x76, 0x1d, 0xe1, 0x37, 0x50, 0x1e, |
|
2110 |
+ 0x36, 0x00, 0xaf, 0x8f, 0xd1, 0x3a, 0xef, 0x5c, 0x65, 0xe3, 0x72, 0x60, 0x56, 0x6c, 0x59, 0x15, |
|
2111 |
+ 0x5b, 0x84, 0x6b, 0x0a, 0x79, 0xb7, 0xef, 0xf8, 0x4e, 0x97, 0x86, 0xf5, 0x4f, 0x1a, 0xa8, 0xbd, |
|
2112 |
+ 0xca, 0xac, 0x28, 0xda, 0xca, 0x62, 0x2b, 0x26, 0xfc, 0x2b, 0x8b, 0xad, 0x98, 0xb4, 0xf0, 0x43, |
|
2113 |
+ 0x56, 0x7c, 0x40, 0xb0, 0x5c, 0xf8, 0x24, 0xe1, 0xcd, 0x71, 0x6b, 0x3d, 0xee, 0x0d, 0xac, 0x6c, |
|
2114 |
+ 0xfd, 0x03, 0xe3, 0x7c, 0x23, 0x4d, 0xfd, 0xf8, 0xd4, 0x98, 0xfa, 0x79, 0x6a, 0x4c, 0xbd, 0x8d, |
|
2115 |
+ 0x0d, 0x74, 0x1c, 0x1b, 0xe8, 0x7b, 0x6c, 0xa0, 0x5f, 0xb1, 0x81, 0xda, 0x25, 0xf5, 0x02, 0xdf, |
|
2116 |
+ 0xfb, 0x13, 0x00, 0x00, 0xff, 0xff, 0xe1, 0xda, 0xca, 0xba, 0x67, 0x06, 0x00, 0x00, |
|
2116 | 2117 |
} |
... | ... |
@@ -2,10 +2,10 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "types.proto"; |
|
6 |
-import "specs.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/specs.proto"; |
|
7 | 7 |
import "gogoproto/gogo.proto"; |
8 |
-import "plugin/plugin.proto"; |
|
8 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
9 | 9 |
|
10 | 10 |
// CA defines the RPC methods for requesting certificates from a CA. |
11 | 11 |
|
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: control.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/control.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -3468,7 +3468,7 @@ var _Control_serviceDesc = grpc.ServiceDesc{ |
3468 | 3468 |
}, |
3469 | 3469 |
}, |
3470 | 3470 |
Streams: []grpc.StreamDesc{}, |
3471 |
- Metadata: "control.proto", |
|
3471 |
+ Metadata: "github.com/docker/swarmkit/api/control.proto", |
|
3472 | 3472 |
} |
3473 | 3473 |
|
3474 | 3474 |
func (m *GetNodeRequest) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -15953,140 +15953,142 @@ var ( |
15953 | 15953 |
ErrIntOverflowControl = fmt.Errorf("proto: integer overflow") |
15954 | 15954 |
) |
15955 | 15955 |
|
15956 |
-func init() { proto.RegisterFile("control.proto", fileDescriptorControl) } |
|
15956 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/control.proto", fileDescriptorControl) } |
|
15957 | 15957 |
|
15958 | 15958 |
var fileDescriptorControl = []byte{ |
15959 |
- // 2106 bytes of a gzipped FileDescriptorProto |
|
15960 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x73, 0x1b, 0x49, |
|
15961 |
- 0x15, 0xb7, 0x3e, 0x6c, 0xc9, 0x4f, 0xb6, 0x6c, 0xb7, 0x1d, 0x50, 0x29, 0xc1, 0x4e, 0x4d, 0x48, |
|
15962 |
- 0xa2, 0x50, 0x41, 0x66, 0x15, 0x16, 0xc2, 0x52, 0x7c, 0xac, 0xed, 0x6c, 0x56, 0xeb, 0x8d, 0x93, |
|
15963 |
- 0x1a, 0xc7, 0x5b, 0xdc, 0x54, 0xb2, 0xd4, 0x36, 0x13, 0xc9, 0x1a, 0x31, 0x33, 0xf2, 0xae, 0x8b, |
|
15964 |
- 0x0b, 0x50, 0xcb, 0x81, 0x3f, 0x80, 0x2a, 0xae, 0x5c, 0x39, 0x70, 0xe0, 0xc4, 0x81, 0x3f, 0x20, |
|
15965 |
- 0xc5, 0x89, 0x23, 0x27, 0xc3, 0xaa, 0x0a, 0x8a, 0x13, 0x7f, 0xc3, 0x56, 0x77, 0xbf, 0x9e, 0x2f, |
|
15966 |
- 0xf5, 0xcc, 0xe8, 0xab, 0xca, 0x7b, 0xb2, 0xa6, 0xe7, 0xf7, 0xfa, 0xbd, 0xee, 0xf7, 0xeb, 0xdf, |
|
15967 |
- 0x74, 0xbf, 0x36, 0xac, 0xb6, 0xcc, 0x9e, 0x63, 0x99, 0xdd, 0x6a, 0xdf, 0x32, 0x1d, 0x93, 0x90, |
|
15968 |
- 0xb6, 0xd9, 0xea, 0x50, 0xab, 0x6a, 0x7f, 0xda, 0xb4, 0x2e, 0x3a, 0x86, 0x53, 0xbd, 0x7c, 0xa7, |
|
15969 |
- 0x5c, 0xb0, 0xfb, 0xb4, 0x65, 0x0b, 0x40, 0x79, 0xd5, 0x3c, 0x7d, 0x43, 0x5b, 0x8e, 0x7c, 0x2c, |
|
15970 |
- 0x38, 0x57, 0x7d, 0x2a, 0x1f, 0xb6, 0xce, 0xcd, 0x73, 0x93, 0xff, 0xdc, 0x65, 0xbf, 0xb0, 0x75, |
|
15971 |
- 0xb3, 0xdf, 0x1d, 0x9c, 0x1b, 0xbd, 0x5d, 0xf1, 0x47, 0x34, 0x6a, 0xef, 0x42, 0xf1, 0x39, 0x75, |
|
15972 |
- 0x8e, 0xcc, 0x36, 0xd5, 0xe9, 0x2f, 0x06, 0xd4, 0x76, 0xc8, 0x3d, 0xc8, 0xf5, 0xcc, 0x36, 0x6d, |
|
15973 |
- 0x18, 0xed, 0x52, 0xea, 0x6e, 0xaa, 0xb2, 0xbc, 0x07, 0xc3, 0xeb, 0x9d, 0x25, 0x86, 0xa8, 0x1f, |
|
15974 |
- 0xe8, 0x4b, 0xec, 0x55, 0xbd, 0xad, 0xfd, 0x04, 0xd6, 0x5c, 0x33, 0xbb, 0x6f, 0xf6, 0x6c, 0x4a, |
|
15975 |
- 0x1e, 0x43, 0x96, 0xbd, 0xe4, 0x46, 0x85, 0x5a, 0xa9, 0x3a, 0x3a, 0x80, 0x2a, 0xc7, 0x73, 0x94, |
|
15976 |
- 0xf6, 0xdf, 0x0c, 0xac, 0x7f, 0x6c, 0xd8, 0xbc, 0x0b, 0x5b, 0xba, 0xfe, 0x00, 0x72, 0x67, 0x46, |
|
15977 |
- 0xd7, 0xa1, 0x96, 0x8d, 0xbd, 0x3c, 0x56, 0xf5, 0x12, 0x36, 0xab, 0x7e, 0x20, 0x6c, 0x74, 0x69, |
|
15978 |
- 0x5c, 0xfe, 0x5d, 0x06, 0x72, 0xd8, 0x48, 0xb6, 0x60, 0xb1, 0xd7, 0xbc, 0xa0, 0xac, 0xc7, 0x4c, |
|
15979 |
- 0x65, 0x59, 0x17, 0x0f, 0x64, 0x17, 0x0a, 0x46, 0xbb, 0xd1, 0xb7, 0xe8, 0x99, 0xf1, 0x19, 0xb5, |
|
15980 |
- 0x4b, 0x69, 0xf6, 0x6e, 0xaf, 0x38, 0xbc, 0xde, 0x81, 0xfa, 0xc1, 0x2b, 0x6c, 0xd5, 0xc1, 0x68, |
|
15981 |
- 0xcb, 0xdf, 0xe4, 0x15, 0x2c, 0x75, 0x9b, 0xa7, 0xb4, 0x6b, 0x97, 0x32, 0x77, 0x33, 0x95, 0x42, |
|
15982 |
- 0xed, 0xe9, 0x24, 0x91, 0x55, 0x3f, 0xe6, 0xa6, 0xcf, 0x7a, 0x8e, 0x75, 0xa5, 0x63, 0x3f, 0xe4, |
|
15983 |
- 0x05, 0x14, 0x2e, 0xe8, 0xc5, 0x29, 0xb5, 0xec, 0x9f, 0x1b, 0x7d, 0xbb, 0x94, 0xbd, 0x9b, 0xa9, |
|
15984 |
- 0x14, 0x6b, 0x0f, 0xa3, 0xa6, 0xed, 0xb8, 0x4f, 0x5b, 0xd5, 0x17, 0x2e, 0x7e, 0x2f, 0xbd, 0xbe, |
|
15985 |
- 0xa0, 0xfb, 0xed, 0xc9, 0xf7, 0x60, 0xd1, 0x32, 0xbb, 0xd4, 0x2e, 0x2d, 0xf2, 0x8e, 0xee, 0x44, |
|
15986 |
- 0xce, 0xbf, 0xd9, 0xa5, 0xdc, 0x5a, 0xc0, 0xc9, 0x3d, 0x58, 0x65, 0x53, 0xe2, 0xcd, 0xc5, 0x12, |
|
15987 |
- 0x9f, 0xa7, 0x15, 0xd6, 0x28, 0x47, 0x5f, 0xfe, 0x01, 0x14, 0x7c, 0x43, 0x20, 0xeb, 0x90, 0xe9, |
|
15988 |
- 0xd0, 0x2b, 0x41, 0x0f, 0x9d, 0xfd, 0x64, 0xb3, 0x7c, 0xd9, 0xec, 0x0e, 0x68, 0x29, 0xcd, 0xdb, |
|
15989 |
- 0xc4, 0xc3, 0x7b, 0xe9, 0xa7, 0x29, 0x6d, 0x1f, 0x36, 0x7c, 0xd3, 0x82, 0x5c, 0xa9, 0xc2, 0x22, |
|
15990 |
- 0x63, 0x81, 0x48, 0x4a, 0x1c, 0x59, 0x04, 0x4c, 0xfb, 0x53, 0x0a, 0x36, 0x4e, 0xfa, 0xed, 0xa6, |
|
15991 |
- 0x43, 0x27, 0x65, 0x2a, 0xf9, 0x31, 0xac, 0x70, 0xd0, 0x25, 0xb5, 0x6c, 0xc3, 0xec, 0xf1, 0x00, |
|
15992 |
- 0x0b, 0xb5, 0xdb, 0x2a, 0x8f, 0x9f, 0x08, 0x88, 0x5e, 0x60, 0x06, 0xf8, 0x40, 0xbe, 0x03, 0x59, |
|
15993 |
- 0xb6, 0xec, 0x4a, 0x19, 0x6e, 0x77, 0x27, 0x2e, 0x3f, 0x3a, 0x47, 0x6a, 0x7b, 0x40, 0xfc, 0xb1, |
|
15994 |
- 0x4e, 0xb5, 0x3c, 0x8e, 0x60, 0x43, 0xa7, 0x17, 0xe6, 0xe5, 0xe4, 0xe3, 0xdd, 0x82, 0xc5, 0x33, |
|
15995 |
- 0xd3, 0x6a, 0x89, 0x4c, 0xe4, 0x75, 0xf1, 0xa0, 0x6d, 0x01, 0xf1, 0xf7, 0x27, 0x62, 0xc2, 0xc5, |
|
15996 |
- 0xff, 0xba, 0x69, 0x77, 0x7c, 0x2e, 0x9c, 0xa6, 0xdd, 0x09, 0xb9, 0x60, 0x08, 0xe6, 0x82, 0xbd, |
|
15997 |
- 0x72, 0x17, 0xbf, 0x30, 0xf3, 0x46, 0xc7, 0x5e, 0xc6, 0x8d, 0x8e, 0xe3, 0x39, 0x4a, 0x7b, 0x2a, |
|
15998 |
- 0x47, 0x37, 0xb1, 0x6b, 0x77, 0x1c, 0x7e, 0xef, 0xda, 0xdf, 0xb2, 0x42, 0x4c, 0x58, 0xe3, 0x14, |
|
15999 |
- 0x62, 0xe2, 0x37, 0x1b, 0x15, 0x93, 0x7f, 0xdd, 0xa0, 0x98, 0xa8, 0x22, 0x53, 0x8a, 0xc9, 0x2e, |
|
16000 |
- 0x14, 0x6c, 0x6a, 0x5d, 0x1a, 0x2d, 0xc6, 0x0e, 0x21, 0x26, 0x18, 0xc2, 0xb1, 0x68, 0xae, 0x1f, |
|
16001 |
- 0xd8, 0x3a, 0x20, 0xa4, 0xde, 0xb6, 0xc9, 0x03, 0xc8, 0x23, 0x97, 0x84, 0x62, 0x2c, 0xef, 0x15, |
|
16002 |
- 0x86, 0xd7, 0x3b, 0x39, 0x41, 0x26, 0x5b, 0xcf, 0x09, 0x36, 0xd9, 0xe4, 0x43, 0x28, 0xb6, 0xa9, |
|
16003 |
- 0x6d, 0x58, 0xb4, 0xdd, 0xb0, 0x9d, 0xa6, 0x83, 0xfa, 0x50, 0xac, 0x7d, 0x23, 0x2a, 0xc5, 0xc7, |
|
16004 |
- 0x0c, 0xc5, 0x05, 0x66, 0x15, 0x0d, 0x79, 0x8b, 0x42, 0x68, 0x72, 0xa3, 0x42, 0x43, 0xee, 0x00, |
|
16005 |
- 0x0c, 0xfa, 0x0d, 0xc7, 0x6c, 0xb0, 0xf5, 0x53, 0xca, 0x73, 0x0a, 0xe7, 0x07, 0xfd, 0xd7, 0xe6, |
|
16006 |
- 0x41, 0xd3, 0xa1, 0xa4, 0x0c, 0x79, 0x6b, 0xd0, 0x73, 0x0c, 0x96, 0x81, 0x65, 0x6e, 0xed, 0x3e, |
|
16007 |
- 0xcf, 0x41, 0xa2, 0x70, 0xb2, 0x3d, 0x89, 0x62, 0x9c, 0x8b, 0x95, 0x28, 0x4e, 0x42, 0x01, 0xd3, |
|
16008 |
- 0x0e, 0x61, 0x6b, 0xdf, 0xa2, 0x4d, 0x87, 0xe2, 0x84, 0x4b, 0x1a, 0x3e, 0x41, 0xfd, 0x10, 0x1c, |
|
16009 |
- 0xdc, 0x51, 0x75, 0x83, 0x16, 0x3e, 0x09, 0x39, 0x82, 0x5b, 0xa1, 0xce, 0x30, 0xaa, 0x77, 0x21, |
|
16010 |
- 0x87, 0x49, 0xc4, 0x0e, 0x6f, 0xc7, 0x74, 0xa8, 0x4b, 0xac, 0xf6, 0x06, 0x36, 0x9e, 0x53, 0x27, |
|
16011 |
- 0x14, 0xd9, 0x63, 0x00, 0x8f, 0x33, 0xb8, 0xe6, 0x56, 0x87, 0xd7, 0x3b, 0xcb, 0x2e, 0x65, 0xf4, |
|
16012 |
- 0x65, 0x97, 0x31, 0xe4, 0x21, 0xac, 0x19, 0x3d, 0x9b, 0x5a, 0x4e, 0xa3, 0x4d, 0xcf, 0x9a, 0x83, |
|
16013 |
- 0xae, 0x63, 0xa3, 0xc2, 0x14, 0x45, 0xf3, 0x01, 0xb6, 0x6a, 0x87, 0x40, 0xfc, 0xbe, 0x66, 0x0b, |
|
16014 |
- 0xfc, 0x2f, 0x69, 0xd8, 0x12, 0x62, 0x3a, 0x53, 0xf0, 0x07, 0xb0, 0x26, 0xd1, 0x13, 0x7c, 0x07, |
|
16015 |
- 0x8a, 0x68, 0x23, 0x3f, 0x05, 0x4f, 0x02, 0x9f, 0x82, 0xf1, 0x52, 0x49, 0x5e, 0x40, 0xde, 0x32, |
|
16016 |
- 0xbb, 0xdd, 0xd3, 0x66, 0xab, 0x53, 0xca, 0xde, 0x4d, 0x55, 0x8a, 0xb5, 0x77, 0x54, 0x86, 0xaa, |
|
16017 |
- 0x41, 0x56, 0x75, 0x34, 0xd4, 0xdd, 0x2e, 0x34, 0x0d, 0xf2, 0xb2, 0x95, 0xe4, 0x21, 0x7b, 0xf4, |
|
16018 |
- 0xf2, 0xe8, 0xd9, 0xfa, 0x02, 0x59, 0x81, 0xfc, 0x2b, 0xfd, 0xd9, 0x27, 0xf5, 0x97, 0x27, 0xc7, |
|
16019 |
- 0xeb, 0x29, 0xc6, 0x9e, 0x50, 0x77, 0xb3, 0x25, 0xe1, 0x00, 0xb6, 0x84, 0xe8, 0xce, 0x92, 0x03, |
|
16020 |
- 0xed, 0xeb, 0x70, 0x2b, 0xd4, 0x0b, 0xaa, 0xf7, 0xe7, 0x19, 0xd8, 0x64, 0xeb, 0x0f, 0xdb, 0x5d, |
|
16021 |
- 0x01, 0xaf, 0x87, 0x05, 0x7c, 0x37, 0x4a, 0x26, 0x43, 0x96, 0xa3, 0x1a, 0xfe, 0xc7, 0xf4, 0xdc, |
|
16022 |
- 0x35, 0xfc, 0x38, 0xa4, 0xe1, 0x3f, 0x9c, 0x30, 0x38, 0xa5, 0x8c, 0x8f, 0x68, 0x64, 0x56, 0xa1, |
|
16023 |
- 0x91, 0x7e, 0x15, 0x5c, 0x9c, 0x9f, 0x0a, 0xbe, 0x84, 0xad, 0x60, 0xb8, 0x48, 0x9a, 0xef, 0x43, |
|
16024 |
- 0x1e, 0x93, 0x28, 0xb5, 0x30, 0x96, 0x35, 0x2e, 0xd8, 0x53, 0xc4, 0x23, 0xea, 0x7c, 0x6a, 0x5a, |
|
16025 |
- 0x9d, 0x09, 0x14, 0x11, 0x2d, 0x54, 0x8a, 0xe8, 0x76, 0xe6, 0x71, 0xba, 0x27, 0x9a, 0xe2, 0x38, |
|
16026 |
- 0x2d, 0xad, 0x24, 0x56, 0x3b, 0xe1, 0x8a, 0x18, 0x8a, 0x8c, 0x40, 0x96, 0xcd, 0x34, 0xce, 0x17, |
|
16027 |
- 0xff, 0xcd, 0x48, 0x8e, 0x36, 0x8c, 0xe4, 0x69, 0x8f, 0xe4, 0x68, 0xcb, 0x48, 0x8e, 0x80, 0x7a, |
|
16028 |
- 0x1b, 0xc5, 0x6f, 0x4e, 0x31, 0xfe, 0x4c, 0xae, 0xbb, 0xb9, 0x87, 0xe9, 0xae, 0xc5, 0x50, 0xa4, |
|
16029 |
- 0xda, 0xff, 0xd2, 0x62, 0x2d, 0x62, 0xfb, 0x14, 0x6b, 0x31, 0x64, 0x39, 0xba, 0x16, 0x7f, 0x7b, |
|
16030 |
- 0x83, 0x6b, 0x31, 0x22, 0xb8, 0xa9, 0xd7, 0xe2, 0x1c, 0xd6, 0x9b, 0x17, 0x92, 0xb7, 0xde, 0x30, |
|
16031 |
- 0x51, 0xb1, 0xeb, 0x4d, 0x66, 0xce, 0x05, 0x6b, 0xef, 0x73, 0x4a, 0xef, 0x77, 0x07, 0xb6, 0x43, |
|
16032 |
- 0x2d, 0x9f, 0x46, 0xb7, 0x44, 0x4b, 0x48, 0xa3, 0x11, 0xc7, 0x78, 0x81, 0x00, 0x97, 0xbe, 0x6e, |
|
16033 |
- 0x17, 0x1e, 0x7d, 0x11, 0x12, 0x47, 0x5f, 0x69, 0x25, 0xb1, 0x2e, 0x97, 0xf0, 0xc5, 0x14, 0x5c, |
|
16034 |
- 0x0a, 0x59, 0x7e, 0xb5, 0xb8, 0x14, 0x11, 0xdc, 0x4d, 0x72, 0xc9, 0x0b, 0xc9, 0xe3, 0x12, 0x66, |
|
16035 |
- 0x23, 0x96, 0x4b, 0x32, 0x75, 0x2e, 0x58, 0xfb, 0x7d, 0x0a, 0x0a, 0x87, 0xf4, 0x4a, 0x37, 0x9d, |
|
16036 |
- 0xa6, 0xc3, 0xb6, 0x3e, 0xdf, 0x82, 0x0d, 0x46, 0x32, 0x6a, 0x35, 0xde, 0x98, 0x46, 0xaf, 0xe1, |
|
16037 |
- 0x98, 0x1d, 0xda, 0xe3, 0xa1, 0xe5, 0xf5, 0x35, 0xf1, 0xe2, 0x23, 0xd3, 0xe8, 0xbd, 0x66, 0xcd, |
|
16038 |
- 0xe4, 0x31, 0x90, 0x8b, 0x66, 0xaf, 0x79, 0x1e, 0x04, 0x8b, 0xcd, 0xe2, 0x3a, 0xbe, 0x51, 0xa2, |
|
16039 |
- 0x07, 0xbd, 0xae, 0xd9, 0xea, 0x34, 0xd8, 0xa8, 0x33, 0x01, 0xf4, 0x09, 0x7f, 0x71, 0x48, 0xaf, |
|
16040 |
- 0xb4, 0xdf, 0xb8, 0xfb, 0xc1, 0x59, 0x78, 0xce, 0xf6, 0x83, 0x12, 0x3d, 0xc9, 0x7e, 0x10, 0x6d, |
|
16041 |
- 0x26, 0xd8, 0x0f, 0xa2, 0x77, 0xdf, 0x7e, 0xf0, 0x7d, 0xb6, 0x1f, 0x14, 0xb3, 0xca, 0xf7, 0x83, |
|
16042 |
- 0x11, 0x86, 0xbe, 0xc9, 0xdf, 0xcb, 0xbe, 0xbd, 0xde, 0x59, 0xd0, 0x5d, 0x33, 0x6f, 0x7f, 0x37, |
|
16043 |
- 0xa7, 0x85, 0xfa, 0x23, 0x58, 0xe7, 0x3b, 0xf6, 0x96, 0x45, 0x1d, 0x39, 0x9f, 0x8f, 0x60, 0xd9, |
|
16044 |
- 0xe6, 0x0d, 0xde, 0x74, 0xae, 0x0c, 0xaf, 0x77, 0xf2, 0x02, 0x55, 0x3f, 0x60, 0xdf, 0x79, 0xfe, |
|
16045 |
- 0xab, 0xad, 0x3d, 0xc7, 0xc3, 0x85, 0x30, 0xc7, 0x50, 0x6a, 0xb0, 0x24, 0x00, 0x18, 0x49, 0x59, |
|
16046 |
- 0xbd, 0x67, 0xe0, 0x36, 0x88, 0xd4, 0xfe, 0x9a, 0x82, 0x4d, 0xb9, 0x71, 0x9d, 0x2e, 0x16, 0xb2, |
|
16047 |
- 0x07, 0x45, 0x84, 0x4e, 0x90, 0xd7, 0x55, 0x61, 0x22, 0xd3, 0x5a, 0x0b, 0xa4, 0x75, 0x3b, 0x3a, |
|
16048 |
- 0x70, 0xdf, 0xf6, 0xe4, 0x23, 0xef, 0x98, 0x32, 0xf3, 0x34, 0xfc, 0x27, 0x0d, 0x44, 0xec, 0xc4, |
|
16049 |
- 0xd8, 0xa3, 0x2b, 0x9b, 0x1f, 0x86, 0x65, 0xb3, 0x1a, 0xbd, 0xe3, 0xf4, 0x1b, 0x8e, 0xaa, 0xe6, |
|
16050 |
- 0xe7, 0xf3, 0x57, 0x4d, 0x3d, 0xa4, 0x9a, 0xef, 0x4d, 0x16, 0xdb, 0x8d, 0x88, 0xe6, 0xa1, 0x3c, |
|
16051 |
- 0x76, 0x60, 0x44, 0x98, 0xb2, 0xef, 0xb2, 0x43, 0x12, 0x6f, 0x42, 0xc9, 0x8c, 0xcb, 0x99, 0x84, |
|
16052 |
- 0x6a, 0x75, 0xd8, 0x94, 0x27, 0x76, 0x3f, 0x75, 0x6b, 0x81, 0xbd, 0xee, 0xd8, 0x5c, 0x0a, 0x76, |
|
16053 |
- 0x35, 0x03, 0x97, 0x7e, 0x0a, 0x9b, 0xf2, 0xd0, 0x35, 0xe5, 0xea, 0xfe, 0x9a, 0x77, 0xf8, 0xf3, |
|
16054 |
- 0x47, 0x83, 0xa2, 0xb1, 0x6f, 0xf6, 0xce, 0x8c, 0x73, 0x5f, 0xb7, 0x2d, 0xde, 0x10, 0xea, 0x56, |
|
16055 |
- 0xa0, 0x58, 0xb7, 0xe2, 0xb5, 0x2b, 0x1a, 0xd2, 0xdc, 0x1b, 0xa1, 0x00, 0xc4, 0x8d, 0x10, 0x6d, |
|
16056 |
- 0x10, 0xe9, 0x13, 0x8d, 0x69, 0x63, 0x61, 0xa2, 0x81, 0xd0, 0x49, 0x44, 0x43, 0x98, 0x4c, 0x20, |
|
16057 |
- 0x1a, 0xc2, 0xb3, 0x4a, 0x34, 0xe6, 0x30, 0x0d, 0x52, 0x34, 0x44, 0xf3, 0x14, 0xa2, 0x11, 0x34, |
|
16058 |
- 0xfc, 0x6a, 0x89, 0x86, 0x3a, 0xb6, 0x9b, 0x14, 0x0d, 0x37, 0x22, 0x4f, 0x34, 0x44, 0x22, 0x62, |
|
16059 |
- 0x45, 0x03, 0x73, 0x26, 0xa1, 0x9e, 0x68, 0x04, 0xa9, 0x3b, 0x86, 0x68, 0xa8, 0xb8, 0x14, 0xec, |
|
16060 |
- 0x6a, 0x06, 0x2e, 0xb9, 0xa2, 0x31, 0xf5, 0xea, 0x76, 0x45, 0x23, 0x18, 0x4d, 0xed, 0xd7, 0xb7, |
|
16061 |
- 0x21, 0xb7, 0x2f, 0xee, 0x39, 0x89, 0x01, 0x39, 0xbc, 0x42, 0x24, 0x9a, 0x2a, 0xa8, 0xe0, 0xb5, |
|
16062 |
- 0x64, 0xf9, 0x5e, 0x2c, 0x06, 0x45, 0xe9, 0xd6, 0xdf, 0xff, 0xfc, 0xff, 0x3f, 0xa4, 0xd7, 0x60, |
|
16063 |
- 0x95, 0x83, 0xbe, 0x8d, 0xdb, 0x47, 0x62, 0xc2, 0xb2, 0x7b, 0x07, 0x45, 0xbe, 0x39, 0xce, 0xcd, |
|
16064 |
- 0x5d, 0xf9, 0x7e, 0x02, 0x2a, 0xde, 0xa1, 0x05, 0xe0, 0x5d, 0x01, 0x91, 0xfb, 0xd1, 0x05, 0x3f, |
|
16065 |
- 0xff, 0x08, 0x1f, 0x24, 0xc1, 0x12, 0x7d, 0x7a, 0x57, 0x3c, 0x6a, 0x9f, 0x23, 0x57, 0x4a, 0x6a, |
|
16066 |
- 0x9f, 0x8a, 0x9b, 0xa2, 0x08, 0x9f, 0x22, 0x87, 0xaf, 0x9b, 0x76, 0x27, 0x32, 0x87, 0xbe, 0x2b, |
|
16067 |
- 0x9e, 0xc8, 0x1c, 0x06, 0x2e, 0x73, 0xe2, 0x73, 0xc8, 0x8b, 0xf4, 0xd1, 0x39, 0xf4, 0x5f, 0x98, |
|
16068 |
- 0x44, 0xe7, 0x30, 0x50, 0xe9, 0x4f, 0x9c, 0x4f, 0x3e, 0xbc, 0x98, 0xf9, 0xf4, 0x8f, 0xf0, 0x41, |
|
16069 |
- 0x12, 0x2c, 0xd1, 0xa7, 0x57, 0x3b, 0x57, 0xfb, 0x1c, 0xa9, 0xe3, 0xab, 0x7d, 0x8e, 0x96, 0xe0, |
|
16070 |
- 0xa3, 0x7c, 0x7e, 0x06, 0x2b, 0xfe, 0xba, 0x1f, 0x79, 0x38, 0x66, 0x21, 0xb3, 0x5c, 0x49, 0x06, |
|
16071 |
- 0xc6, 0x7b, 0xfe, 0x25, 0xac, 0x06, 0x6e, 0x39, 0x88, 0xb2, 0x47, 0xd5, 0xad, 0x4a, 0xf9, 0xd1, |
|
16072 |
- 0x18, 0xc8, 0x44, 0xe7, 0x81, 0x22, 0xb9, 0xda, 0xb9, 0xaa, 0x2c, 0xaf, 0x76, 0xae, 0xac, 0xb8, |
|
16073 |
- 0xc7, 0x38, 0x0f, 0xd4, 0xc2, 0xd5, 0xce, 0x55, 0x45, 0x77, 0xb5, 0x73, 0x75, 0x61, 0x3d, 0x96, |
|
16074 |
- 0x64, 0x58, 0x3f, 0x8a, 0x24, 0x59, 0xb0, 0xe6, 0x18, 0x49, 0xb2, 0x70, 0x01, 0x31, 0x9e, 0x64, |
|
16075 |
- 0xb2, 0xd8, 0x15, 0x4d, 0xb2, 0x50, 0x85, 0x2e, 0x9a, 0x64, 0xe1, 0xba, 0x59, 0x22, 0xc9, 0xe4, |
|
16076 |
- 0x80, 0x63, 0x48, 0x16, 0x1a, 0xf3, 0xa3, 0x31, 0x90, 0x63, 0xe6, 0x39, 0xd6, 0xb9, 0xaa, 0xc8, |
|
16077 |
- 0x1b, 0x97, 0xe7, 0x31, 0x9d, 0x8b, 0x3c, 0xe3, 0x69, 0x3f, 0x32, 0xcf, 0xc1, 0x3a, 0x4a, 0x64, |
|
16078 |
- 0x9e, 0x43, 0xa5, 0x86, 0x84, 0x3c, 0xcb, 0x42, 0x54, 0x74, 0x9e, 0x43, 0xd5, 0xb3, 0xe8, 0x3c, |
|
16079 |
- 0x87, 0x6b, 0x5a, 0x89, 0xeb, 0x59, 0x0e, 0x38, 0x66, 0x3d, 0x87, 0xc6, 0xfc, 0x68, 0x0c, 0x64, |
|
16080 |
- 0xe2, 0xc7, 0xc9, 0x2d, 0x81, 0xa8, 0x3f, 0x4e, 0xe1, 0x02, 0x4b, 0xf9, 0x7e, 0x02, 0x2a, 0x71, |
|
16081 |
- 0x9e, 0xfd, 0xf5, 0x06, 0xf5, 0x3c, 0x2b, 0x6a, 0x29, 0xe5, 0x4a, 0x32, 0x30, 0xde, 0xf3, 0x00, |
|
16082 |
- 0x0a, 0xbe, 0x53, 0x33, 0x79, 0x30, 0xde, 0x41, 0xbf, 0xfc, 0x30, 0x11, 0x97, 0x38, 0x60, 0xff, |
|
16083 |
- 0xa1, 0x58, 0x3d, 0x60, 0xc5, 0x09, 0xbc, 0x5c, 0x49, 0x06, 0x26, 0x7a, 0xf6, 0x1f, 0x80, 0xd5, |
|
16084 |
- 0x9e, 0x15, 0x87, 0xec, 0x72, 0x25, 0x19, 0x38, 0x0e, 0xab, 0xc4, 0x16, 0x3a, 0x92, 0x55, 0x81, |
|
16085 |
- 0x3d, 0x7a, 0x24, 0xab, 0x82, 0xfb, 0xf0, 0x44, 0x56, 0xa1, 0xcf, 0x18, 0x56, 0x05, 0xdd, 0x56, |
|
16086 |
- 0x92, 0x81, 0x63, 0xb1, 0x0a, 0x8f, 0x55, 0xd1, 0xac, 0x0a, 0x9e, 0x04, 0xa3, 0x59, 0x15, 0x3a, |
|
16087 |
- 0x9f, 0x25, 0xb2, 0x2a, 0x6e, 0xc0, 0x8a, 0x23, 0x5a, 0x1c, 0xab, 0xc6, 0x9e, 0x6a, 0xff, 0x09, |
|
16088 |
- 0x29, 0x8e, 0x55, 0x63, 0x78, 0x56, 0x1d, 0xb6, 0x22, 0x3c, 0xef, 0x95, 0xde, 0x7e, 0xb1, 0xbd, |
|
16089 |
- 0xf0, 0xcf, 0x2f, 0xb6, 0x17, 0x7e, 0x35, 0xdc, 0x4e, 0xbd, 0x1d, 0x6e, 0xa7, 0xfe, 0x31, 0xdc, |
|
16090 |
- 0x4e, 0xfd, 0x7b, 0xb8, 0x9d, 0x3a, 0x5d, 0xe2, 0xff, 0x12, 0xfa, 0xe4, 0xcb, 0x00, 0x00, 0x00, |
|
16091 |
- 0xff, 0xff, 0x69, 0xfa, 0x48, 0xde, 0x8b, 0x2a, 0x00, 0x00, |
|
15959 |
+ // 2137 bytes of a gzipped FileDescriptorProto |
|
15960 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0x4f, 0x73, 0x1b, 0x49, |
|
15961 |
+ 0x15, 0xb7, 0xfe, 0xd8, 0x92, 0x9f, 0x6c, 0xd9, 0xee, 0x38, 0xa0, 0x52, 0x82, 0x9d, 0x9a, 0x90, |
|
15962 |
+ 0x44, 0xd9, 0x32, 0x12, 0xab, 0xb0, 0x6c, 0x58, 0x8a, 0x3f, 0x6b, 0x3b, 0x9b, 0xd5, 0x7a, 0xe3, |
|
15963 |
+ 0xa4, 0xc6, 0xc9, 0x16, 0x37, 0x95, 0x2c, 0xb5, 0xbd, 0x13, 0xc9, 0x1a, 0x31, 0x33, 0xf2, 0xae, |
|
15964 |
+ 0x8b, 0x0b, 0x50, 0xcb, 0x81, 0x0f, 0x40, 0x15, 0x57, 0xae, 0x1c, 0x38, 0x70, 0xe2, 0xc0, 0x07, |
|
15965 |
+ 0x48, 0x71, 0xe2, 0xc8, 0xc9, 0xb0, 0xaa, 0x82, 0xe2, 0xc4, 0x67, 0xa0, 0xba, 0xfb, 0xf5, 0xfc, |
|
15966 |
+ 0x53, 0xcf, 0x8c, 0x24, 0xab, 0xca, 0x39, 0x59, 0xd3, 0xf3, 0x7b, 0xfd, 0x5e, 0xf7, 0xfb, 0xf5, |
|
15967 |
+ 0x6f, 0xba, 0x5f, 0x1b, 0x76, 0x4e, 0x0d, 0xe7, 0xf3, 0xe1, 0x71, 0xb5, 0x6d, 0x9e, 0xd5, 0x3a, |
|
15968 |
+ 0x66, 0xbb, 0x4b, 0xad, 0x9a, 0xfd, 0x45, 0xcb, 0x3a, 0xeb, 0x1a, 0x4e, 0xad, 0x35, 0x30, 0x6a, |
|
15969 |
+ 0x6d, 0xb3, 0xef, 0x58, 0x66, 0xaf, 0x3a, 0xb0, 0x4c, 0xc7, 0x24, 0x44, 0x40, 0xaa, 0x12, 0x52, |
|
15970 |
+ 0x3d, 0x7f, 0xb7, 0xfc, 0x4e, 0x42, 0x0f, 0xf6, 0x80, 0xb6, 0x6d, 0x61, 0x5f, 0x4e, 0xf2, 0x66, |
|
15971 |
+ 0x1e, 0xbf, 0xa6, 0x6d, 0x47, 0xa2, 0x93, 0x7a, 0x76, 0x2e, 0x06, 0x54, 0x62, 0x37, 0x4f, 0xcd, |
|
15972 |
+ 0x53, 0x93, 0xff, 0xac, 0xb1, 0x5f, 0xd8, 0xfa, 0x7e, 0x4c, 0x0f, 0x1c, 0x71, 0x3c, 0x3c, 0xa9, |
|
15973 |
+ 0x0d, 0x7a, 0xc3, 0x53, 0xa3, 0x8f, 0x7f, 0x84, 0xa1, 0xf6, 0x1e, 0x14, 0x9f, 0x52, 0xe7, 0xd0, |
|
15974 |
+ 0xec, 0x50, 0x9d, 0xfe, 0x7c, 0x48, 0x6d, 0x87, 0xdc, 0x85, 0x5c, 0xdf, 0xec, 0xd0, 0xa6, 0xd1, |
|
15975 |
+ 0x29, 0xa5, 0xee, 0xa4, 0x2a, 0xcb, 0xbb, 0x30, 0xba, 0xdc, 0x5e, 0x62, 0x88, 0xc6, 0xbe, 0xbe, |
|
15976 |
+ 0xc4, 0x5e, 0x35, 0x3a, 0xda, 0x4f, 0x60, 0xcd, 0x35, 0xb3, 0x07, 0x66, 0xdf, 0xa6, 0x64, 0x07, |
|
15977 |
+ 0xb2, 0xec, 0x25, 0x37, 0x2a, 0xd4, 0x4b, 0xd5, 0xf1, 0x19, 0xac, 0x72, 0x3c, 0x47, 0x69, 0xff, |
|
15978 |
+ 0xc9, 0xc0, 0xfa, 0xa7, 0x86, 0xcd, 0xbb, 0xb0, 0xa5, 0xeb, 0x8f, 0x20, 0x77, 0x62, 0xf4, 0x1c, |
|
15979 |
+ 0x6a, 0xd9, 0xd8, 0xcb, 0x8e, 0xaa, 0x97, 0xb0, 0x59, 0xf5, 0x23, 0x61, 0xa3, 0x4b, 0xe3, 0xf2, |
|
15980 |
+ 0x6f, 0x33, 0x90, 0xc3, 0x46, 0xb2, 0x09, 0x8b, 0xfd, 0xd6, 0x19, 0x65, 0x3d, 0x66, 0x2a, 0xcb, |
|
15981 |
+ 0xba, 0x78, 0x20, 0x35, 0x28, 0x18, 0x9d, 0xe6, 0xc0, 0xa2, 0x27, 0xc6, 0x97, 0xd4, 0x2e, 0xa5, |
|
15982 |
+ 0xd9, 0xbb, 0xdd, 0xe2, 0xe8, 0x72, 0x1b, 0x1a, 0xfb, 0x2f, 0xb0, 0x55, 0x07, 0xa3, 0x23, 0x7f, |
|
15983 |
+ 0x93, 0x17, 0xb0, 0xd4, 0x6b, 0x1d, 0xd3, 0x9e, 0x5d, 0xca, 0xdc, 0xc9, 0x54, 0x0a, 0xf5, 0xc7, |
|
15984 |
+ 0xd3, 0x44, 0x56, 0xfd, 0x94, 0x9b, 0x3e, 0xe9, 0x3b, 0xd6, 0x85, 0x8e, 0xfd, 0x90, 0x67, 0x50, |
|
15985 |
+ 0x38, 0xa3, 0x67, 0xc7, 0xd4, 0xb2, 0x3f, 0x37, 0x06, 0x76, 0x29, 0x7b, 0x27, 0x53, 0x29, 0xd6, |
|
15986 |
+ 0x1f, 0x44, 0x4d, 0xdb, 0xd1, 0x80, 0xb6, 0xab, 0xcf, 0x5c, 0xfc, 0x6e, 0x7a, 0x7d, 0x41, 0xf7, |
|
15987 |
+ 0xdb, 0x93, 0xef, 0xc3, 0xa2, 0x65, 0xf6, 0xa8, 0x5d, 0x5a, 0xe4, 0x1d, 0xdd, 0x8e, 0x9c, 0x7f, |
|
15988 |
+ 0xb3, 0x47, 0xb9, 0xb5, 0x80, 0x93, 0xbb, 0xb0, 0xca, 0xa6, 0xc4, 0x9b, 0x8b, 0x25, 0x3e, 0x4f, |
|
15989 |
+ 0x2b, 0xac, 0x51, 0x8e, 0xbe, 0xfc, 0x03, 0x28, 0xf8, 0x86, 0x40, 0xd6, 0x21, 0xd3, 0xa5, 0x17, |
|
15990 |
+ 0x82, 0x1e, 0x3a, 0xfb, 0xc9, 0x66, 0xf9, 0xbc, 0xd5, 0x1b, 0xd2, 0x52, 0x9a, 0xb7, 0x89, 0x87, |
|
15991 |
+ 0x0f, 0xd2, 0x8f, 0x53, 0xda, 0x1e, 0x6c, 0xf8, 0xa6, 0x05, 0xb9, 0x52, 0x85, 0x45, 0xc6, 0x02, |
|
15992 |
+ 0x91, 0x94, 0x38, 0xb2, 0x08, 0x98, 0xf6, 0xc7, 0x14, 0x6c, 0xbc, 0x1a, 0x74, 0x5a, 0x0e, 0x9d, |
|
15993 |
+ 0x96, 0xa9, 0xe4, 0xc7, 0xb0, 0xc2, 0x41, 0xe7, 0xd4, 0xb2, 0x0d, 0xb3, 0xcf, 0x03, 0x2c, 0xd4, |
|
15994 |
+ 0x6f, 0xa9, 0x3c, 0x7e, 0x26, 0x20, 0x7a, 0x81, 0x19, 0xe0, 0x03, 0xf9, 0x2e, 0x64, 0xd9, 0xc2, |
|
15995 |
+ 0x2e, 0x65, 0xb8, 0xdd, 0xed, 0xb8, 0xfc, 0xe8, 0x1c, 0xa9, 0xed, 0x02, 0xf1, 0xc7, 0x3a, 0xd3, |
|
15996 |
+ 0xf2, 0x38, 0x84, 0x0d, 0x9d, 0x9e, 0x99, 0xe7, 0xd3, 0x8f, 0x77, 0x13, 0x16, 0x4f, 0x4c, 0xab, |
|
15997 |
+ 0x2d, 0x32, 0x91, 0xd7, 0xc5, 0x83, 0xb6, 0x09, 0xc4, 0xdf, 0x9f, 0x88, 0x09, 0x17, 0xff, 0xcb, |
|
15998 |
+ 0x96, 0xdd, 0xf5, 0xb9, 0x70, 0x5a, 0x76, 0x37, 0xe4, 0x82, 0x21, 0x98, 0x0b, 0xf6, 0xca, 0x5d, |
|
15999 |
+ 0xfc, 0xc2, 0xcc, 0x1b, 0x1d, 0x7b, 0x19, 0x37, 0x3a, 0x8e, 0xe7, 0x28, 0xed, 0xb1, 0x1c, 0xdd, |
|
16000 |
+ 0xd4, 0xae, 0xdd, 0x71, 0xf8, 0xbd, 0x6b, 0x7f, 0xcd, 0x0a, 0x31, 0x61, 0x8d, 0x33, 0x88, 0x89, |
|
16001 |
+ 0xdf, 0x6c, 0x5c, 0x4c, 0xfe, 0x79, 0x8d, 0x62, 0xa2, 0x8a, 0x4c, 0x29, 0x26, 0x35, 0x28, 0xd8, |
|
16002 |
+ 0xd4, 0x3a, 0x37, 0xda, 0x8c, 0x1d, 0x42, 0x4c, 0x30, 0x84, 0x23, 0xd1, 0xdc, 0xd8, 0xb7, 0x75, |
|
16003 |
+ 0x40, 0x48, 0xa3, 0x63, 0x93, 0xfb, 0x90, 0x47, 0x2e, 0x09, 0xc5, 0x58, 0xde, 0x2d, 0x8c, 0x2e, |
|
16004 |
+ 0xb7, 0x73, 0x82, 0x4c, 0xb6, 0x9e, 0x13, 0x6c, 0xb2, 0xc9, 0xc7, 0x50, 0xec, 0x50, 0xdb, 0xb0, |
|
16005 |
+ 0x68, 0xa7, 0x69, 0x3b, 0x2d, 0x07, 0xf5, 0xa1, 0x58, 0xff, 0x56, 0x54, 0x8a, 0x8f, 0x18, 0x8a, |
|
16006 |
+ 0x0b, 0xcc, 0x2a, 0x1a, 0xf2, 0x16, 0x85, 0xd0, 0xe4, 0xc6, 0x85, 0x86, 0xdc, 0x06, 0x18, 0x0e, |
|
16007 |
+ 0x9a, 0x8e, 0xd9, 0x64, 0xeb, 0xa7, 0x94, 0xe7, 0x14, 0xce, 0x0f, 0x07, 0x2f, 0xcd, 0xfd, 0x96, |
|
16008 |
+ 0x43, 0x49, 0x19, 0xf2, 0xd6, 0xb0, 0xef, 0x18, 0x2c, 0x03, 0xcb, 0xdc, 0xda, 0x7d, 0x9e, 0x83, |
|
16009 |
+ 0x44, 0xe1, 0x64, 0x7b, 0x12, 0xc5, 0x38, 0x17, 0x2b, 0x51, 0x9c, 0x84, 0x02, 0xa6, 0x1d, 0xc0, |
|
16010 |
+ 0xe6, 0x9e, 0x45, 0x5b, 0x0e, 0xc5, 0x09, 0x97, 0x34, 0x7c, 0x84, 0xfa, 0x21, 0x38, 0xb8, 0xad, |
|
16011 |
+ 0xea, 0x06, 0x2d, 0x7c, 0x12, 0x72, 0x08, 0x37, 0x43, 0x9d, 0x61, 0x54, 0xef, 0x41, 0x0e, 0x93, |
|
16012 |
+ 0x88, 0x1d, 0xde, 0x8a, 0xe9, 0x50, 0x97, 0x58, 0xed, 0x35, 0x6c, 0x3c, 0xa5, 0x4e, 0x28, 0xb2, |
|
16013 |
+ 0x1d, 0x00, 0x8f, 0x33, 0xb8, 0xe6, 0x56, 0x47, 0x97, 0xdb, 0xcb, 0x2e, 0x65, 0xf4, 0x65, 0x97, |
|
16014 |
+ 0x31, 0xe4, 0x01, 0xac, 0x19, 0x7d, 0x9b, 0x5a, 0x4e, 0xb3, 0x43, 0x4f, 0x5a, 0xc3, 0x9e, 0x63, |
|
16015 |
+ 0xa3, 0xc2, 0x14, 0x45, 0xf3, 0x3e, 0xb6, 0x6a, 0x07, 0x40, 0xfc, 0xbe, 0xae, 0x16, 0xf8, 0x9f, |
|
16016 |
+ 0xd3, 0xb0, 0x29, 0xc4, 0xf4, 0x4a, 0xc1, 0xef, 0xc3, 0x9a, 0x44, 0x4f, 0xf1, 0x1d, 0x28, 0xa2, |
|
16017 |
+ 0x8d, 0xfc, 0x14, 0x3c, 0x0a, 0x7c, 0x0a, 0x26, 0x4b, 0x25, 0x79, 0x06, 0x79, 0xcb, 0xec, 0xf5, |
|
16018 |
+ 0x8e, 0x5b, 0xed, 0x6e, 0x29, 0x7b, 0x27, 0x55, 0x29, 0xd6, 0xdf, 0x55, 0x19, 0xaa, 0x06, 0x59, |
|
16019 |
+ 0xd5, 0xd1, 0x50, 0x77, 0xbb, 0xd0, 0x34, 0xc8, 0xcb, 0x56, 0x92, 0x87, 0xec, 0xe1, 0xf3, 0xc3, |
|
16020 |
+ 0x27, 0xeb, 0x0b, 0x64, 0x05, 0xf2, 0x2f, 0xf4, 0x27, 0x9f, 0x35, 0x9e, 0xbf, 0x3a, 0x5a, 0x4f, |
|
16021 |
+ 0x31, 0xf6, 0x84, 0xba, 0xbb, 0x5a, 0x12, 0xf6, 0x61, 0x53, 0x88, 0xee, 0x55, 0x72, 0xa0, 0x7d, |
|
16022 |
+ 0x13, 0x6e, 0x86, 0x7a, 0x41, 0xf5, 0xfe, 0x2a, 0x03, 0x37, 0xd8, 0xfa, 0xc3, 0x76, 0x57, 0xc0, |
|
16023 |
+ 0x1b, 0x61, 0x01, 0xaf, 0x45, 0xc9, 0x64, 0xc8, 0x72, 0x5c, 0xc3, 0xff, 0x90, 0x9e, 0xbb, 0x86, |
|
16024 |
+ 0x1f, 0x85, 0x34, 0xfc, 0x87, 0x53, 0x06, 0xa7, 0x94, 0xf1, 0x31, 0x8d, 0xcc, 0x2a, 0x34, 0xd2, |
|
16025 |
+ 0xaf, 0x82, 0x8b, 0xf3, 0x53, 0xc1, 0xe7, 0xb0, 0x19, 0x0c, 0x17, 0x49, 0xf3, 0x3e, 0xe4, 0x31, |
|
16026 |
+ 0x89, 0x52, 0x0b, 0x63, 0x59, 0xe3, 0x82, 0x3d, 0x45, 0x3c, 0xa4, 0xce, 0x17, 0xa6, 0xd5, 0x9d, |
|
16027 |
+ 0x42, 0x11, 0xd1, 0x42, 0xa5, 0x88, 0x6e, 0x67, 0x1e, 0xa7, 0xfb, 0xa2, 0x29, 0x8e, 0xd3, 0xd2, |
|
16028 |
+ 0x4a, 0x62, 0xb5, 0x57, 0x5c, 0x11, 0x43, 0x91, 0x11, 0xc8, 0xb2, 0x99, 0xc6, 0xf9, 0xe2, 0xbf, |
|
16029 |
+ 0x19, 0xc9, 0xd1, 0x86, 0x91, 0x3c, 0xed, 0x91, 0x1c, 0x6d, 0x19, 0xc9, 0x11, 0xd0, 0xe8, 0xa0, |
|
16030 |
+ 0xf8, 0xcd, 0x29, 0xc6, 0x9f, 0xc9, 0x75, 0x37, 0xf7, 0x30, 0xdd, 0xb5, 0x18, 0x8a, 0x54, 0xfb, |
|
16031 |
+ 0x6f, 0x5a, 0xac, 0x45, 0x6c, 0x9f, 0x61, 0x2d, 0x86, 0x2c, 0xc7, 0xd7, 0xe2, 0x6f, 0xae, 0x71, |
|
16032 |
+ 0x2d, 0x46, 0x04, 0x37, 0xf3, 0x5a, 0x9c, 0xc3, 0x7a, 0xf3, 0x42, 0xf2, 0xd6, 0x1b, 0x26, 0x2a, |
|
16033 |
+ 0x76, 0xbd, 0xc9, 0xcc, 0xb9, 0x60, 0xed, 0x43, 0x4e, 0xe9, 0xbd, 0xde, 0xd0, 0x76, 0xa8, 0xe5, |
|
16034 |
+ 0xd3, 0xe8, 0xb6, 0x68, 0x09, 0x69, 0x34, 0xe2, 0x18, 0x2f, 0x10, 0xe0, 0xd2, 0xd7, 0xed, 0xc2, |
|
16035 |
+ 0xa3, 0x2f, 0x42, 0xe2, 0xe8, 0x2b, 0xad, 0x24, 0xd6, 0xe5, 0x12, 0xbe, 0x98, 0x81, 0x4b, 0x21, |
|
16036 |
+ 0xcb, 0xb7, 0x8b, 0x4b, 0x11, 0xc1, 0x5d, 0x27, 0x97, 0xbc, 0x90, 0x3c, 0x2e, 0x61, 0x36, 0x62, |
|
16037 |
+ 0xb9, 0x24, 0x53, 0xe7, 0x82, 0xb5, 0xdf, 0xa5, 0xa0, 0x70, 0x40, 0x2f, 0x74, 0xd3, 0x69, 0x39, |
|
16038 |
+ 0x6c, 0xeb, 0xf3, 0x0e, 0x6c, 0x30, 0x92, 0x51, 0xab, 0xf9, 0xda, 0x34, 0xfa, 0x4d, 0xc7, 0xec, |
|
16039 |
+ 0xd2, 0x3e, 0x0f, 0x2d, 0xaf, 0xaf, 0x89, 0x17, 0x9f, 0x98, 0x46, 0xff, 0x25, 0x6b, 0x26, 0x3b, |
|
16040 |
+ 0x40, 0xce, 0x5a, 0xfd, 0xd6, 0x69, 0x10, 0x2c, 0x36, 0x8b, 0xeb, 0xf8, 0x46, 0x89, 0x1e, 0xf6, |
|
16041 |
+ 0x7b, 0x66, 0xbb, 0xdb, 0x64, 0xa3, 0xce, 0x04, 0xd0, 0xaf, 0xf8, 0x8b, 0x03, 0x7a, 0xa1, 0xfd, |
|
16042 |
+ 0xda, 0xdd, 0x0f, 0x5e, 0x85, 0xe7, 0x6c, 0x3f, 0x28, 0xd1, 0xd3, 0xec, 0x07, 0xd1, 0x66, 0x8a, |
|
16043 |
+ 0xfd, 0x20, 0x7a, 0xf7, 0xed, 0x07, 0x3f, 0x64, 0xfb, 0x41, 0x31, 0xab, 0x7c, 0x3f, 0x18, 0x61, |
|
16044 |
+ 0xe8, 0x9b, 0xfc, 0xdd, 0xec, 0x9b, 0xcb, 0xed, 0x05, 0xdd, 0x35, 0xf3, 0xf6, 0x77, 0x73, 0x5a, |
|
16045 |
+ 0xa8, 0x3f, 0x82, 0x75, 0xbe, 0x63, 0x6f, 0x5b, 0xd4, 0x91, 0xf3, 0xf9, 0x10, 0x96, 0x6d, 0xde, |
|
16046 |
+ 0xe0, 0x4d, 0xe7, 0xca, 0xe8, 0x72, 0x3b, 0x2f, 0x50, 0x8d, 0x7d, 0xf6, 0x9d, 0xe7, 0xbf, 0x3a, |
|
16047 |
+ 0xda, 0x53, 0x3c, 0x5c, 0x08, 0x73, 0x0c, 0xa5, 0x0e, 0x4b, 0x02, 0x80, 0x91, 0x94, 0xd5, 0x7b, |
|
16048 |
+ 0x06, 0x6e, 0x83, 0x48, 0xed, 0x2f, 0x29, 0xb8, 0x21, 0x37, 0xae, 0xb3, 0xc5, 0x42, 0x76, 0xa1, |
|
16049 |
+ 0x88, 0xd0, 0x29, 0xf2, 0xba, 0x2a, 0x4c, 0x64, 0x5a, 0xeb, 0x81, 0xb4, 0x6e, 0x45, 0x07, 0xee, |
|
16050 |
+ 0xdb, 0x9e, 0x7c, 0xe2, 0x1d, 0x53, 0xae, 0x3c, 0x0d, 0xff, 0x4e, 0x03, 0x11, 0x3b, 0x31, 0xf6, |
|
16051 |
+ 0xe8, 0xca, 0xe6, 0xc7, 0x61, 0xd9, 0xac, 0x46, 0xef, 0x38, 0xfd, 0x86, 0xe3, 0xaa, 0xf9, 0xd5, |
|
16052 |
+ 0xfc, 0x55, 0x53, 0x0f, 0xa9, 0xe6, 0x07, 0xd3, 0xc5, 0x76, 0x2d, 0xa2, 0x79, 0x20, 0x8f, 0x1d, |
|
16053 |
+ 0x18, 0x11, 0xa6, 0xec, 0x7b, 0xec, 0x90, 0xc4, 0x9b, 0x50, 0x32, 0xe3, 0x72, 0x26, 0xa1, 0x5a, |
|
16054 |
+ 0x03, 0x6e, 0xc8, 0x13, 0xbb, 0x9f, 0xba, 0xf5, 0xc0, 0x5e, 0x77, 0x62, 0x2e, 0x05, 0xbb, 0xba, |
|
16055 |
+ 0x02, 0x97, 0x7e, 0x0a, 0x37, 0xe4, 0xa1, 0x6b, 0xc6, 0xd5, 0xfd, 0x0d, 0xef, 0xf0, 0xe7, 0x8f, |
|
16056 |
+ 0x06, 0x45, 0x63, 0xcf, 0xec, 0x9f, 0x18, 0xa7, 0xbe, 0x6e, 0xdb, 0xbc, 0x21, 0xd4, 0xad, 0x40, |
|
16057 |
+ 0xb1, 0x6e, 0xc5, 0x6b, 0x57, 0x34, 0xa4, 0xb9, 0x37, 0x42, 0x01, 0x88, 0x1b, 0x21, 0xda, 0x20, |
|
16058 |
+ 0xd2, 0x27, 0x1a, 0xb3, 0xc6, 0xc2, 0x44, 0x03, 0xa1, 0xd3, 0x88, 0x86, 0x30, 0x99, 0x42, 0x34, |
|
16059 |
+ 0x84, 0x67, 0x95, 0x68, 0xcc, 0x61, 0x1a, 0xa4, 0x68, 0x88, 0xe6, 0x19, 0x44, 0x23, 0x68, 0xf8, |
|
16060 |
+ 0x76, 0x89, 0x86, 0x3a, 0xb6, 0xeb, 0x14, 0x0d, 0x37, 0x22, 0x4f, 0x34, 0x44, 0x22, 0x62, 0x45, |
|
16061 |
+ 0x03, 0x73, 0x26, 0xa1, 0x9e, 0x68, 0x04, 0xa9, 0x3b, 0x81, 0x68, 0xa8, 0xb8, 0x14, 0xec, 0xea, |
|
16062 |
+ 0x0a, 0x5c, 0x72, 0x45, 0x63, 0xe6, 0xd5, 0xed, 0x8a, 0x46, 0x30, 0x9a, 0xfa, 0xaf, 0x6e, 0x41, |
|
16063 |
+ 0x6e, 0x4f, 0x5c, 0xb4, 0x12, 0x03, 0x72, 0x78, 0x85, 0x48, 0x34, 0x55, 0x50, 0xc1, 0x6b, 0xc9, |
|
16064 |
+ 0xf2, 0xdd, 0x58, 0x0c, 0x8a, 0xd2, 0xcd, 0xbf, 0xfd, 0xe9, 0x7f, 0xbf, 0x4f, 0xaf, 0xc1, 0x2a, |
|
16065 |
+ 0x07, 0x7d, 0x07, 0xb7, 0x8f, 0xc4, 0x84, 0x65, 0xf7, 0x0e, 0x8a, 0x7c, 0x7b, 0x92, 0x9b, 0xbb, |
|
16066 |
+ 0xf2, 0xbd, 0x04, 0x54, 0xbc, 0x43, 0x0b, 0xc0, 0xbb, 0x02, 0x22, 0xf7, 0xa2, 0x0b, 0x7e, 0xfe, |
|
16067 |
+ 0x11, 0xde, 0x4f, 0x82, 0x25, 0xfa, 0xf4, 0xae, 0x78, 0xd4, 0x3e, 0xc7, 0xae, 0x94, 0xd4, 0x3e, |
|
16068 |
+ 0x15, 0x37, 0x45, 0x11, 0x3e, 0x45, 0x0e, 0x5f, 0xb6, 0xec, 0x6e, 0x64, 0x0e, 0x7d, 0x57, 0x3c, |
|
16069 |
+ 0x91, 0x39, 0x0c, 0x5c, 0xe6, 0xc4, 0xe7, 0x90, 0x17, 0xe9, 0xa3, 0x73, 0xe8, 0xbf, 0x30, 0x89, |
|
16070 |
+ 0xce, 0x61, 0xa0, 0xd2, 0x9f, 0x38, 0x9f, 0x7c, 0x78, 0x31, 0xf3, 0xe9, 0x1f, 0xe1, 0xfd, 0x24, |
|
16071 |
+ 0x58, 0xa2, 0x4f, 0xaf, 0x76, 0xae, 0xf6, 0x39, 0x56, 0xc7, 0x57, 0xfb, 0x1c, 0x2f, 0xc1, 0x47, |
|
16072 |
+ 0xf9, 0xfc, 0x12, 0x56, 0xfc, 0x75, 0x3f, 0xf2, 0x60, 0xc2, 0x42, 0x66, 0xb9, 0x92, 0x0c, 0x8c, |
|
16073 |
+ 0xf7, 0xfc, 0x0b, 0x58, 0x0d, 0xdc, 0x72, 0x10, 0x65, 0x8f, 0xaa, 0x5b, 0x95, 0xf2, 0xc3, 0x09, |
|
16074 |
+ 0x90, 0x89, 0xce, 0x03, 0x45, 0x72, 0xb5, 0x73, 0x55, 0x59, 0x5e, 0xed, 0x5c, 0x59, 0x71, 0x8f, |
|
16075 |
+ 0x71, 0x1e, 0xa8, 0x85, 0xab, 0x9d, 0xab, 0x8a, 0xee, 0x6a, 0xe7, 0xea, 0xc2, 0x7a, 0x2c, 0xc9, |
|
16076 |
+ 0xb0, 0x7e, 0x14, 0x49, 0xb2, 0x60, 0xcd, 0x31, 0x92, 0x64, 0xe1, 0x02, 0x62, 0x3c, 0xc9, 0x64, |
|
16077 |
+ 0xb1, 0x2b, 0x9a, 0x64, 0xa1, 0x0a, 0x5d, 0x34, 0xc9, 0xc2, 0x75, 0xb3, 0x44, 0x92, 0xc9, 0x01, |
|
16078 |
+ 0xc7, 0x90, 0x2c, 0x34, 0xe6, 0x87, 0x13, 0x20, 0x27, 0xcc, 0x73, 0xac, 0x73, 0x55, 0x91, 0x37, |
|
16079 |
+ 0x2e, 0xcf, 0x13, 0x3a, 0x17, 0x79, 0xc6, 0xd3, 0x7e, 0x64, 0x9e, 0x83, 0x75, 0x94, 0xc8, 0x3c, |
|
16080 |
+ 0x87, 0x4a, 0x0d, 0x09, 0x79, 0x96, 0x85, 0xa8, 0xe8, 0x3c, 0x87, 0xaa, 0x67, 0xd1, 0x79, 0x0e, |
|
16081 |
+ 0xd7, 0xb4, 0x12, 0xd7, 0xb3, 0x1c, 0x70, 0xcc, 0x7a, 0x0e, 0x8d, 0xf9, 0xe1, 0x04, 0xc8, 0xc4, |
|
16082 |
+ 0x8f, 0x93, 0x5b, 0x02, 0x51, 0x7f, 0x9c, 0xc2, 0x05, 0x96, 0xf2, 0xbd, 0x04, 0x54, 0xe2, 0x3c, |
|
16083 |
+ 0xfb, 0xeb, 0x0d, 0xea, 0x79, 0x56, 0xd4, 0x52, 0xca, 0x95, 0x64, 0x60, 0xbc, 0xe7, 0x21, 0x14, |
|
16084 |
+ 0x7c, 0xa7, 0x66, 0x72, 0x7f, 0xb2, 0x83, 0x7e, 0xf9, 0x41, 0x22, 0x2e, 0x71, 0xc0, 0xfe, 0x43, |
|
16085 |
+ 0xb1, 0x7a, 0xc0, 0x8a, 0x13, 0x78, 0xb9, 0x92, 0x0c, 0x4c, 0xf4, 0xec, 0x3f, 0x00, 0xab, 0x3d, |
|
16086 |
+ 0x2b, 0x0e, 0xd9, 0xe5, 0x4a, 0x32, 0x70, 0x12, 0x56, 0x89, 0x2d, 0x74, 0x24, 0xab, 0x02, 0x7b, |
|
16087 |
+ 0xf4, 0x48, 0x56, 0x05, 0xf7, 0xe1, 0x89, 0xac, 0x42, 0x9f, 0x31, 0xac, 0x0a, 0xba, 0xad, 0x24, |
|
16088 |
+ 0x03, 0x27, 0x62, 0x15, 0x1e, 0xab, 0xa2, 0x59, 0x15, 0x3c, 0x09, 0x46, 0xb3, 0x2a, 0x74, 0x3e, |
|
16089 |
+ 0x4b, 0x64, 0x55, 0xdc, 0x80, 0x15, 0x47, 0xb4, 0x38, 0x56, 0x4d, 0x3c, 0xd5, 0xfe, 0x13, 0x52, |
|
16090 |
+ 0x1c, 0xab, 0x26, 0xf0, 0xac, 0x3a, 0x6c, 0x45, 0x78, 0xde, 0x2d, 0xbd, 0xf9, 0x7a, 0x6b, 0xe1, |
|
16091 |
+ 0x1f, 0x5f, 0x6f, 0x2d, 0xfc, 0x72, 0xb4, 0x95, 0x7a, 0x33, 0xda, 0x4a, 0xfd, 0x7d, 0xb4, 0x95, |
|
16092 |
+ 0xfa, 0xd7, 0x68, 0x2b, 0x75, 0xbc, 0xc4, 0xff, 0x25, 0xf4, 0xd1, 0xff, 0x03, 0x00, 0x00, 0xff, |
|
16093 |
+ 0xff, 0x47, 0x18, 0x50, 0x6c, 0x2b, 0x2b, 0x00, 0x00, |
|
16092 | 16094 |
} |
... | ... |
@@ -2,11 +2,11 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "specs.proto"; |
|
6 |
-import "objects.proto"; |
|
7 |
-import "types.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/specs.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/objects.proto"; |
|
7 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
8 | 8 |
import "gogoproto/gogo.proto"; |
9 |
-import "plugin/plugin.proto"; |
|
9 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
10 | 10 |
|
11 | 11 |
// Control defines the RPC methods for controlling a cluster. |
12 | 12 |
service Control { |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: dispatcher.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/dispatcher.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -1100,7 +1100,7 @@ var _Dispatcher_serviceDesc = grpc.ServiceDesc{ |
1100 | 1100 |
ServerStreams: true, |
1101 | 1101 |
}, |
1102 | 1102 |
}, |
1103 |
- Metadata: "dispatcher.proto", |
|
1103 |
+ Metadata: "github.com/docker/swarmkit/api/dispatcher.proto", |
|
1104 | 1104 |
} |
1105 | 1105 |
|
1106 | 1106 |
func (m *SessionRequest) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -3778,70 +3778,73 @@ var ( |
3778 | 3778 |
ErrIntOverflowDispatcher = fmt.Errorf("proto: integer overflow") |
3779 | 3779 |
) |
3780 | 3780 |
|
3781 |
-func init() { proto.RegisterFile("dispatcher.proto", fileDescriptorDispatcher) } |
|
3781 |
+func init() { |
|
3782 |
+ proto.RegisterFile("github.com/docker/swarmkit/api/dispatcher.proto", fileDescriptorDispatcher) |
|
3783 |
+} |
|
3782 | 3784 |
|
3783 | 3785 |
var fileDescriptorDispatcher = []byte{ |
3784 |
- // 983 bytes of a gzipped FileDescriptorProto |
|
3785 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0x1b, 0x45, |
|
3786 |
- 0x14, 0xf7, 0x38, 0xce, 0x26, 0x7e, 0x4e, 0x82, 0x19, 0xaa, 0xb0, 0xac, 0x54, 0xc7, 0x6c, 0x68, |
|
3787 |
- 0x14, 0xa9, 0x61, 0x53, 0xcc, 0x9f, 0x0b, 0x51, 0x20, 0x8e, 0x2d, 0xc5, 0x6a, 0x93, 0x46, 0x13, |
|
3788 |
- 0xb7, 0x3d, 0x5a, 0x6b, 0xef, 0x74, 0xb3, 0x38, 0xde, 0x59, 0x76, 0xc6, 0x2d, 0x3e, 0x20, 0x71, |
|
3789 |
- 0xa0, 0x12, 0xe2, 0x84, 0x38, 0x45, 0x42, 0x7c, 0x05, 0xc4, 0xc7, 0x88, 0x38, 0x71, 0xe4, 0x14, |
|
3790 |
- 0xa8, 0x3f, 0x00, 0x1f, 0x80, 0x13, 0xda, 0xd9, 0x59, 0xdb, 0x75, 0xed, 0xd4, 0xc9, 0xc9, 0x9e, |
|
3791 |
- 0x37, 0xbf, 0xdf, 0x9b, 0xdf, 0xbc, 0xf7, 0xdb, 0x37, 0x90, 0x77, 0x3c, 0x1e, 0xd8, 0xa2, 0x75, |
|
3792 |
- 0x4a, 0x43, 0x2b, 0x08, 0x99, 0x60, 0x18, 0x3b, 0xac, 0xd5, 0xa6, 0xa1, 0xc5, 0x9f, 0xdb, 0x61, |
|
3793 |
- 0xa7, 0xed, 0x09, 0xeb, 0xd9, 0x47, 0x46, 0x4e, 0xf4, 0x02, 0xca, 0x63, 0x80, 0xb1, 0xcc, 0x9a, |
|
3794 |
- 0x5f, 0xd1, 0x96, 0x48, 0x96, 0xb7, 0x5c, 0xe6, 0x32, 0xf9, 0x77, 0x3b, 0xfa, 0xa7, 0xa2, 0xef, |
|
3795 |
- 0x04, 0x67, 0x5d, 0xd7, 0xf3, 0xb7, 0xe3, 0x1f, 0x15, 0x2c, 0xb8, 0x8c, 0xb9, 0x67, 0x74, 0x5b, |
|
3796 |
- 0xae, 0x9a, 0xdd, 0xa7, 0xdb, 0x4e, 0x37, 0xb4, 0x85, 0xc7, 0xd4, 0xbe, 0xf9, 0x02, 0xc1, 0xca, |
|
3797 |
- 0x09, 0xe5, 0xdc, 0x63, 0x3e, 0xa1, 0x5f, 0x77, 0x29, 0x17, 0xb8, 0x0a, 0x39, 0x87, 0xf2, 0x56, |
|
3798 |
- 0xe8, 0x05, 0x11, 0x4e, 0x47, 0x45, 0xb4, 0x99, 0x2b, 0xad, 0x5b, 0xaf, 0x6b, 0xb4, 0x8e, 0x98, |
|
3799 |
- 0x43, 0x2b, 0x43, 0x28, 0x19, 0xe5, 0xe1, 0x2d, 0x00, 0x1e, 0x27, 0x6e, 0x78, 0x8e, 0x9e, 0x2e, |
|
3800 |
- 0xa2, 0xcd, 0x6c, 0x79, 0xb9, 0x7f, 0xb9, 0x96, 0x55, 0xc7, 0xd5, 0x2a, 0x24, 0xab, 0x00, 0x35, |
|
3801 |
- 0xc7, 0xfc, 0x25, 0x3d, 0xd0, 0x71, 0x48, 0x39, 0xb7, 0x5d, 0x3a, 0x96, 0x00, 0x5d, 0x9d, 0x00, |
|
3802 |
- 0x6f, 0x41, 0xc6, 0x67, 0x0e, 0x95, 0x07, 0xe5, 0x4a, 0xfa, 0x34, 0xb9, 0x44, 0xa2, 0xf0, 0x0e, |
|
3803 |
- 0x2c, 0x76, 0x6c, 0xdf, 0x76, 0x69, 0xc8, 0xf5, 0xb9, 0xe2, 0xdc, 0x66, 0xae, 0x54, 0x9c, 0xc4, |
|
3804 |
- 0x78, 0x42, 0x3d, 0xf7, 0x54, 0x50, 0xe7, 0x98, 0xd2, 0x90, 0x0c, 0x18, 0xf8, 0x09, 0xac, 0xfa, |
|
3805 |
- 0x54, 0x3c, 0x67, 0x61, 0xbb, 0xd1, 0x64, 0x4c, 0x70, 0x11, 0xda, 0x41, 0xa3, 0x4d, 0x7b, 0x5c, |
|
3806 |
- 0xcf, 0xc8, 0x5c, 0xef, 0x4f, 0xca, 0x55, 0xf5, 0x5b, 0x61, 0x4f, 0x96, 0xe6, 0x3e, 0xed, 0x91, |
|
3807 |
- 0x5b, 0x2a, 0x41, 0x39, 0xe1, 0xdf, 0xa7, 0x3d, 0x8e, 0x57, 0x41, 0x23, 0x8c, 0x89, 0xfd, 0x3d, |
|
3808 |
- 0x7d, 0xbe, 0x88, 0x36, 0x97, 0x88, 0x5a, 0x99, 0x5f, 0x42, 0xfe, 0x80, 0xda, 0xa1, 0x68, 0x52, |
|
3809 |
- 0x5b, 0x24, 0x6d, 0xba, 0x56, 0x79, 0xcc, 0x63, 0x78, 0x7b, 0x24, 0x03, 0x0f, 0x98, 0xcf, 0x29, |
|
3810 |
- 0xfe, 0x1c, 0xb4, 0x80, 0x86, 0x1e, 0x73, 0x54, 0x93, 0xdf, 0xb3, 0x62, 0xb7, 0x58, 0x89, 0x5b, |
|
3811 |
- 0xac, 0x8a, 0x72, 0x4b, 0x79, 0xf1, 0xe2, 0x72, 0x2d, 0x75, 0xfe, 0xf7, 0x1a, 0x22, 0x8a, 0x62, |
|
3812 |
- 0xfe, 0x94, 0x86, 0x77, 0x1f, 0x05, 0x8e, 0x2d, 0x68, 0xdd, 0xe6, 0xed, 0x13, 0x61, 0x8b, 0x2e, |
|
3813 |
- 0xbf, 0x91, 0x36, 0xfc, 0x18, 0x16, 0xba, 0x32, 0x51, 0xd2, 0x8b, 0x9d, 0x49, 0xf5, 0x9b, 0x72, |
|
3814 |
- 0x96, 0x35, 0x8c, 0xc4, 0x08, 0x92, 0x24, 0x33, 0x18, 0xe4, 0xc7, 0x37, 0xf1, 0x3a, 0x2c, 0x08, |
|
3815 |
- 0x9b, 0xb7, 0x87, 0xb2, 0xa0, 0x7f, 0xb9, 0xa6, 0x45, 0xb0, 0x5a, 0x85, 0x68, 0xd1, 0x56, 0xcd, |
|
3816 |
- 0xc1, 0x9f, 0x81, 0xc6, 0x25, 0x49, 0xb9, 0xa9, 0x30, 0x49, 0xcf, 0x88, 0x12, 0x85, 0x36, 0x0d, |
|
3817 |
- 0xd0, 0x5f, 0x57, 0x19, 0xd7, 0xda, 0xdc, 0x81, 0xa5, 0x28, 0x7a, 0xb3, 0x12, 0x99, 0xbb, 0x8a, |
|
3818 |
- 0x9d, 0x7c, 0x1b, 0x16, 0xcc, 0x47, 0x5a, 0xb9, 0x8e, 0x64, 0xc1, 0xf4, 0x69, 0x02, 0x49, 0x0c, |
|
3819 |
- 0x33, 0xcb, 0x80, 0xf7, 0x38, 0xf7, 0x5c, 0xbf, 0x43, 0x7d, 0x71, 0x43, 0x0d, 0xbf, 0x23, 0x80, |
|
3820 |
- 0x61, 0x12, 0x6c, 0x41, 0x26, 0xca, 0xad, 0xac, 0x33, 0x55, 0xc1, 0x41, 0x8a, 0x48, 0x1c, 0xfe, |
|
3821 |
- 0x04, 0x34, 0x4e, 0x5b, 0x21, 0x15, 0xaa, 0xa8, 0xc6, 0x24, 0xc6, 0x89, 0x44, 0x1c, 0xa4, 0x88, |
|
3822 |
- 0xc2, 0x46, 0xac, 0x16, 0xf3, 0x9f, 0x7a, 0xae, 0x3e, 0x37, 0x9d, 0xb5, 0x2f, 0x11, 0x11, 0x2b, |
|
3823 |
- 0xc6, 0x96, 0x35, 0xc8, 0x78, 0x82, 0x76, 0xcc, 0x17, 0x69, 0xc8, 0x0f, 0x25, 0xef, 0x9f, 0xda, |
|
3824 |
- 0xbe, 0x4b, 0xf1, 0x2e, 0x80, 0x3d, 0x88, 0x29, 0xf9, 0x13, 0x3b, 0x3c, 0x64, 0x92, 0x11, 0x06, |
|
3825 |
- 0x3e, 0x04, 0xcd, 0x6e, 0xc9, 0xd1, 0x18, 0x5d, 0x64, 0xa5, 0xf4, 0xe9, 0xd5, 0xdc, 0xf8, 0xd4, |
|
3826 |
- 0x91, 0xc0, 0x9e, 0x24, 0x13, 0x95, 0xc4, 0x6c, 0x8e, 0x4a, 0x8c, 0xf7, 0xf0, 0x06, 0x68, 0x8f, |
|
3827 |
- 0x8e, 0x2b, 0x7b, 0xf5, 0x6a, 0x3e, 0x65, 0x18, 0x3f, 0xfe, 0x5a, 0x5c, 0x1d, 0x47, 0x28, 0x37, |
|
3828 |
- 0x6f, 0x80, 0x46, 0xaa, 0x87, 0x0f, 0x1f, 0x57, 0xf3, 0x68, 0x32, 0x8e, 0xd0, 0x0e, 0x7b, 0x46, |
|
3829 |
- 0xcd, 0xff, 0xd0, 0x2b, 0xfd, 0x4f, 0x5c, 0xf4, 0x05, 0x64, 0xa2, 0x57, 0x46, 0xd6, 0x60, 0xa5, |
|
3830 |
- 0x74, 0xf7, 0xea, 0x7b, 0x24, 0x2c, 0xab, 0xde, 0x0b, 0x28, 0x91, 0x44, 0x7c, 0x1b, 0xc0, 0x0e, |
|
3831 |
- 0x82, 0x33, 0x8f, 0xf2, 0x86, 0x60, 0xf1, 0x8c, 0x27, 0x59, 0x15, 0xa9, 0xb3, 0x68, 0x3b, 0xa4, |
|
3832 |
- 0xbc, 0x7b, 0x26, 0x78, 0xc3, 0xf3, 0x65, 0x03, 0xb3, 0x24, 0xab, 0x22, 0x35, 0x1f, 0xef, 0xc2, |
|
3833 |
- 0x42, 0x4b, 0x16, 0x27, 0x99, 0x9b, 0x1f, 0xcc, 0x52, 0x49, 0x92, 0x90, 0xcc, 0x3b, 0x90, 0x89, |
|
3834 |
- 0xb4, 0xe0, 0x25, 0x58, 0xdc, 0x7f, 0x78, 0x78, 0xfc, 0xa0, 0x1a, 0xd5, 0x0b, 0xbf, 0x05, 0xb9, |
|
3835 |
- 0xda, 0xd1, 0x3e, 0xa9, 0x1e, 0x56, 0x8f, 0xea, 0x7b, 0x0f, 0xf2, 0xa8, 0x74, 0x3e, 0x0f, 0x50, |
|
3836 |
- 0x19, 0x3c, 0xb9, 0xf8, 0x1b, 0x58, 0x50, 0xf6, 0xc6, 0xe6, 0x64, 0x0b, 0x8e, 0xbe, 0x86, 0xc6, |
|
3837 |
- 0x55, 0x18, 0x55, 0x11, 0x73, 0xfd, 0x8f, 0xdf, 0xfe, 0x3d, 0x4f, 0xdf, 0x86, 0x25, 0x89, 0xf9, |
|
3838 |
- 0x30, 0x9a, 0xeb, 0x34, 0x84, 0xe5, 0x78, 0xa5, 0x5e, 0x8d, 0x7b, 0x08, 0x7f, 0x0b, 0xd9, 0xc1, |
|
3839 |
- 0x0c, 0xc6, 0x13, 0xef, 0x3a, 0x3e, 0xe4, 0x8d, 0x3b, 0x6f, 0x40, 0xa9, 0xe1, 0x32, 0x8b, 0x00, |
|
3840 |
- 0xfc, 0x33, 0x82, 0xfc, 0xf8, 0x78, 0xc2, 0x77, 0xaf, 0x31, 0x6a, 0x8d, 0xad, 0xd9, 0xc0, 0xd7, |
|
3841 |
- 0x11, 0xd5, 0x85, 0x79, 0x39, 0xd8, 0x70, 0x71, 0xda, 0x00, 0x19, 0x9c, 0x3e, 0x1d, 0x91, 0xf4, |
|
3842 |
- 0x61, 0x63, 0x86, 0x13, 0x7f, 0x48, 0xa3, 0x7b, 0x08, 0x7f, 0x8f, 0x20, 0x37, 0x62, 0x6d, 0xbc, |
|
3843 |
- 0xf1, 0x06, 0xef, 0x27, 0x1a, 0x36, 0x66, 0xfb, 0x46, 0x66, 0x74, 0x44, 0x59, 0xbf, 0x78, 0x59, |
|
3844 |
- 0x48, 0xfd, 0xf5, 0xb2, 0x90, 0xfa, 0xae, 0x5f, 0x40, 0x17, 0xfd, 0x02, 0xfa, 0xb3, 0x5f, 0x40, |
|
3845 |
- 0xff, 0xf4, 0x0b, 0xa8, 0xa9, 0xc9, 0x27, 0xf8, 0xe3, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x6c, |
|
3846 |
- 0xba, 0x38, 0xbd, 0x2d, 0x0a, 0x00, 0x00, |
|
3786 |
+ // 1007 bytes of a gzipped FileDescriptorProto |
|
3787 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x6f, 0xe3, 0x44, |
|
3788 |
+ 0x1c, 0xcd, 0xa4, 0xa9, 0xdb, 0xfc, 0xd2, 0x2d, 0x61, 0xb4, 0x2a, 0xc6, 0xd2, 0xa6, 0xc1, 0x65, |
|
3789 |
+ 0xab, 0x8a, 0x2d, 0xce, 0x12, 0xfe, 0x1d, 0xa8, 0x0a, 0x4d, 0x13, 0xa9, 0xd1, 0x6e, 0xbb, 0xd5, |
|
3790 |
+ 0xb4, 0xbb, 0x7b, 0xac, 0x1c, 0x7b, 0xd6, 0x35, 0x69, 0x3c, 0xc6, 0x33, 0xd9, 0x25, 0x07, 0x24, |
|
3791 |
+ 0x0e, 0xac, 0x84, 0x38, 0x21, 0x4e, 0x95, 0x10, 0x5f, 0x01, 0xf1, 0x31, 0x2a, 0x4e, 0x1c, 0x39, |
|
3792 |
+ 0x15, 0x36, 0x1f, 0x80, 0x0f, 0xc0, 0x09, 0x79, 0x3c, 0x4e, 0x42, 0x37, 0x69, 0xd3, 0x9e, 0x12, |
|
3793 |
+ 0xcf, 0xbc, 0xf7, 0xe6, 0xf9, 0xfd, 0x7e, 0xfe, 0x0d, 0x54, 0x3c, 0x5f, 0x1c, 0x77, 0x5b, 0x96, |
|
3794 |
+ 0xc3, 0x3a, 0x15, 0x97, 0x39, 0x6d, 0x1a, 0x55, 0xf8, 0x0b, 0x3b, 0xea, 0xb4, 0x7d, 0x51, 0xb1, |
|
3795 |
+ 0x43, 0xbf, 0xe2, 0xfa, 0x3c, 0xb4, 0x85, 0x73, 0x4c, 0x23, 0x2b, 0x8c, 0x98, 0x60, 0x18, 0x27, |
|
3796 |
+ 0x28, 0x2b, 0x45, 0x59, 0xcf, 0x3f, 0x30, 0xde, 0xbb, 0x42, 0x44, 0xf4, 0x42, 0xca, 0x13, 0xbe, |
|
3797 |
+ 0xb1, 0x7e, 0x05, 0x96, 0xb5, 0xbe, 0xa4, 0x8e, 0x48, 0xd1, 0xb7, 0x3d, 0xe6, 0x31, 0xf9, 0xb7, |
|
3798 |
+ 0x12, 0xff, 0x53, 0xab, 0x9f, 0x5e, 0xa2, 0x21, 0x11, 0xad, 0xee, 0xb3, 0x4a, 0x78, 0xd2, 0xf5, |
|
3799 |
+ 0xfc, 0x40, 0xfd, 0x28, 0x62, 0xc9, 0x63, 0xcc, 0x3b, 0xa1, 0x43, 0x90, 0xdb, 0x8d, 0x6c, 0xe1, |
|
3800 |
+ 0x33, 0xb5, 0x6f, 0xbe, 0x44, 0xb0, 0x78, 0x40, 0x39, 0xf7, 0x59, 0x40, 0xe8, 0x57, 0x5d, 0xca, |
|
3801 |
+ 0x05, 0x6e, 0x40, 0xc1, 0xa5, 0xdc, 0x89, 0xfc, 0x30, 0xc6, 0xe9, 0xa8, 0x8c, 0xd6, 0x0a, 0xd5, |
|
3802 |
+ 0x15, 0xeb, 0xf5, 0x14, 0xac, 0x3d, 0xe6, 0xd2, 0xfa, 0x10, 0x4a, 0x46, 0x79, 0x78, 0x1d, 0x80, |
|
3803 |
+ 0x27, 0xc2, 0x47, 0xbe, 0xab, 0x67, 0xcb, 0x68, 0x2d, 0x5f, 0xbb, 0xd5, 0x3f, 0x5f, 0xce, 0xab, |
|
3804 |
+ 0xe3, 0x9a, 0x75, 0x92, 0x57, 0x80, 0xa6, 0x6b, 0xfe, 0x9c, 0x1d, 0xf8, 0xd8, 0xa5, 0x9c, 0xdb, |
|
3805 |
+ 0x1e, 0xbd, 0x20, 0x80, 0x2e, 0x17, 0xc0, 0xeb, 0x90, 0x0b, 0x98, 0x4b, 0xe5, 0x41, 0x85, 0xaa, |
|
3806 |
+ 0x3e, 0xc9, 0x2e, 0x91, 0x28, 0xbc, 0x01, 0xf3, 0x1d, 0x3b, 0xb0, 0x3d, 0x1a, 0x71, 0x7d, 0xa6, |
|
3807 |
+ 0x3c, 0xb3, 0x56, 0xa8, 0x96, 0xc7, 0x31, 0x9e, 0x52, 0xdf, 0x3b, 0x16, 0xd4, 0xdd, 0xa7, 0x34, |
|
3808 |
+ 0x22, 0x03, 0x06, 0x7e, 0x0a, 0x4b, 0x01, 0x15, 0x2f, 0x58, 0xd4, 0x3e, 0x6a, 0x31, 0x26, 0xb8, |
|
3809 |
+ 0x88, 0xec, 0xf0, 0xa8, 0x4d, 0x7b, 0x5c, 0xcf, 0x49, 0xad, 0x77, 0xc6, 0x69, 0x35, 0x02, 0x27, |
|
3810 |
+ 0xea, 0xc9, 0x68, 0x1e, 0xd0, 0x1e, 0xb9, 0xad, 0x04, 0x6a, 0x29, 0xff, 0x01, 0xed, 0x71, 0xbc, |
|
3811 |
+ 0x04, 0x1a, 0x61, 0x4c, 0x6c, 0x6f, 0xe9, 0xb3, 0x65, 0xb4, 0xb6, 0x40, 0xd4, 0x93, 0xf9, 0x05, |
|
3812 |
+ 0x14, 0x77, 0xa8, 0x1d, 0x89, 0x16, 0xb5, 0x45, 0x5a, 0xa6, 0x6b, 0xc5, 0x63, 0xee, 0xc3, 0x9b, |
|
3813 |
+ 0x23, 0x0a, 0x3c, 0x64, 0x01, 0xa7, 0xf8, 0x33, 0xd0, 0x42, 0x1a, 0xf9, 0xcc, 0x55, 0x45, 0x7e, |
|
3814 |
+ 0xdb, 0x4a, 0xba, 0xc5, 0x4a, 0xbb, 0xc5, 0xaa, 0xab, 0x6e, 0xa9, 0xcd, 0x9f, 0x9d, 0x2f, 0x67, |
|
3815 |
+ 0x4e, 0xff, 0x5a, 0x46, 0x44, 0x51, 0xcc, 0x1f, 0xb3, 0xf0, 0xd6, 0xe3, 0xd0, 0xb5, 0x05, 0x3d, |
|
3816 |
+ 0xb4, 0x79, 0xfb, 0x40, 0xd8, 0xa2, 0xcb, 0x6f, 0xe4, 0x0d, 0x3f, 0x81, 0xb9, 0xae, 0x14, 0x4a, |
|
3817 |
+ 0x6b, 0xb1, 0x31, 0x2e, 0xbf, 0x09, 0x67, 0x59, 0xc3, 0x95, 0x04, 0x41, 0x52, 0x31, 0x83, 0x41, |
|
3818 |
+ 0xf1, 0xe2, 0x26, 0x5e, 0x81, 0x39, 0x61, 0xf3, 0xf6, 0xd0, 0x16, 0xf4, 0xcf, 0x97, 0xb5, 0x18, |
|
3819 |
+ 0xd6, 0xac, 0x13, 0x2d, 0xde, 0x6a, 0xba, 0xf8, 0x13, 0xd0, 0xb8, 0x24, 0xa9, 0x6e, 0x2a, 0x8d, |
|
3820 |
+ 0xf3, 0x33, 0xe2, 0x44, 0xa1, 0x4d, 0x03, 0xf4, 0xd7, 0x5d, 0x26, 0x59, 0x9b, 0x1b, 0xb0, 0x10, |
|
3821 |
+ 0xaf, 0xde, 0x2c, 0x22, 0x73, 0x53, 0xb1, 0xd3, 0x6f, 0xc3, 0x82, 0xd9, 0xd8, 0x2b, 0xd7, 0x91, |
|
3822 |
+ 0x0c, 0x4c, 0x9f, 0x64, 0x90, 0x24, 0x30, 0xb3, 0x06, 0x78, 0x8b, 0x73, 0xdf, 0x0b, 0x3a, 0x34, |
|
3823 |
+ 0x10, 0x37, 0xf4, 0xf0, 0x1b, 0x02, 0x18, 0x8a, 0x60, 0x0b, 0x72, 0xb1, 0xb6, 0x6a, 0x9d, 0x89, |
|
3824 |
+ 0x0e, 0x76, 0x32, 0x44, 0xe2, 0xf0, 0x47, 0xa0, 0x71, 0xea, 0x44, 0x54, 0xa8, 0x50, 0x8d, 0x71, |
|
3825 |
+ 0x8c, 0x03, 0x89, 0xd8, 0xc9, 0x10, 0x85, 0x8d, 0x59, 0x0e, 0x0b, 0x9e, 0xf9, 0x9e, 0x3e, 0x33, |
|
3826 |
+ 0x99, 0xb5, 0x2d, 0x11, 0x31, 0x2b, 0xc1, 0xd6, 0x34, 0xc8, 0xf9, 0x82, 0x76, 0xcc, 0x97, 0x59, |
|
3827 |
+ 0x28, 0x0e, 0x2d, 0x6f, 0x1f, 0xdb, 0x81, 0x47, 0xf1, 0x26, 0x80, 0x3d, 0x58, 0x53, 0xf6, 0xc7, |
|
3828 |
+ 0x56, 0x78, 0xc8, 0x24, 0x23, 0x0c, 0xbc, 0x0b, 0x9a, 0xed, 0xc8, 0xd1, 0x18, 0xbf, 0xc8, 0x62, |
|
3829 |
+ 0xf5, 0xe3, 0xcb, 0xb9, 0xc9, 0xa9, 0x23, 0x0b, 0x5b, 0x92, 0x4c, 0x94, 0x88, 0xd9, 0x1a, 0xb5, |
|
3830 |
+ 0x98, 0xec, 0xe1, 0x55, 0xd0, 0x1e, 0xef, 0xd7, 0xb7, 0x0e, 0x1b, 0xc5, 0x8c, 0x61, 0xfc, 0xf0, |
|
3831 |
+ 0x4b, 0x79, 0xe9, 0x22, 0x42, 0x75, 0xf3, 0x2a, 0x68, 0xa4, 0xb1, 0xfb, 0xe8, 0x49, 0xa3, 0x88, |
|
3832 |
+ 0xc6, 0xe3, 0x08, 0xed, 0xb0, 0xe7, 0xd4, 0xfc, 0x17, 0xfd, 0xaf, 0xfe, 0x69, 0x17, 0x7d, 0x0e, |
|
3833 |
+ 0xb9, 0xf8, 0xa2, 0x92, 0x19, 0x2c, 0x56, 0xef, 0x5d, 0xfe, 0x1e, 0x29, 0xcb, 0x3a, 0xec, 0x85, |
|
3834 |
+ 0x94, 0x48, 0x22, 0xbe, 0x03, 0x60, 0x87, 0xe1, 0x89, 0x4f, 0xf9, 0x91, 0x60, 0xc9, 0x8c, 0x27, |
|
3835 |
+ 0x79, 0xb5, 0x72, 0xc8, 0xe2, 0xed, 0x88, 0xf2, 0xee, 0x89, 0xe0, 0x47, 0x7e, 0x20, 0x0b, 0x98, |
|
3836 |
+ 0x27, 0x79, 0xb5, 0xd2, 0x0c, 0xf0, 0x26, 0xcc, 0x39, 0x32, 0x9c, 0x74, 0x6e, 0xbe, 0x3b, 0x4d, |
|
3837 |
+ 0x92, 0x24, 0x25, 0x99, 0x77, 0x21, 0x17, 0x7b, 0xc1, 0x0b, 0x30, 0xbf, 0xfd, 0x68, 0x77, 0xff, |
|
3838 |
+ 0x61, 0x23, 0xce, 0x0b, 0xbf, 0x01, 0x85, 0xe6, 0xde, 0x36, 0x69, 0xec, 0x36, 0xf6, 0x0e, 0xb7, |
|
3839 |
+ 0x1e, 0x16, 0x51, 0xf5, 0x74, 0x16, 0xa0, 0x3e, 0xb8, 0xd4, 0xf1, 0xd7, 0x30, 0xa7, 0xda, 0x1b, |
|
3840 |
+ 0x9b, 0xe3, 0x5b, 0x70, 0xf4, 0x36, 0x34, 0x2e, 0xc3, 0xa8, 0x44, 0xcc, 0x95, 0xdf, 0x7f, 0xfd, |
|
3841 |
+ 0xe7, 0x34, 0x7b, 0x07, 0x16, 0x24, 0xe6, 0xfd, 0x78, 0xae, 0xd3, 0x08, 0x6e, 0x25, 0x4f, 0xea, |
|
3842 |
+ 0xd6, 0xb8, 0x8f, 0xf0, 0x37, 0x90, 0x1f, 0xcc, 0x60, 0x3c, 0xf6, 0x5d, 0x2f, 0x0e, 0x79, 0xe3, |
|
3843 |
+ 0xee, 0x15, 0x28, 0x35, 0x5c, 0xa6, 0x31, 0x80, 0x7f, 0x42, 0x50, 0xbc, 0x38, 0x9e, 0xf0, 0xbd, |
|
3844 |
+ 0x6b, 0x8c, 0x5a, 0x63, 0x7d, 0x3a, 0xf0, 0x75, 0x4c, 0x75, 0x61, 0x56, 0x0e, 0x36, 0x5c, 0x9e, |
|
3845 |
+ 0x34, 0x40, 0x06, 0xa7, 0x4f, 0x46, 0xa4, 0x75, 0x58, 0x9d, 0xe2, 0xc4, 0xef, 0xb3, 0xe8, 0x3e, |
|
3846 |
+ 0xc2, 0xdf, 0x21, 0x28, 0x8c, 0xb4, 0x36, 0x5e, 0xbd, 0xa2, 0xf7, 0x53, 0x0f, 0xab, 0xd3, 0x7d, |
|
3847 |
+ 0x23, 0x53, 0x76, 0x44, 0x4d, 0x3f, 0x7b, 0x55, 0xca, 0xfc, 0xf9, 0xaa, 0x94, 0xf9, 0xb6, 0x5f, |
|
3848 |
+ 0x42, 0x67, 0xfd, 0x12, 0xfa, 0xa3, 0x5f, 0x42, 0x7f, 0xf7, 0x4b, 0xa8, 0xa5, 0xc9, 0x2b, 0xf8, |
|
3849 |
+ 0xc3, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xf0, 0x6a, 0xcb, 0xae, 0x0a, 0x00, 0x00, |
|
3847 | 3850 |
} |
... | ... |
@@ -2,10 +2,10 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "types.proto"; |
|
6 |
-import "objects.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/objects.proto"; |
|
7 | 7 |
import "gogoproto/gogo.proto"; |
8 |
-import "plugin/plugin.proto"; |
|
8 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
9 | 9 |
import "google/protobuf/duration.proto"; |
10 | 10 |
|
11 | 11 |
// Dispatcher is the API provided by a manager group for agents to connect to. Agents |
12 | 12 |
deleted file mode 100644 |
... | ... |
@@ -1,3 +0,0 @@ |
1 |
-package api |
|
2 |
- |
|
3 |
-//go:generate protoc -I.:../protobuf:../vendor:../vendor/github.com/gogo/protobuf --gogoswarm_out=plugins=grpc+deepcopy+storeobject+raftproxy+authenticatedwrapper,import_path=github.com/docker/swarmkit/api,Mgogoproto/gogo.proto=github.com/gogo/protobuf/gogoproto,Mgoogle/protobuf/descriptor.proto=github.com/gogo/protobuf/protoc-gen-gogo/descriptor,Mplugin/plugin.proto=github.com/docker/swarmkit/protobuf/plugin,Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types:. types.proto specs.proto objects.proto control.proto dispatcher.proto ca.proto snapshot.proto raft.proto health.proto resource.proto logbroker.proto watch.proto |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: health.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/health.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -198,7 +198,7 @@ var _Health_serviceDesc = grpc.ServiceDesc{ |
198 | 198 |
}, |
199 | 199 |
}, |
200 | 200 |
Streams: []grpc.StreamDesc{}, |
201 |
- Metadata: "health.proto", |
|
201 |
+ Metadata: "github.com/docker/swarmkit/api/health.proto", |
|
202 | 202 |
} |
203 | 203 |
|
204 | 204 |
func (m *HealthCheckRequest) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -696,26 +696,28 @@ var ( |
696 | 696 |
ErrIntOverflowHealth = fmt.Errorf("proto: integer overflow") |
697 | 697 |
) |
698 | 698 |
|
699 |
-func init() { proto.RegisterFile("health.proto", fileDescriptorHealth) } |
|
699 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/health.proto", fileDescriptorHealth) } |
|
700 | 700 |
|
701 | 701 |
var fileDescriptorHealth = []byte{ |
702 |
- // 287 bytes of a gzipped FileDescriptorProto |
|
703 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0xc9, 0x48, 0x4d, 0xcc, |
|
704 |
- 0x29, 0xc9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x4a, 0xc9, 0x4f, 0xce, 0x4e, 0x2d, |
|
705 |
- 0xd2, 0x2b, 0x2e, 0x4f, 0x2c, 0xca, 0xcd, 0xce, 0x2c, 0xd1, 0x2b, 0x33, 0x94, 0x12, 0x49, 0xcf, |
|
706 |
- 0x4f, 0xcf, 0x07, 0x4b, 0xeb, 0x83, 0x58, 0x10, 0x95, 0x52, 0xc2, 0x05, 0x39, 0xa5, 0xe9, 0x99, |
|
707 |
- 0x79, 0xfa, 0x10, 0x0a, 0x22, 0xa8, 0xa4, 0xc7, 0x25, 0xe4, 0x01, 0x36, 0xce, 0x39, 0x23, 0x35, |
|
708 |
- 0x39, 0x3b, 0x28, 0xb5, 0xb0, 0x34, 0xb5, 0xb8, 0x44, 0x48, 0x82, 0x8b, 0xbd, 0x38, 0xb5, 0xa8, |
|
709 |
- 0x2c, 0x33, 0x39, 0x55, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xc6, 0x55, 0x5a, 0xc0, 0xc8, |
|
710 |
- 0x25, 0x8c, 0xa2, 0xa1, 0xb8, 0x20, 0x3f, 0xaf, 0x38, 0x55, 0xc8, 0x97, 0x8b, 0xad, 0xb8, 0x24, |
|
711 |
- 0xb1, 0xa4, 0xb4, 0x18, 0xac, 0x81, 0xcf, 0xc8, 0x54, 0x0f, 0xd3, 0x5d, 0x7a, 0x58, 0x34, 0xea, |
|
712 |
- 0x05, 0x83, 0x0c, 0xce, 0x4b, 0x0f, 0x06, 0x6b, 0x0e, 0x82, 0x1a, 0xa2, 0x64, 0xc5, 0xc5, 0x8b, |
|
713 |
- 0x22, 0x21, 0xc4, 0xcd, 0xc5, 0x1e, 0xea, 0xe7, 0xed, 0xe7, 0x1f, 0xee, 0x27, 0xc0, 0x00, 0xe2, |
|
714 |
- 0x04, 0xbb, 0x06, 0x85, 0x79, 0xfa, 0xb9, 0x0b, 0x30, 0x0a, 0xf1, 0x73, 0x71, 0xfb, 0xf9, 0x87, |
|
715 |
- 0xc4, 0xc3, 0x04, 0x98, 0x8c, 0x2a, 0xb9, 0xd8, 0x20, 0x16, 0x09, 0xe5, 0x73, 0xb1, 0x82, 0x2d, |
|
716 |
- 0x13, 0x52, 0x23, 0xe8, 0x1a, 0xb0, 0xbf, 0xa5, 0xd4, 0x89, 0x74, 0xb5, 0x92, 0xe8, 0xa9, 0x75, |
|
717 |
- 0xef, 0x66, 0x30, 0xf1, 0x73, 0xf1, 0x82, 0x15, 0xea, 0xe6, 0x26, 0xe6, 0x25, 0xa6, 0xa7, 0x16, |
|
718 |
- 0x39, 0x49, 0x9c, 0x78, 0x28, 0xc7, 0x70, 0xe3, 0xa1, 0x1c, 0x43, 0xc3, 0x23, 0x39, 0xc6, 0x13, |
|
719 |
- 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x31, 0x89, 0x0d, 0x1c, 0xdc, |
|
720 |
- 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x59, 0xcd, 0x52, 0xee, 0xbd, 0x01, 0x00, 0x00, |
|
702 |
+ // 315 bytes of a gzipped FileDescriptorProto |
|
703 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4e, 0xcf, 0x2c, 0xc9, |
|
704 |
+ 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xc9, 0x4f, 0xce, 0x4e, 0x2d, 0xd2, 0x2f, 0x2e, |
|
705 |
+ 0x4f, 0x2c, 0xca, 0xcd, 0xce, 0x2c, 0xd1, 0x4f, 0x2c, 0xc8, 0xd4, 0xcf, 0x48, 0x4d, 0xcc, 0x29, |
|
706 |
+ 0xc9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x82, 0xa8, 0xd0, 0x83, 0xa9, 0xd0, 0x2b, |
|
707 |
+ 0x33, 0x94, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x4b, 0xeb, 0x83, 0x58, 0x10, 0x95, 0x52, 0xe6, |
|
708 |
+ 0x78, 0x8c, 0x05, 0xab, 0x48, 0x2a, 0x4d, 0xd3, 0x2f, 0xc8, 0x29, 0x4d, 0xcf, 0xcc, 0x83, 0x52, |
|
709 |
+ 0x10, 0x8d, 0x4a, 0x7a, 0x5c, 0x42, 0x1e, 0x60, 0x2b, 0x9d, 0x33, 0x52, 0x93, 0xb3, 0x83, 0x52, |
|
710 |
+ 0x0b, 0x4b, 0x53, 0x8b, 0x4b, 0x84, 0x24, 0xb8, 0xd8, 0x8b, 0x53, 0x8b, 0xca, 0x32, 0x93, 0x53, |
|
711 |
+ 0x25, 0x18, 0x15, 0x18, 0x35, 0x38, 0x83, 0x60, 0x5c, 0xa5, 0x05, 0x8c, 0x5c, 0xc2, 0x28, 0x1a, |
|
712 |
+ 0x8a, 0x0b, 0xf2, 0xf3, 0x8a, 0x53, 0x85, 0x7c, 0xb9, 0xd8, 0x8a, 0x4b, 0x12, 0x4b, 0x4a, 0x8b, |
|
713 |
+ 0xc1, 0x1a, 0xf8, 0x8c, 0x4c, 0xf5, 0x30, 0xdd, 0xae, 0x87, 0x45, 0xa3, 0x5e, 0x30, 0xc8, 0xe0, |
|
714 |
+ 0xbc, 0xf4, 0x60, 0xb0, 0xe6, 0x20, 0xa8, 0x21, 0x4a, 0x56, 0x5c, 0xbc, 0x28, 0x12, 0x42, 0xdc, |
|
715 |
+ 0x5c, 0xec, 0xa1, 0x7e, 0xde, 0x7e, 0xfe, 0xe1, 0x7e, 0x02, 0x0c, 0x20, 0x4e, 0xb0, 0x6b, 0x50, |
|
716 |
+ 0x98, 0xa7, 0x9f, 0xbb, 0x00, 0xa3, 0x10, 0x3f, 0x17, 0xb7, 0x9f, 0x7f, 0x48, 0x3c, 0x4c, 0x80, |
|
717 |
+ 0xc9, 0xa8, 0x92, 0x8b, 0x0d, 0x62, 0x91, 0x50, 0x3e, 0x17, 0x2b, 0xd8, 0x32, 0x21, 0x35, 0x82, |
|
718 |
+ 0xae, 0x01, 0xfb, 0x5b, 0x4a, 0x9d, 0x48, 0x57, 0x2b, 0x89, 0x9e, 0x5a, 0xf7, 0x6e, 0x06, 0x13, |
|
719 |
+ 0x3f, 0x17, 0x2f, 0x58, 0xa1, 0x6e, 0x6e, 0x62, 0x5e, 0x62, 0x7a, 0x6a, 0x91, 0x93, 0xc4, 0x89, |
|
720 |
+ 0x87, 0x72, 0x0c, 0x37, 0x1e, 0xca, 0x31, 0x34, 0x3c, 0x92, 0x63, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, |
|
721 |
+ 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x93, 0xd8, 0xc0, 0xc1, 0x6d, 0x0c, 0x08, 0x00, |
|
722 |
+ 0x00, 0xff, 0xff, 0x7b, 0xf2, 0xdd, 0x23, 0x00, 0x02, 0x00, 0x00, |
|
721 | 723 |
} |
... | ... |
@@ -12,7 +12,7 @@ syntax = "proto3"; |
12 | 12 |
package docker.swarmkit.v1; |
13 | 13 |
|
14 | 14 |
import "gogoproto/gogo.proto"; |
15 |
-import "plugin/plugin.proto"; |
|
15 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
16 | 16 |
|
17 | 17 |
service Health { |
18 | 18 |
rpc Check(HealthCheckRequest) returns (HealthCheckResponse) { |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: logbroker.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/logbroker.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -618,7 +618,7 @@ var _Logs_serviceDesc = grpc.ServiceDesc{ |
618 | 618 |
ServerStreams: true, |
619 | 619 |
}, |
620 | 620 |
}, |
621 |
- Metadata: "logbroker.proto", |
|
621 |
+ Metadata: "github.com/docker/swarmkit/api/logbroker.proto", |
|
622 | 622 |
} |
623 | 623 |
|
624 | 624 |
// Client API for LogBroker service |
... | ... |
@@ -790,7 +790,7 @@ var _LogBroker_serviceDesc = grpc.ServiceDesc{ |
790 | 790 |
ClientStreams: true, |
791 | 791 |
}, |
792 | 792 |
}, |
793 |
- Metadata: "logbroker.proto", |
|
793 |
+ Metadata: "github.com/docker/swarmkit/api/logbroker.proto", |
|
794 | 794 |
} |
795 | 795 |
|
796 | 796 |
func (m *LogSubscriptionOptions) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -3350,67 +3350,71 @@ var ( |
3350 | 3350 |
ErrIntOverflowLogbroker = fmt.Errorf("proto: integer overflow") |
3351 | 3351 |
) |
3352 | 3352 |
|
3353 |
-func init() { proto.RegisterFile("logbroker.proto", fileDescriptorLogbroker) } |
|
3353 |
+func init() { |
|
3354 |
+ proto.RegisterFile("github.com/docker/swarmkit/api/logbroker.proto", fileDescriptorLogbroker) |
|
3355 |
+} |
|
3354 | 3356 |
|
3355 | 3357 |
var fileDescriptorLogbroker = []byte{ |
3356 |
- // 944 bytes of a gzipped FileDescriptorProto |
|
3358 |
+ // 966 bytes of a gzipped FileDescriptorProto |
|
3357 | 3359 |
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0x41, 0x6f, 0x1b, 0x45, |
3358 |
- 0x14, 0xc7, 0x3d, 0xeb, 0xc4, 0x8e, 0x9f, 0x9b, 0xc4, 0x1d, 0xa7, 0x91, 0x65, 0xa8, 0x6d, 0x6d, |
|
3359 |
- 0xa5, 0x62, 0x45, 0xc5, 0x6e, 0x8d, 0x10, 0x48, 0x91, 0x10, 0x35, 0xae, 0x90, 0x85, 0x9b, 0xa0, |
|
3360 |
- 0xb1, 0x23, 0xb8, 0x45, 0x6b, 0xef, 0x74, 0x59, 0x79, 0xbd, 0x63, 0x76, 0xc6, 0x09, 0x48, 0x1c, |
|
3361 |
- 0x38, 0x14, 0x09, 0xe5, 0xc0, 0x0d, 0x09, 0x0e, 0x3d, 0xd1, 0x0b, 0x42, 0xe2, 0xc2, 0x8d, 0x0f, |
|
3362 |
- 0x80, 0x22, 0x4e, 0x1c, 0x39, 0x59, 0x74, 0x3f, 0x00, 0x9f, 0x01, 0xed, 0xcc, 0xd8, 0xde, 0x60, |
|
3363 |
- 0xbb, 0x45, 0xe5, 0x92, 0xcc, 0xec, 0xfc, 0xdf, 0xbe, 0xdf, 0xfb, 0xcf, 0x7b, 0x6b, 0xd8, 0xf5, |
|
3364 |
- 0x98, 0xd3, 0x0f, 0xd8, 0x90, 0x06, 0xb5, 0x71, 0xc0, 0x04, 0xc3, 0xd8, 0x66, 0x83, 0x68, 0xc7, |
|
3365 |
- 0xcf, 0xad, 0x60, 0x34, 0x74, 0x45, 0xed, 0xec, 0x5e, 0x71, 0xcf, 0x61, 0x0e, 0x93, 0xc7, 0xf5, |
|
3366 |
- 0x68, 0xa5, 0x94, 0xc5, 0xb2, 0xc3, 0x98, 0xe3, 0xd1, 0xba, 0xdc, 0xf5, 0x27, 0x8f, 0xea, 0xc2, |
|
3367 |
- 0x1d, 0x51, 0x2e, 0xac, 0xd1, 0x58, 0x0b, 0xf2, 0x63, 0x6f, 0xe2, 0xb8, 0x7e, 0x5d, 0xfd, 0x53, |
|
3368 |
- 0x0f, 0xcd, 0x5f, 0x10, 0xec, 0x77, 0x98, 0xd3, 0x9d, 0xf4, 0xf9, 0x20, 0x70, 0xc7, 0xc2, 0x65, |
|
3369 |
- 0xfe, 0xb1, 0xfc, 0xcb, 0xf1, 0x21, 0xa4, 0xb9, 0x08, 0xa8, 0x35, 0xe2, 0x05, 0x54, 0x49, 0x56, |
|
3370 |
- 0x77, 0x1a, 0x37, 0x6b, 0xcb, 0x30, 0xb5, 0x28, 0x58, 0xaa, 0x9a, 0x46, 0x2e, 0x41, 0x66, 0x11, |
|
3371 |
- 0x78, 0x1f, 0x52, 0x8f, 0x98, 0xe7, 0xb1, 0xf3, 0x82, 0x51, 0x41, 0xd5, 0x2d, 0xa2, 0x77, 0x18, |
|
3372 |
- 0xc3, 0x86, 0xb0, 0x5c, 0xaf, 0x90, 0xac, 0xa0, 0x6a, 0x92, 0xc8, 0x35, 0xbe, 0x0b, 0x9b, 0xdc, |
|
3373 |
- 0xf5, 0x07, 0xb4, 0xb0, 0x51, 0x41, 0xd5, 0x6c, 0xa3, 0x58, 0x53, 0x95, 0xd4, 0x66, 0x95, 0xd4, |
|
3374 |
- 0x7a, 0xb3, 0x4a, 0x88, 0x12, 0x9a, 0xdf, 0x20, 0xc8, 0x46, 0x89, 0xa9, 0x47, 0x07, 0x82, 0x05, |
|
3375 |
- 0xb8, 0x0e, 0x59, 0x4e, 0x83, 0x33, 0x77, 0x40, 0x4f, 0x5d, 0x5b, 0xe1, 0x66, 0x9a, 0x3b, 0xe1, |
|
3376 |
- 0xb4, 0x0c, 0x5d, 0xf5, 0xb8, 0xdd, 0xe2, 0x04, 0xb4, 0xa4, 0x6d, 0x73, 0x7c, 0x1b, 0xb6, 0x7c, |
|
3377 |
- 0x66, 0x2b, 0xb5, 0x21, 0xd5, 0xd9, 0x70, 0x5a, 0x4e, 0x1f, 0x31, 0x5b, 0x4a, 0xd3, 0xd1, 0xa1, |
|
3378 |
- 0xd6, 0x09, 0x8b, 0x0f, 0xa5, 0x2e, 0xb9, 0xd0, 0xf5, 0x2c, 0x3e, 0x94, 0xba, 0xe8, 0xb0, 0x6d, |
|
3379 |
- 0x73, 0xf3, 0x31, 0x02, 0xe8, 0x30, 0xe7, 0x3d, 0xe6, 0x0b, 0xfa, 0x99, 0xc0, 0x77, 0x00, 0x16, |
|
3380 |
- 0x3c, 0x05, 0x54, 0x41, 0xd5, 0x4c, 0x73, 0x3b, 0x9c, 0x96, 0x33, 0x73, 0x1c, 0x92, 0x99, 0xd3, |
|
3381 |
- 0xe0, 0x5b, 0x90, 0xd6, 0x30, 0xd2, 0xac, 0x4c, 0x13, 0xc2, 0x69, 0x39, 0xa5, 0x58, 0x48, 0x4a, |
|
3382 |
- 0xa1, 0x44, 0x22, 0x4d, 0x22, 0xbd, 0xd3, 0x22, 0x05, 0x42, 0x52, 0x8a, 0xc3, 0xbc, 0x07, 0xe9, |
|
3383 |
- 0x0e, 0x73, 0xee, 0x0b, 0x11, 0xe0, 0x1c, 0x24, 0x87, 0xf4, 0x73, 0x95, 0x9b, 0x44, 0x4b, 0xbc, |
|
3384 |
- 0x07, 0x9b, 0x67, 0x96, 0x37, 0xa1, 0x2a, 0x09, 0x51, 0x1b, 0xf3, 0xc2, 0x90, 0xe4, 0x0f, 0x29, |
|
3385 |
- 0xe7, 0x96, 0x43, 0xf1, 0x3b, 0x90, 0x1e, 0xa8, 0x22, 0x64, 0x68, 0xb6, 0x51, 0x5a, 0x73, 0xe9, |
|
3386 |
- 0xba, 0xd4, 0xe6, 0xc6, 0xe5, 0xb4, 0x9c, 0x20, 0xb3, 0x20, 0xfc, 0x36, 0x64, 0xe6, 0x7d, 0x27, |
|
3387 |
- 0x13, 0x3d, 0xff, 0x3e, 0x17, 0x62, 0xfc, 0x26, 0xa4, 0x54, 0xf3, 0xc8, 0xfa, 0x5e, 0xd4, 0x6d, |
|
3388 |
- 0x44, 0x8b, 0xa3, 0x86, 0xb2, 0x2d, 0x61, 0xc9, 0xde, 0xb9, 0x46, 0xe4, 0x1a, 0xbf, 0x05, 0x9b, |
|
3389 |
- 0x96, 0x10, 0x01, 0x2f, 0x6c, 0x56, 0x92, 0xd5, 0x6c, 0xe3, 0x95, 0x35, 0x6f, 0x8a, 0x7c, 0xd2, |
|
3390 |
- 0xfc, 0x4a, 0x6f, 0x7e, 0x8f, 0x60, 0x4f, 0x8f, 0x42, 0x9f, 0x76, 0x98, 0xc3, 0x09, 0xfd, 0x74, |
|
3391 |
- 0x42, 0xb9, 0xc0, 0x87, 0xb0, 0xc5, 0x75, 0xb3, 0x69, 0x5f, 0xca, 0xeb, 0xf0, 0xb4, 0x8c, 0xcc, |
|
3392 |
- 0x03, 0x70, 0x0b, 0xd2, 0x4c, 0xcd, 0x94, 0x76, 0xe4, 0x60, 0x5d, 0xec, 0xf2, 0x14, 0x92, 0x59, |
|
3393 |
- 0xa8, 0xf9, 0xf1, 0xbf, 0xd0, 0x66, 0x37, 0xf6, 0x2e, 0x6c, 0x8d, 0xd4, 0x52, 0x35, 0xfe, 0xfa, |
|
3394 |
- 0x2b, 0xd3, 0x11, 0xba, 0xe4, 0x79, 0x94, 0xf9, 0x2a, 0x14, 0x3b, 0x2e, 0x17, 0xd4, 0x8f, 0xe7, |
|
3395 |
- 0x9f, 0x95, 0x6e, 0xfe, 0x86, 0x20, 0x1f, 0x3f, 0x98, 0xe5, 0xdd, 0x07, 0x63, 0xde, 0xdb, 0xa9, |
|
3396 |
- 0x70, 0x5a, 0x36, 0xda, 0x2d, 0x62, 0xb8, 0xf6, 0x15, 0xab, 0x8c, 0xff, 0x61, 0x55, 0xf2, 0xa5, |
|
3397 |
- 0xad, 0x8a, 0x3a, 0x7d, 0xe0, 0x31, 0xae, 0x3e, 0x28, 0x5b, 0x44, 0x6d, 0xcc, 0x1f, 0x11, 0xe0, |
|
3398 |
- 0x0f, 0x27, 0x7d, 0xcf, 0xe5, 0x9f, 0xc4, 0xfd, 0x3b, 0x84, 0x5d, 0x1e, 0x7b, 0xd9, 0x62, 0x60, |
|
3399 |
- 0x71, 0x38, 0x2d, 0xef, 0xc4, 0xf3, 0xb4, 0x5b, 0x64, 0x27, 0x2e, 0x6d, 0xdb, 0x57, 0xcc, 0x37, |
|
3400 |
- 0x5e, 0xc6, 0xfc, 0x05, 0x6b, 0x32, 0xce, 0x7a, 0x03, 0xf2, 0x31, 0x54, 0x42, 0xf9, 0x98, 0xf9, |
|
3401 |
- 0x9c, 0x1e, 0x3c, 0x45, 0x90, 0x99, 0x8f, 0x00, 0xbe, 0x03, 0xb8, 0x73, 0xfc, 0xfe, 0x69, 0xb7, |
|
3402 |
- 0x47, 0x1e, 0xdc, 0x7f, 0x78, 0x7a, 0x72, 0xf4, 0xc1, 0xd1, 0xf1, 0x47, 0x47, 0xb9, 0x44, 0x71, |
|
3403 |
- 0xef, 0xe2, 0x49, 0x25, 0x37, 0x97, 0x9d, 0xf8, 0x43, 0x9f, 0x9d, 0xfb, 0xf8, 0x00, 0xae, 0xc7, |
|
3404 |
- 0xd4, 0xdd, 0x5e, 0xeb, 0xf8, 0xa4, 0x97, 0x43, 0xc5, 0xfc, 0xc5, 0x93, 0xca, 0xee, 0x5c, 0xdc, |
|
3405 |
- 0x15, 0x36, 0x9b, 0x88, 0x65, 0xed, 0x03, 0x42, 0x72, 0xc6, 0xb2, 0x96, 0x06, 0x41, 0xf1, 0xfa, |
|
3406 |
- 0xd7, 0x3f, 0x94, 0x12, 0xbf, 0x3e, 0x2d, 0x2d, 0xc0, 0x1a, 0x8f, 0x11, 0x6c, 0x44, 0xdc, 0xf8, |
|
3407 |
- 0x0b, 0xd8, 0xbe, 0xd2, 0xb3, 0xb8, 0xba, 0xca, 0x9d, 0x55, 0x13, 0x57, 0x7c, 0xb1, 0x52, 0x3b, |
|
3408 |
- 0x6a, 0xde, 0xf8, 0xfd, 0xe7, 0xbf, 0xbf, 0x33, 0x76, 0x61, 0x5b, 0x2a, 0x5f, 0x1f, 0x59, 0xbe, |
|
3409 |
- 0xe5, 0xd0, 0xe0, 0x2e, 0x6a, 0xfc, 0x64, 0x48, 0xb7, 0x9a, 0xf2, 0xf7, 0x14, 0x7f, 0x8b, 0x20, |
|
3410 |
- 0xbf, 0xa2, 0xcd, 0x71, 0x6d, 0xe5, 0x85, 0xad, 0x9d, 0x87, 0xe2, 0x6b, 0xcf, 0x01, 0x8b, 0x0f, |
|
3411 |
- 0x88, 0x79, 0x4b, 0x72, 0xdd, 0x84, 0x6b, 0x8a, 0xeb, 0x9c, 0x05, 0x43, 0x1a, 0x2c, 0x51, 0xe2, |
|
3412 |
- 0xaf, 0x10, 0x64, 0x63, 0x77, 0x8d, 0x6f, 0xaf, 0x7a, 0xff, 0x72, 0xdf, 0xae, 0xe6, 0x58, 0xd1, |
|
3413 |
- 0x34, 0xff, 0x89, 0xa3, 0x8a, 0x9a, 0x85, 0xcb, 0x67, 0xa5, 0xc4, 0x9f, 0xcf, 0x4a, 0x89, 0x2f, |
|
3414 |
- 0xc3, 0x12, 0xba, 0x0c, 0x4b, 0xe8, 0x8f, 0xb0, 0x84, 0xfe, 0x0a, 0x4b, 0xa8, 0x9f, 0x92, 0x1f, |
|
3415 |
- 0xee, 0x37, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x08, 0xa1, 0xea, 0xc7, 0x9d, 0x08, 0x00, 0x00, |
|
3360 |
+ 0x14, 0xc7, 0x3d, 0xeb, 0xc4, 0x8e, 0x9f, 0x9b, 0xc4, 0x9d, 0xa4, 0x91, 0x65, 0xa8, 0x6d, 0x6d, |
|
3361 |
+ 0xa5, 0x62, 0x45, 0x65, 0xdd, 0x1a, 0xa1, 0x22, 0x45, 0x42, 0xd4, 0xb8, 0x42, 0x16, 0x6e, 0x82, |
|
3362 |
+ 0xc6, 0x8e, 0xe0, 0x16, 0xad, 0xbd, 0xd3, 0xed, 0xca, 0xeb, 0x1d, 0xb3, 0x33, 0x4e, 0x40, 0xe2, |
|
3363 |
+ 0xc0, 0xa1, 0x48, 0x28, 0x07, 0x6e, 0x48, 0x70, 0xe8, 0x89, 0x5e, 0x10, 0x12, 0x17, 0x6e, 0x7c, |
|
3364 |
+ 0x00, 0x14, 0x71, 0xe2, 0xc8, 0xc9, 0xa2, 0xfb, 0x01, 0xf8, 0x0c, 0x68, 0x67, 0xd6, 0xeb, 0x0d, |
|
3365 |
+ 0xb6, 0x53, 0x54, 0x2e, 0xf6, 0x8c, 0xe7, 0xf7, 0xf6, 0xfd, 0xdf, 0x7f, 0xde, 0x5b, 0x83, 0x61, |
|
3366 |
+ 0x3b, 0xe2, 0xc9, 0xa4, 0x6f, 0x0c, 0xd8, 0xa8, 0x6e, 0xb1, 0xc1, 0x90, 0xfa, 0x75, 0x7e, 0x66, |
|
3367 |
+ 0xfa, 0xa3, 0xa1, 0x23, 0xea, 0xe6, 0xd8, 0xa9, 0xbb, 0xcc, 0xee, 0xfb, 0x6c, 0x48, 0x7d, 0x63, |
|
3368 |
+ 0xec, 0x33, 0xc1, 0x30, 0x56, 0x90, 0x31, 0x83, 0x8c, 0xd3, 0x7b, 0xa5, 0x5d, 0x9b, 0xd9, 0x4c, |
|
3369 |
+ 0x1e, 0xd7, 0xc3, 0x95, 0x22, 0x4b, 0x15, 0x9b, 0x31, 0xdb, 0xa5, 0x75, 0xb9, 0xeb, 0x4f, 0x1e, |
|
3370 |
+ 0xd7, 0x85, 0x33, 0xa2, 0x5c, 0x98, 0xa3, 0x71, 0x04, 0xdc, 0xbf, 0x22, 0x75, 0x1c, 0x34, 0x76, |
|
3371 |
+ 0x27, 0xb6, 0xe3, 0x45, 0x5f, 0x2a, 0x50, 0xff, 0x05, 0xc1, 0x5e, 0x87, 0xd9, 0xdd, 0x49, 0x9f, |
|
3372 |
+ 0x0f, 0x7c, 0x67, 0x2c, 0x1c, 0xe6, 0x1d, 0xc9, 0x4f, 0x8e, 0x0f, 0x20, 0xcb, 0x85, 0x4f, 0xcd, |
|
3373 |
+ 0x11, 0x2f, 0xa2, 0x6a, 0xba, 0xb6, 0xd5, 0xb8, 0x69, 0x2c, 0x0a, 0x36, 0xc2, 0x60, 0x49, 0x35, |
|
3374 |
+ 0xb5, 0x42, 0x8a, 0xcc, 0x22, 0xf0, 0x1e, 0x64, 0x1e, 0x33, 0xd7, 0x65, 0x67, 0x45, 0xad, 0x8a, |
|
3375 |
+ 0x6a, 0x1b, 0x24, 0xda, 0x61, 0x0c, 0x6b, 0xc2, 0x74, 0xdc, 0x62, 0xba, 0x8a, 0x6a, 0x69, 0x22, |
|
3376 |
+ 0xd7, 0xf8, 0x2e, 0xac, 0x73, 0xc7, 0x1b, 0xd0, 0xe2, 0x5a, 0x15, 0xd5, 0xf2, 0x8d, 0x92, 0xa1, |
|
3377 |
+ 0xaa, 0x35, 0x66, 0xc2, 0x8d, 0xde, 0xac, 0x5a, 0xa2, 0x40, 0xfd, 0x1b, 0x04, 0xf9, 0x30, 0x31, |
|
3378 |
+ 0x75, 0xe9, 0x40, 0x30, 0x1f, 0xd7, 0x21, 0xcf, 0xa9, 0x7f, 0xea, 0x0c, 0xe8, 0x89, 0x63, 0x29, |
|
3379 |
+ 0xb9, 0xb9, 0xe6, 0x56, 0x30, 0xad, 0x40, 0x57, 0xfd, 0xdc, 0x6e, 0x71, 0x02, 0x11, 0xd2, 0xb6, |
|
3380 |
+ 0x38, 0xbe, 0x0d, 0x1b, 0x1e, 0xb3, 0x14, 0xad, 0x49, 0x3a, 0x1f, 0x4c, 0x2b, 0xd9, 0x43, 0x66, |
|
3381 |
+ 0x49, 0x34, 0x1b, 0x1e, 0x46, 0x9c, 0x30, 0xf9, 0x50, 0x72, 0xe9, 0x39, 0xd7, 0x33, 0xf9, 0x50, |
|
3382 |
+ 0x72, 0xe1, 0x61, 0xdb, 0xe2, 0xfa, 0x53, 0x04, 0xd0, 0x61, 0xf6, 0xfb, 0xcc, 0x13, 0xf4, 0x33, |
|
3383 |
+ 0x81, 0xef, 0x00, 0xcc, 0xf5, 0x14, 0x51, 0x15, 0xd5, 0x72, 0xcd, 0xcd, 0x60, 0x5a, 0xc9, 0xc5, |
|
3384 |
+ 0x72, 0x48, 0x2e, 0x56, 0x83, 0x6f, 0x41, 0x36, 0x12, 0x23, 0xcd, 0xca, 0x35, 0x21, 0x98, 0x56, |
|
3385 |
+ 0x32, 0x4a, 0x0b, 0xc9, 0x28, 0x29, 0x21, 0x14, 0x29, 0x91, 0xde, 0x45, 0x90, 0x12, 0x42, 0x32, |
|
3386 |
+ 0x4a, 0x87, 0x7e, 0x0f, 0xb2, 0x1d, 0x66, 0x3f, 0x10, 0xc2, 0xc7, 0x05, 0x48, 0x0f, 0xe9, 0xe7, |
|
3387 |
+ 0x2a, 0x37, 0x09, 0x97, 0x78, 0x17, 0xd6, 0x4f, 0x4d, 0x77, 0x42, 0x55, 0x12, 0xa2, 0x36, 0xfa, |
|
3388 |
+ 0xb9, 0x26, 0x95, 0x3f, 0xa2, 0x9c, 0x9b, 0x36, 0xc5, 0xef, 0x42, 0x76, 0xa0, 0x8a, 0x90, 0xa1, |
|
3389 |
+ 0xf9, 0x46, 0x79, 0xc5, 0xa5, 0x47, 0xa5, 0x36, 0xd7, 0x2e, 0xa6, 0x95, 0x14, 0x99, 0x05, 0xe1, |
|
3390 |
+ 0x77, 0x20, 0x17, 0xf7, 0xa6, 0x4c, 0x74, 0xf5, 0x7d, 0xce, 0x61, 0xfc, 0x36, 0x64, 0x54, 0xf3, |
|
3391 |
+ 0xc8, 0xfa, 0x5e, 0xd6, 0x6d, 0x24, 0x82, 0xc3, 0x86, 0xb2, 0x4c, 0x61, 0xca, 0xde, 0xb9, 0x46, |
|
3392 |
+ 0xe4, 0x1a, 0xdf, 0x87, 0x75, 0x53, 0x08, 0x9f, 0x17, 0xd7, 0xab, 0xe9, 0x5a, 0xbe, 0xf1, 0xda, |
|
3393 |
+ 0x8a, 0x27, 0x85, 0x3e, 0x45, 0xfa, 0x15, 0xaf, 0x7f, 0x8f, 0x60, 0x37, 0x1a, 0x85, 0x3e, 0xed, |
|
3394 |
+ 0x30, 0x9b, 0x13, 0xfa, 0xe9, 0x84, 0x72, 0x81, 0x0f, 0x60, 0x83, 0x47, 0xcd, 0x16, 0xf9, 0x52, |
|
3395 |
+ 0x59, 0x25, 0x2f, 0xc2, 0x48, 0x1c, 0x80, 0x5b, 0x90, 0x65, 0x6a, 0xa6, 0x22, 0x47, 0xf6, 0x57, |
|
3396 |
+ 0xc5, 0x2e, 0x4e, 0x21, 0x99, 0x85, 0xea, 0x9f, 0xfc, 0x4b, 0xda, 0xec, 0xc6, 0xde, 0x83, 0x8d, |
|
3397 |
+ 0x91, 0x5a, 0xaa, 0xc6, 0x5f, 0x7d, 0x65, 0x51, 0x44, 0x54, 0x72, 0x1c, 0xa5, 0xbf, 0x0e, 0xa5, |
|
3398 |
+ 0x8e, 0xc3, 0x05, 0xf5, 0x92, 0xf9, 0x67, 0xa5, 0xeb, 0xbf, 0x21, 0xd8, 0x49, 0x1e, 0xcc, 0xf2, |
|
3399 |
+ 0xee, 0x81, 0x16, 0xf7, 0x76, 0x26, 0x98, 0x56, 0xb4, 0x76, 0x8b, 0x68, 0x8e, 0x75, 0xc9, 0x2a, |
|
3400 |
+ 0xed, 0x7f, 0x58, 0x95, 0x7e, 0x65, 0xab, 0xc2, 0x4e, 0x1f, 0xb8, 0x8c, 0xab, 0x17, 0xca, 0x06, |
|
3401 |
+ 0x51, 0x1b, 0xfd, 0x47, 0x04, 0xf8, 0xa3, 0x49, 0xdf, 0x75, 0xf8, 0x93, 0xa4, 0x7f, 0x07, 0xb0, |
|
3402 |
+ 0xcd, 0x13, 0x0f, 0x9b, 0x0f, 0x2c, 0x0e, 0xa6, 0x95, 0xad, 0x64, 0x9e, 0x76, 0x8b, 0x6c, 0x25, |
|
3403 |
+ 0xd1, 0xb6, 0x75, 0xc9, 0x7c, 0xed, 0x55, 0xcc, 0x9f, 0x6b, 0x4d, 0x27, 0xb5, 0xde, 0x80, 0x9d, |
|
3404 |
+ 0x84, 0x54, 0x42, 0xf9, 0x98, 0x79, 0x9c, 0xee, 0x3f, 0x47, 0x90, 0x8b, 0x47, 0x00, 0xdf, 0x01, |
|
3405 |
+ 0xdc, 0x39, 0xfa, 0xe0, 0xa4, 0xdb, 0x23, 0x0f, 0x1f, 0x3c, 0x3a, 0x39, 0x3e, 0xfc, 0xf0, 0xf0, |
|
3406 |
+ 0xe8, 0xe3, 0xc3, 0x42, 0xaa, 0xb4, 0x7b, 0xfe, 0xac, 0x5a, 0x88, 0xb1, 0x63, 0x6f, 0xe8, 0xb1, |
|
3407 |
+ 0x33, 0x0f, 0xef, 0xc3, 0xf5, 0x04, 0xdd, 0xed, 0xb5, 0x8e, 0x8e, 0x7b, 0x05, 0x54, 0xda, 0x39, |
|
3408 |
+ 0x7f, 0x56, 0xdd, 0x8e, 0xe1, 0xae, 0xb0, 0xd8, 0x44, 0x2c, 0xb2, 0x0f, 0x09, 0x29, 0x68, 0x8b, |
|
3409 |
+ 0x2c, 0xf5, 0xfd, 0xd2, 0xf5, 0xaf, 0x7f, 0x28, 0xa7, 0x7e, 0x7d, 0x5e, 0x9e, 0x0b, 0x6b, 0x3c, |
|
3410 |
+ 0x45, 0xb0, 0x16, 0xea, 0xc6, 0x5f, 0xc0, 0xe6, 0xa5, 0x9e, 0xc5, 0xb5, 0x65, 0xee, 0x2c, 0x9b, |
|
3411 |
+ 0xb8, 0xd2, 0xcb, 0xc9, 0xc8, 0x51, 0xfd, 0xc6, 0xef, 0x3f, 0xff, 0xfd, 0x9d, 0xb6, 0x0d, 0x9b, |
|
3412 |
+ 0x92, 0x7c, 0x73, 0x64, 0x7a, 0xa6, 0x4d, 0xfd, 0xbb, 0xa8, 0xf1, 0x93, 0x26, 0xdd, 0x6a, 0xca, |
|
3413 |
+ 0xff, 0x5c, 0xfc, 0x2d, 0x82, 0x9d, 0x25, 0x6d, 0x8e, 0x8d, 0xa5, 0x17, 0xb6, 0x72, 0x1e, 0x4a, |
|
3414 |
+ 0x6f, 0x5c, 0x21, 0x2c, 0x39, 0x20, 0xfa, 0x2d, 0xa9, 0xeb, 0x26, 0x5c, 0x53, 0xba, 0xce, 0x98, |
|
3415 |
+ 0x3f, 0xa4, 0xfe, 0x82, 0x4a, 0xfc, 0x15, 0x82, 0x7c, 0xe2, 0xae, 0xf1, 0xed, 0x65, 0xcf, 0x5f, |
|
3416 |
+ 0xec, 0xdb, 0xe5, 0x3a, 0x96, 0x34, 0xcd, 0x7f, 0xd2, 0x51, 0x43, 0xcd, 0xe2, 0xc5, 0x8b, 0x72, |
|
3417 |
+ 0xea, 0xcf, 0x17, 0xe5, 0xd4, 0x97, 0x41, 0x19, 0x5d, 0x04, 0x65, 0xf4, 0x47, 0x50, 0x46, 0x7f, |
|
3418 |
+ 0x05, 0x65, 0xd4, 0xcf, 0xc8, 0x17, 0xf7, 0x5b, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x95, 0x7b, |
|
3419 |
+ 0x3c, 0x04, 0xe0, 0x08, 0x00, 0x00, |
|
3416 | 3420 |
} |
... | ... |
@@ -4,7 +4,7 @@ package docker.swarmkit.v1; |
4 | 4 |
|
5 | 5 |
import "gogoproto/gogo.proto"; |
6 | 6 |
import "google/protobuf/timestamp.proto"; |
7 |
-import "plugin/plugin.proto"; |
|
7 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
8 | 8 |
|
9 | 9 |
// LogStream defines the stream from which the log message came. |
10 | 10 |
enum LogStream { |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: objects.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/objects.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -7686,102 +7686,103 @@ var ( |
7686 | 7686 |
ErrIntOverflowObjects = fmt.Errorf("proto: integer overflow") |
7687 | 7687 |
) |
7688 | 7688 |
|
7689 |
-func init() { proto.RegisterFile("objects.proto", fileDescriptorObjects) } |
|
7689 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/objects.proto", fileDescriptorObjects) } |
|
7690 | 7690 |
|
7691 | 7691 |
var fileDescriptorObjects = []byte{ |
7692 |
- // 1491 bytes of a gzipped FileDescriptorProto |
|
7693 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcf, 0x6f, 0x1b, 0x4f, |
|
7694 |
- 0x15, 0xef, 0xda, 0x1b, 0xff, 0x78, 0x4e, 0x4c, 0x98, 0x86, 0xb0, 0x35, 0xc1, 0x0e, 0xae, 0x40, |
|
7695 |
- 0x15, 0xaa, 0x9c, 0x12, 0x0a, 0x4a, 0x03, 0xa5, 0xb5, 0x93, 0xa8, 0xb5, 0x4a, 0x69, 0x34, 0x2d, |
|
7696 |
- 0x2d, 0xb7, 0x65, 0xb2, 0x3b, 0x75, 0x17, 0xaf, 0x77, 0x56, 0x3b, 0x63, 0x17, 0xdf, 0x38, 0x87, |
|
7697 |
- 0x3f, 0x20, 0x37, 0x0e, 0xfd, 0x17, 0xe0, 0xc2, 0x85, 0x03, 0xa7, 0x1e, 0x39, 0x21, 0x4e, 0x11, |
|
7698 |
- 0xf5, 0x7f, 0x81, 0xc4, 0xe1, 0xab, 0x99, 0x9d, 0xb5, 0x37, 0xf1, 0x3a, 0x49, 0xbf, 0xaa, 0xa2, |
|
7699 |
- 0xef, 0x29, 0x33, 0x3b, 0x9f, 0xcf, 0x9b, 0xf7, 0xde, 0xbc, 0x5f, 0x31, 0xac, 0xb0, 0xa3, 0x3f, |
|
7700 |
- 0x50, 0x47, 0xf0, 0x56, 0x18, 0x31, 0xc1, 0x10, 0x72, 0x99, 0xd3, 0xa7, 0x51, 0x8b, 0xbf, 0x27, |
|
7701 |
- 0xd1, 0xa0, 0xef, 0x89, 0xd6, 0xe8, 0x27, 0xb5, 0x8a, 0x18, 0x87, 0x54, 0x03, 0x6a, 0x15, 0x1e, |
|
7702 |
- 0x52, 0x27, 0xd9, 0x34, 0x7a, 0x8c, 0xf5, 0x7c, 0xba, 0xa5, 0x76, 0x47, 0xc3, 0xb7, 0x5b, 0xc2, |
|
7703 |
- 0x1b, 0x50, 0x2e, 0xc8, 0x20, 0xd4, 0x80, 0xb5, 0x1e, 0xeb, 0x31, 0xb5, 0xdc, 0x92, 0x2b, 0xfd, |
|
7704 |
- 0xf5, 0xd6, 0x79, 0x1a, 0x09, 0xc6, 0xfa, 0xe8, 0x66, 0xe8, 0x0f, 0x7b, 0x5e, 0xb0, 0x15, 0xff, |
|
7705 |
- 0x89, 0x3f, 0x36, 0xff, 0x6e, 0x80, 0xf9, 0x9c, 0x0a, 0x82, 0x7e, 0x01, 0xc5, 0x11, 0x8d, 0xb8, |
|
7706 |
- 0xc7, 0x02, 0xcb, 0xd8, 0x34, 0xee, 0x54, 0xb6, 0xbf, 0xd7, 0x9a, 0xd7, 0xb7, 0xf5, 0x3a, 0x86, |
|
7707 |
- 0x74, 0xcc, 0x8f, 0xa7, 0x8d, 0x1b, 0x38, 0x61, 0xa0, 0x07, 0x00, 0x4e, 0x44, 0x89, 0xa0, 0xae, |
|
7708 |
- 0x4d, 0x84, 0x95, 0x53, 0xfc, 0x5a, 0x2b, 0x56, 0xa5, 0x95, 0xa8, 0xd2, 0x7a, 0x95, 0x58, 0x80, |
|
7709 |
- 0xcb, 0x1a, 0xdd, 0x16, 0x92, 0x3a, 0x0c, 0xdd, 0x84, 0x9a, 0xbf, 0x9c, 0xaa, 0xd1, 0x6d, 0xd1, |
|
7710 |
- 0xfc, 0xab, 0x09, 0xe6, 0x6f, 0x98, 0x4b, 0xd1, 0x3a, 0xe4, 0x3c, 0x57, 0xa9, 0x5d, 0xee, 0x14, |
|
7711 |
- 0x26, 0xa7, 0x8d, 0x5c, 0x77, 0x1f, 0xe7, 0x3c, 0x17, 0x6d, 0x83, 0x39, 0xa0, 0x82, 0x68, 0x85, |
|
7712 |
- 0xac, 0x2c, 0x83, 0xa4, 0xed, 0xda, 0x1a, 0x85, 0x45, 0x3f, 0x07, 0x53, 0x3e, 0x83, 0xd6, 0x64, |
|
7713 |
- 0x23, 0x8b, 0x23, 0xef, 0x7c, 0x19, 0x52, 0x27, 0xe1, 0x49, 0x3c, 0x3a, 0x80, 0x8a, 0x4b, 0xb9, |
|
7714 |
- 0x13, 0x79, 0xa1, 0x90, 0x3e, 0x34, 0x15, 0xfd, 0xf6, 0x22, 0xfa, 0xfe, 0x0c, 0x8a, 0xd3, 0x3c, |
|
7715 |
- 0xf4, 0x4b, 0x28, 0x70, 0x41, 0xc4, 0x90, 0x5b, 0x4b, 0x4a, 0x42, 0x7d, 0xa1, 0x02, 0x0a, 0xa5, |
|
7716 |
- 0x55, 0xd0, 0x1c, 0xf4, 0x14, 0xaa, 0x03, 0x12, 0x90, 0x1e, 0x8d, 0x6c, 0x2d, 0xa5, 0xa0, 0xa4, |
|
7717 |
- 0xfc, 0x20, 0xd3, 0xf4, 0x18, 0x19, 0x0b, 0xc2, 0x2b, 0x83, 0xf4, 0x16, 0x1d, 0x00, 0x10, 0x21, |
|
7718 |
- 0x88, 0xf3, 0x6e, 0x40, 0x03, 0x61, 0x15, 0x95, 0x94, 0x1f, 0x66, 0xea, 0x42, 0xc5, 0x7b, 0x16, |
|
7719 |
- 0xf5, 0xdb, 0x53, 0x30, 0x4e, 0x11, 0xd1, 0x13, 0xa8, 0x38, 0x34, 0x12, 0xde, 0x5b, 0xcf, 0x21, |
|
7720 |
- 0x82, 0x5a, 0x25, 0x25, 0xa7, 0x91, 0x25, 0x67, 0x6f, 0x06, 0xd3, 0x46, 0xa5, 0x99, 0xe8, 0x1e, |
|
7721 |
- 0x98, 0x11, 0xf3, 0xa9, 0x55, 0xde, 0x34, 0xee, 0x54, 0x17, 0x3f, 0x0b, 0x66, 0x3e, 0xc5, 0x0a, |
|
7722 |
- 0xb9, 0xbb, 0x7e, 0x7c, 0xd2, 0x44, 0xb0, 0x5a, 0x32, 0x56, 0x0d, 0x15, 0x1a, 0xc6, 0x3d, 0xe3, |
|
7723 |
- 0x77, 0xc6, 0xef, 0x8d, 0xe6, 0xff, 0xf3, 0x50, 0x7c, 0x49, 0xa3, 0x91, 0xe7, 0x7c, 0xd9, 0xc0, |
|
7724 |
- 0x79, 0x70, 0x26, 0x70, 0x32, 0x6d, 0xd4, 0xd7, 0xce, 0xc5, 0xce, 0x0e, 0x94, 0x68, 0xe0, 0x86, |
|
7725 |
- 0xcc, 0x0b, 0x84, 0x0e, 0x9c, 0x4c, 0x03, 0x0f, 0x34, 0x06, 0x4f, 0xd1, 0xe8, 0x00, 0x56, 0xe2, |
|
7726 |
- 0x7c, 0xb0, 0xcf, 0x44, 0xcd, 0x66, 0x16, 0xfd, 0xb7, 0x0a, 0xa8, 0x9f, 0x7b, 0x79, 0x98, 0xda, |
|
7727 |
- 0xa1, 0x7d, 0x58, 0x09, 0x23, 0x3a, 0xf2, 0xd8, 0x90, 0xdb, 0xca, 0x88, 0xc2, 0x95, 0x8c, 0xc0, |
|
7728 |
- 0xcb, 0x09, 0x4b, 0xee, 0xd0, 0xaf, 0x60, 0x59, 0x92, 0xed, 0xa4, 0x8e, 0xc0, 0xa5, 0x75, 0x04, |
|
7729 |
- 0xab, 0x92, 0xa7, 0x37, 0xe8, 0x05, 0x7c, 0xe7, 0x8c, 0x16, 0x53, 0x41, 0x95, 0xcb, 0x05, 0xdd, |
|
7730 |
- 0x4c, 0x6b, 0xa2, 0x3f, 0xee, 0xa2, 0xe3, 0x93, 0x66, 0x15, 0x96, 0xd3, 0x21, 0xd0, 0xfc, 0x4b, |
|
7731 |
- 0x0e, 0x4a, 0x89, 0x23, 0xd1, 0x7d, 0xfd, 0x66, 0xc6, 0x62, 0xaf, 0x25, 0x58, 0x65, 0x6f, 0xfc, |
|
7732 |
- 0x5c, 0xf7, 0x61, 0x29, 0x64, 0x91, 0xe0, 0x56, 0x6e, 0x33, 0xbf, 0x28, 0x45, 0x0f, 0x59, 0x24, |
|
7733 |
- 0xf6, 0x58, 0xf0, 0xd6, 0xeb, 0xe1, 0x18, 0x8c, 0xde, 0x40, 0x65, 0xe4, 0x45, 0x62, 0x48, 0x7c, |
|
7734 |
- 0xdb, 0x0b, 0xb9, 0x95, 0x57, 0xdc, 0x1f, 0x5d, 0x74, 0x65, 0xeb, 0x75, 0x8c, 0xef, 0x1e, 0x76, |
|
7735 |
- 0xaa, 0x93, 0xd3, 0x06, 0x4c, 0xb7, 0x1c, 0x83, 0x16, 0xd5, 0x0d, 0x79, 0xed, 0x39, 0x94, 0xa7, |
|
7736 |
- 0x27, 0xe8, 0x2e, 0x40, 0x10, 0x67, 0xa4, 0x3d, 0x8d, 0xec, 0x95, 0xc9, 0x69, 0xa3, 0xac, 0xf3, |
|
7737 |
- 0xb4, 0xbb, 0x8f, 0xcb, 0x1a, 0xd0, 0x75, 0x11, 0x02, 0x93, 0xb8, 0x6e, 0xa4, 0xe2, 0xbc, 0x8c, |
|
7738 |
- 0xd5, 0xba, 0xf9, 0xe7, 0x22, 0x98, 0xaf, 0x08, 0xef, 0x5f, 0x77, 0x55, 0x95, 0x77, 0xce, 0x65, |
|
7739 |
- 0xc6, 0x5d, 0x00, 0x1e, 0xc7, 0x9b, 0x34, 0xc7, 0x9c, 0x99, 0xa3, 0xa3, 0x50, 0x9a, 0xa3, 0x01, |
|
7740 |
- 0xb1, 0x39, 0xdc, 0x67, 0x42, 0x25, 0x81, 0x89, 0xd5, 0x1a, 0xdd, 0x86, 0x62, 0xc0, 0x5c, 0x45, |
|
7741 |
- 0x2f, 0x28, 0x3a, 0x4c, 0x4e, 0x1b, 0x05, 0x59, 0x2b, 0xba, 0xfb, 0xb8, 0x20, 0x8f, 0xba, 0xae, |
|
7742 |
- 0x2c, 0x53, 0x24, 0x08, 0x98, 0x20, 0xb2, 0x06, 0x73, 0x5d, 0xee, 0x32, 0xa3, 0xbf, 0x3d, 0x83, |
|
7743 |
- 0x25, 0x65, 0x2a, 0xc5, 0x44, 0xaf, 0xe1, 0x66, 0xa2, 0x6f, 0x5a, 0x60, 0xe9, 0x73, 0x04, 0x22, |
|
7744 |
- 0x2d, 0x21, 0x75, 0x92, 0x6a, 0x0b, 0xe5, 0xc5, 0x6d, 0x41, 0x79, 0x30, 0xab, 0x2d, 0x74, 0x60, |
|
7745 |
- 0xc5, 0xa5, 0xdc, 0x8b, 0xa8, 0xab, 0xca, 0x04, 0x55, 0x99, 0x59, 0xdd, 0xfe, 0xfe, 0x45, 0x42, |
|
7746 |
- 0x28, 0x5e, 0xd6, 0x1c, 0xb5, 0x43, 0x6d, 0x28, 0xe9, 0xb8, 0xe1, 0x56, 0x45, 0xc5, 0xee, 0x15, |
|
7747 |
- 0xdb, 0xc1, 0x94, 0x76, 0xa6, 0xcc, 0x2d, 0x7f, 0x56, 0x99, 0x7b, 0x00, 0xe0, 0xb3, 0x9e, 0xed, |
|
7748 |
- 0x46, 0xde, 0x88, 0x46, 0xd6, 0x8a, 0x1e, 0x12, 0x32, 0xb8, 0xfb, 0x0a, 0x81, 0xcb, 0x3e, 0xeb, |
|
7749 |
- 0xc5, 0xcb, 0xb9, 0xa2, 0x54, 0xfd, 0xcc, 0xa2, 0x44, 0xa0, 0x46, 0x38, 0xf7, 0x7a, 0x01, 0x75, |
|
7750 |
- 0xed, 0x1e, 0x0d, 0x68, 0xe4, 0x39, 0x76, 0x44, 0x39, 0x1b, 0x46, 0x0e, 0xe5, 0xd6, 0xb7, 0x94, |
|
7751 |
- 0x27, 0x32, 0xdb, 0xfc, 0x93, 0x18, 0x8c, 0x35, 0x16, 0x5b, 0x89, 0x98, 0x73, 0x07, 0x7c, 0xb7, |
|
7752 |
- 0x76, 0x7c, 0xd2, 0x5c, 0x87, 0xb5, 0x74, 0x99, 0xda, 0x31, 0x1e, 0x1b, 0x4f, 0x8d, 0x43, 0xa3, |
|
7753 |
- 0xf9, 0xcf, 0x1c, 0x7c, 0x7b, 0xce, 0xa7, 0xe8, 0x67, 0x50, 0xd4, 0x5e, 0xbd, 0x68, 0x58, 0xd3, |
|
7754 |
- 0x3c, 0x9c, 0x60, 0xd1, 0x06, 0x94, 0x65, 0x8a, 0x53, 0xce, 0x69, 0x5c, 0xbc, 0xca, 0x78, 0xf6, |
|
7755 |
- 0x01, 0x59, 0x50, 0x24, 0xbe, 0x47, 0xe4, 0x59, 0x5e, 0x9d, 0x25, 0x5b, 0x34, 0x84, 0xf5, 0xd8, |
|
7756 |
- 0xf5, 0xf6, 0xac, 0xb5, 0xdb, 0x2c, 0x14, 0xdc, 0x32, 0x95, 0xfd, 0x8f, 0xae, 0x14, 0x09, 0xfa, |
|
7757 |
- 0x71, 0x66, 0x1f, 0x5e, 0x84, 0x82, 0x1f, 0x04, 0x22, 0x1a, 0xe3, 0x35, 0x37, 0xe3, 0xa8, 0xf6, |
|
7758 |
- 0x04, 0x6e, 0x2d, 0xa4, 0xa0, 0x55, 0xc8, 0xf7, 0xe9, 0x38, 0x2e, 0x4f, 0x58, 0x2e, 0xd1, 0x1a, |
|
7759 |
- 0x2c, 0x8d, 0x88, 0x3f, 0xa4, 0xba, 0x9a, 0xc5, 0x9b, 0xdd, 0xdc, 0x8e, 0xd1, 0xfc, 0x90, 0x83, |
|
7760 |
- 0xa2, 0x56, 0xe7, 0xba, 0x5b, 0xbe, 0xbe, 0x76, 0xae, 0xb0, 0x3d, 0x84, 0x65, 0xed, 0xd2, 0x38, |
|
7761 |
- 0x23, 0xcd, 0x4b, 0x63, 0xba, 0x12, 0xe3, 0xe3, 0x6c, 0x7c, 0x08, 0xa6, 0x17, 0x92, 0x81, 0x6e, |
|
7762 |
- 0xf7, 0x99, 0x37, 0x77, 0x0f, 0xdb, 0xcf, 0x5f, 0x84, 0x71, 0x61, 0x29, 0x4d, 0x4e, 0x1b, 0xa6, |
|
7763 |
- 0xfc, 0x80, 0x15, 0x2d, 0xb3, 0x31, 0xfe, 0x6d, 0x09, 0x8a, 0x7b, 0xfe, 0x90, 0x0b, 0x1a, 0x5d, |
|
7764 |
- 0xb7, 0x93, 0xf4, 0xb5, 0x73, 0x4e, 0xda, 0x83, 0x62, 0xc4, 0x98, 0xb0, 0x1d, 0x72, 0x91, 0x7f, |
|
7765 |
- 0x30, 0x63, 0x62, 0xaf, 0xdd, 0xa9, 0x4a, 0xa2, 0xac, 0xed, 0xf1, 0x1e, 0x17, 0x24, 0x75, 0x8f, |
|
7766 |
- 0xa0, 0x37, 0xb0, 0x9e, 0x74, 0xc4, 0x23, 0xc6, 0x04, 0x17, 0x11, 0x09, 0xed, 0x3e, 0x1d, 0xcb, |
|
7767 |
- 0x59, 0x29, 0xbf, 0x68, 0x36, 0x3e, 0x08, 0x9c, 0x68, 0xac, 0x9c, 0xf7, 0x8c, 0x8e, 0xf1, 0x9a, |
|
7768 |
- 0x16, 0xd0, 0x49, 0xf8, 0xcf, 0xe8, 0x98, 0xa3, 0x47, 0xb0, 0x41, 0xa7, 0x30, 0x29, 0xd1, 0xf6, |
|
7769 |
- 0xc9, 0x40, 0xf6, 0x7a, 0xdb, 0xf1, 0x99, 0xd3, 0x57, 0xed, 0xc6, 0xc4, 0xb7, 0x68, 0x5a, 0xd4, |
|
7770 |
- 0xaf, 0x63, 0xc4, 0x9e, 0x04, 0x20, 0x0e, 0xd6, 0x91, 0x4f, 0x9c, 0xbe, 0xef, 0x71, 0xf9, 0xef, |
|
7771 |
- 0x4f, 0x6a, 0xdc, 0x95, 0x1d, 0x43, 0xea, 0xb6, 0x73, 0x81, 0xb7, 0x5a, 0x9d, 0x19, 0x37, 0x35, |
|
7772 |
- 0x3c, 0xeb, 0x8c, 0xfa, 0xee, 0x51, 0xf6, 0x29, 0xea, 0x40, 0x65, 0x18, 0xc8, 0xeb, 0x63, 0x1f, |
|
7773 |
- 0x94, 0xaf, 0xea, 0x03, 0x88, 0x59, 0xd2, 0xf2, 0xda, 0x08, 0x36, 0x2e, 0xba, 0x3c, 0x23, 0x37, |
|
7774 |
- 0x1f, 0xa7, 0x73, 0xb3, 0xb2, 0xfd, 0xe3, 0xac, 0xfb, 0xb2, 0x45, 0xa6, 0xf2, 0x38, 0x33, 0x6c, |
|
7775 |
- 0xff, 0x61, 0x40, 0xe1, 0x25, 0x75, 0x22, 0x2a, 0xbe, 0x68, 0xd4, 0xee, 0x9c, 0x89, 0xda, 0x7a, |
|
7776 |
- 0xf6, 0x20, 0x2c, 0x6f, 0x9d, 0x0b, 0xda, 0x1a, 0x94, 0xbc, 0x40, 0xd0, 0x28, 0x20, 0xbe, 0x8a, |
|
7777 |
- 0xda, 0x12, 0x9e, 0xee, 0x33, 0x0d, 0xf8, 0x60, 0x40, 0x21, 0x9e, 0x14, 0xaf, 0xdb, 0x80, 0xf8, |
|
7778 |
- 0xd6, 0xf3, 0x06, 0x64, 0x2a, 0xf9, 0x3f, 0x03, 0x4a, 0x49, 0xc3, 0xfa, 0xa2, 0x6a, 0x9e, 0x9b, |
|
7779 |
- 0xbc, 0xf2, 0x5f, 0x7b, 0xf2, 0x42, 0x60, 0xf6, 0xbd, 0x40, 0xcf, 0x88, 0x58, 0xad, 0x51, 0x0b, |
|
7780 |
- 0x8a, 0x21, 0x19, 0xfb, 0x8c, 0xb8, 0xba, 0x50, 0xae, 0xcd, 0xfd, 0xb0, 0xd0, 0x0e, 0xc6, 0x38, |
|
7781 |
- 0x01, 0xed, 0xae, 0x1d, 0x9f, 0x34, 0x57, 0xa1, 0x9a, 0xb6, 0xfc, 0x9d, 0xd1, 0xfc, 0xb7, 0x01, |
|
7782 |
- 0xe5, 0x83, 0x3f, 0x0a, 0x1a, 0xa8, 0x79, 0xe0, 0x1b, 0x69, 0xfc, 0xe6, 0xfc, 0x8f, 0x0f, 0xe5, |
|
7783 |
- 0x33, 0xbf, 0x2b, 0x64, 0x3d, 0x6a, 0xc7, 0xfa, 0xf8, 0xa9, 0x7e, 0xe3, 0x3f, 0x9f, 0xea, 0x37, |
|
7784 |
- 0xfe, 0x34, 0xa9, 0x1b, 0x1f, 0x27, 0x75, 0xe3, 0x5f, 0x93, 0xba, 0xf1, 0xdf, 0x49, 0xdd, 0x38, |
|
7785 |
- 0x2a, 0x28, 0xff, 0xfc, 0xf4, 0xab, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x48, 0xcb, 0x39, 0xc2, |
|
7786 |
- 0x12, 0x00, 0x00, |
|
7692 |
+ // 1513 bytes of a gzipped FileDescriptorProto |
|
7693 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x6f, 0x1b, 0x4f, |
|
7694 |
+ 0x19, 0xef, 0xda, 0x1b, 0xbf, 0x3c, 0x4e, 0x4c, 0x98, 0x7f, 0x08, 0x5b, 0x13, 0xec, 0xe0, 0x0a, |
|
7695 |
+ 0x54, 0x55, 0x95, 0x53, 0x42, 0x81, 0x34, 0x50, 0x5a, 0x3b, 0x89, 0x5a, 0xab, 0x94, 0x46, 0xd3, |
|
7696 |
+ 0xd2, 0x72, 0x5b, 0x26, 0xbb, 0x53, 0x77, 0xf1, 0x7a, 0x67, 0xb5, 0x33, 0x76, 0xf1, 0x8d, 0x73, |
|
7697 |
+ 0xf8, 0x00, 0xb9, 0x71, 0xe8, 0x57, 0x80, 0x0b, 0x17, 0x0e, 0x9c, 0x7a, 0xe4, 0x84, 0x38, 0x45, |
|
7698 |
+ 0xd4, 0xdf, 0x02, 0x89, 0x03, 0x9a, 0xd9, 0x59, 0x7b, 0x13, 0xaf, 0x93, 0x14, 0x55, 0xd1, 0xff, |
|
7699 |
+ 0x94, 0x99, 0x9d, 0xdf, 0xef, 0x79, 0x9b, 0xe7, 0x65, 0x62, 0xb8, 0xdb, 0xf3, 0xc4, 0xbb, 0xe1, |
|
7700 |
+ 0x51, 0xcb, 0x61, 0x83, 0x2d, 0x97, 0x39, 0x7d, 0x1a, 0x6d, 0xf1, 0xf7, 0x24, 0x1a, 0xf4, 0x3d, |
|
7701 |
+ 0xb1, 0x45, 0x42, 0x6f, 0x8b, 0x1d, 0xfd, 0x8e, 0x3a, 0x82, 0xb7, 0xc2, 0x88, 0x09, 0x86, 0x50, |
|
7702 |
+ 0x0c, 0x69, 0x25, 0x90, 0xd6, 0xe8, 0x87, 0xb5, 0x3b, 0x97, 0x48, 0x10, 0xe3, 0x90, 0x6a, 0xfe, |
|
7703 |
+ 0xa5, 0x58, 0x1e, 0x52, 0x27, 0xc1, 0x36, 0x7a, 0x8c, 0xf5, 0x7c, 0xba, 0xa5, 0x76, 0x47, 0xc3, |
|
7704 |
+ 0xb7, 0x5b, 0xc2, 0x1b, 0x50, 0x2e, 0xc8, 0x20, 0xd4, 0x80, 0xb5, 0x1e, 0xeb, 0x31, 0xb5, 0xdc, |
|
7705 |
+ 0x92, 0x2b, 0xfd, 0xf5, 0xe6, 0x79, 0x1a, 0x09, 0xc6, 0xfa, 0xe8, 0xa7, 0x17, 0x68, 0x9f, 0xc2, |
|
7706 |
+ 0x43, 0x7f, 0xd8, 0xf3, 0x02, 0xfd, 0x27, 0x26, 0x36, 0xff, 0x6a, 0x80, 0xf9, 0x9c, 0x0a, 0x82, |
|
7707 |
+ 0x7e, 0x06, 0xc5, 0x11, 0x8d, 0xb8, 0xc7, 0x02, 0xcb, 0xd8, 0x34, 0x6e, 0x57, 0xb6, 0xbf, 0xd3, |
|
7708 |
+ 0x9a, 0x8f, 0x48, 0xeb, 0x75, 0x0c, 0xe9, 0x98, 0x1f, 0x4f, 0x1b, 0x37, 0x70, 0xc2, 0x40, 0x0f, |
|
7709 |
+ 0x00, 0x9c, 0x88, 0x12, 0x41, 0x5d, 0x9b, 0x08, 0x2b, 0xa7, 0xf8, 0xb5, 0x56, 0x6c, 0x6e, 0x2b, |
|
7710 |
+ 0xd1, 0xdf, 0x7a, 0x95, 0x78, 0x89, 0xcb, 0x1a, 0xdd, 0x16, 0x92, 0x3a, 0x0c, 0xdd, 0x84, 0x9a, |
|
7711 |
+ 0xbf, 0x9c, 0xaa, 0xd1, 0x6d, 0xd1, 0xfc, 0xb3, 0x09, 0xe6, 0xaf, 0x98, 0x4b, 0xd1, 0x3a, 0xe4, |
|
7712 |
+ 0x3c, 0x57, 0x99, 0x5d, 0xee, 0x14, 0x26, 0xa7, 0x8d, 0x5c, 0x77, 0x1f, 0xe7, 0x3c, 0x17, 0x6d, |
|
7713 |
+ 0x83, 0x39, 0xa0, 0x82, 0x68, 0x83, 0xac, 0x2c, 0x87, 0xa4, 0xef, 0xda, 0x1b, 0x85, 0x45, 0x3f, |
|
7714 |
+ 0x01, 0x53, 0x5e, 0x95, 0xb6, 0x64, 0x23, 0x8b, 0x23, 0x75, 0xbe, 0x0c, 0xa9, 0x93, 0xf0, 0x24, |
|
7715 |
+ 0x1e, 0x1d, 0x40, 0xc5, 0xa5, 0xdc, 0x89, 0xbc, 0x50, 0xc8, 0x18, 0x9a, 0x8a, 0x7e, 0x6b, 0x11, |
|
7716 |
+ 0x7d, 0x7f, 0x06, 0xc5, 0x69, 0x1e, 0xfa, 0x39, 0x14, 0xb8, 0x20, 0x62, 0xc8, 0xad, 0x25, 0x25, |
|
7717 |
+ 0xa1, 0xbe, 0xd0, 0x00, 0x85, 0xd2, 0x26, 0x68, 0x0e, 0x7a, 0x0a, 0xd5, 0x01, 0x09, 0x48, 0x8f, |
|
7718 |
+ 0x46, 0xb6, 0x96, 0x52, 0x50, 0x52, 0xbe, 0x97, 0xe9, 0x7a, 0x8c, 0x8c, 0x05, 0xe1, 0x95, 0x41, |
|
7719 |
+ 0x7a, 0x8b, 0x0e, 0x00, 0x88, 0x10, 0xc4, 0x79, 0x37, 0xa0, 0x81, 0xb0, 0x8a, 0x4a, 0xca, 0xf7, |
|
7720 |
+ 0x33, 0x6d, 0xa1, 0xe2, 0x3d, 0x8b, 0xfa, 0xed, 0x29, 0x18, 0xa7, 0x88, 0xe8, 0x09, 0x54, 0x1c, |
|
7721 |
+ 0x1a, 0x09, 0xef, 0xad, 0xe7, 0x10, 0x41, 0xad, 0x92, 0x92, 0xd3, 0xc8, 0x92, 0xb3, 0x37, 0x83, |
|
7722 |
+ 0x69, 0xa7, 0xd2, 0x4c, 0x74, 0x0f, 0xcc, 0x88, 0xf9, 0xd4, 0x2a, 0x6f, 0x1a, 0xb7, 0xab, 0x8b, |
|
7723 |
+ 0xaf, 0x05, 0x33, 0x9f, 0x62, 0x85, 0xdc, 0x5d, 0x3f, 0x3e, 0x69, 0x22, 0x58, 0x2d, 0x19, 0xab, |
|
7724 |
+ 0x86, 0x4a, 0x0d, 0xe3, 0x9e, 0xf1, 0x1b, 0xe3, 0xb7, 0x46, 0xf3, 0xbf, 0x79, 0x28, 0xbe, 0xa4, |
|
7725 |
+ 0xd1, 0xc8, 0x73, 0xbe, 0x6c, 0xe2, 0x3c, 0x38, 0x93, 0x38, 0x99, 0x3e, 0x6a, 0xb5, 0x73, 0xb9, |
|
7726 |
+ 0xb3, 0x03, 0x25, 0x1a, 0xb8, 0x21, 0xf3, 0x02, 0xa1, 0x13, 0x27, 0xd3, 0xc1, 0x03, 0x8d, 0xc1, |
|
7727 |
+ 0x53, 0x34, 0x3a, 0x80, 0x95, 0xb8, 0x1e, 0xec, 0x33, 0x59, 0xb3, 0x99, 0x45, 0xff, 0xb5, 0x02, |
|
7728 |
+ 0xea, 0xeb, 0x5e, 0x1e, 0xa6, 0x76, 0x68, 0x1f, 0x56, 0xc2, 0x88, 0x8e, 0x3c, 0x36, 0xe4, 0xb6, |
|
7729 |
+ 0x72, 0xa2, 0x70, 0x25, 0x27, 0xf0, 0x72, 0xc2, 0x92, 0x3b, 0xf4, 0x0b, 0x58, 0x96, 0x64, 0x3b, |
|
7730 |
+ 0xe9, 0x23, 0x70, 0x69, 0x1f, 0xc1, 0x15, 0x49, 0xd0, 0x1b, 0xf4, 0x02, 0xbe, 0x75, 0xc6, 0x8a, |
|
7731 |
+ 0xa9, 0xa0, 0xca, 0xe5, 0x82, 0xbe, 0x4a, 0x5b, 0xa2, 0x3f, 0xee, 0xa2, 0xe3, 0x93, 0x66, 0x15, |
|
7732 |
+ 0x96, 0xd3, 0x29, 0xd0, 0xfc, 0x53, 0x0e, 0x4a, 0x49, 0x20, 0xd1, 0x7d, 0x7d, 0x67, 0xc6, 0xe2, |
|
7733 |
+ 0xa8, 0x25, 0x58, 0xe5, 0x6f, 0x7c, 0x5d, 0xf7, 0x61, 0x29, 0x64, 0x91, 0xe0, 0x56, 0x6e, 0x33, |
|
7734 |
+ 0xbf, 0xa8, 0x44, 0x0f, 0x59, 0x24, 0xf6, 0x58, 0xf0, 0xd6, 0xeb, 0xe1, 0x18, 0x8c, 0xde, 0x40, |
|
7735 |
+ 0x65, 0xe4, 0x45, 0x62, 0x48, 0x7c, 0xdb, 0x0b, 0xb9, 0x95, 0x57, 0xdc, 0x1f, 0x5c, 0xa4, 0xb2, |
|
7736 |
+ 0xf5, 0x3a, 0xc6, 0x77, 0x0f, 0x3b, 0xd5, 0xc9, 0x69, 0x03, 0xa6, 0x5b, 0x8e, 0x41, 0x8b, 0xea, |
|
7737 |
+ 0x86, 0xbc, 0xf6, 0x1c, 0xca, 0xd3, 0x13, 0x74, 0x17, 0x20, 0x88, 0x2b, 0xd2, 0x9e, 0x66, 0xf6, |
|
7738 |
+ 0xca, 0xe4, 0xb4, 0x51, 0xd6, 0x75, 0xda, 0xdd, 0xc7, 0x65, 0x0d, 0xe8, 0xba, 0x08, 0x81, 0x49, |
|
7739 |
+ 0x5c, 0x37, 0x52, 0x79, 0x5e, 0xc6, 0x6a, 0xdd, 0xfc, 0x63, 0x11, 0xcc, 0x57, 0x84, 0xf7, 0xaf, |
|
7740 |
+ 0xbb, 0xab, 0x4a, 0x9d, 0x73, 0x95, 0x71, 0x17, 0x80, 0xc7, 0xf9, 0x26, 0xdd, 0x31, 0x67, 0xee, |
|
7741 |
+ 0xe8, 0x2c, 0x94, 0xee, 0x68, 0x40, 0xec, 0x0e, 0xf7, 0x99, 0x50, 0x45, 0x60, 0x62, 0xb5, 0x46, |
|
7742 |
+ 0xb7, 0xa0, 0x18, 0x30, 0x57, 0xd1, 0x0b, 0x8a, 0x0e, 0x93, 0xd3, 0x46, 0x41, 0xf6, 0x8a, 0xee, |
|
7743 |
+ 0x3e, 0x2e, 0xc8, 0xa3, 0xae, 0x2b, 0xdb, 0x14, 0x09, 0x02, 0x26, 0x88, 0xec, 0xc1, 0x5c, 0xb7, |
|
7744 |
+ 0xbb, 0xcc, 0xec, 0x6f, 0xcf, 0x60, 0x49, 0x9b, 0x4a, 0x31, 0xd1, 0x6b, 0xf8, 0x2a, 0xb1, 0x37, |
|
7745 |
+ 0x2d, 0xb0, 0xf4, 0x39, 0x02, 0x91, 0x96, 0x90, 0x3a, 0x49, 0x8d, 0x85, 0xf2, 0xe2, 0xb1, 0xa0, |
|
7746 |
+ 0x22, 0x98, 0x35, 0x16, 0x3a, 0xb0, 0xe2, 0x52, 0xee, 0x45, 0xd4, 0x55, 0x6d, 0x82, 0xaa, 0xca, |
|
7747 |
+ 0xac, 0x6e, 0x7f, 0xf7, 0x22, 0x21, 0x14, 0x2f, 0x6b, 0x8e, 0xda, 0xa1, 0x36, 0x94, 0x74, 0xde, |
|
7748 |
+ 0x70, 0xab, 0xa2, 0x72, 0xf7, 0x8a, 0xe3, 0x60, 0x4a, 0x3b, 0xd3, 0xe6, 0x96, 0x3f, 0xab, 0xcd, |
|
7749 |
+ 0x3d, 0x00, 0xf0, 0x59, 0xcf, 0x76, 0x23, 0x6f, 0x44, 0x23, 0x6b, 0x45, 0x3f, 0x12, 0x32, 0xb8, |
|
7750 |
+ 0xfb, 0x0a, 0x81, 0xcb, 0x3e, 0xeb, 0xc5, 0xcb, 0xb9, 0xa6, 0x54, 0xfd, 0xcc, 0xa6, 0x44, 0xa0, |
|
7751 |
+ 0x46, 0x38, 0xf7, 0x7a, 0x01, 0x75, 0xed, 0x1e, 0x0d, 0x68, 0xe4, 0x39, 0x76, 0x44, 0x39, 0x1b, |
|
7752 |
+ 0x46, 0x0e, 0xe5, 0xd6, 0x37, 0x54, 0x24, 0x32, 0xc7, 0xfc, 0x93, 0x18, 0x8c, 0x35, 0x16, 0x5b, |
|
7753 |
+ 0x89, 0x98, 0x73, 0x07, 0x7c, 0xb7, 0x76, 0x7c, 0xd2, 0x5c, 0x87, 0xb5, 0x74, 0x9b, 0xda, 0x31, |
|
7754 |
+ 0x1e, 0x1b, 0x4f, 0x8d, 0x43, 0xa3, 0xf9, 0xf7, 0x1c, 0x7c, 0x73, 0x2e, 0xa6, 0xe8, 0xc7, 0x50, |
|
7755 |
+ 0xd4, 0x51, 0xbd, 0xe8, 0xb1, 0xa6, 0x79, 0x38, 0xc1, 0xa2, 0x0d, 0x28, 0xcb, 0x12, 0xa7, 0x9c, |
|
7756 |
+ 0xd3, 0xb8, 0x79, 0x95, 0xf1, 0xec, 0x03, 0xb2, 0xa0, 0x48, 0x7c, 0x8f, 0xc8, 0xb3, 0xbc, 0x3a, |
|
7757 |
+ 0x4b, 0xb6, 0x68, 0x08, 0xeb, 0x71, 0xe8, 0xed, 0xd9, 0x68, 0xb7, 0x59, 0x28, 0xb8, 0x65, 0x2a, |
|
7758 |
+ 0xff, 0x1f, 0x5d, 0x29, 0x13, 0xf4, 0xe5, 0xcc, 0x3e, 0xbc, 0x08, 0x05, 0x3f, 0x08, 0x44, 0x34, |
|
7759 |
+ 0xc6, 0x6b, 0x6e, 0xc6, 0x51, 0xed, 0x09, 0xdc, 0x5c, 0x48, 0x41, 0xab, 0x90, 0xef, 0xd3, 0x71, |
|
7760 |
+ 0xdc, 0x9e, 0xb0, 0x5c, 0xa2, 0x35, 0x58, 0x1a, 0x11, 0x7f, 0x48, 0x75, 0x37, 0x8b, 0x37, 0xbb, |
|
7761 |
+ 0xb9, 0x1d, 0xa3, 0xf9, 0x21, 0x07, 0x45, 0x6d, 0xce, 0x75, 0x8f, 0x7c, 0xad, 0x76, 0xae, 0xb1, |
|
7762 |
+ 0x3d, 0x84, 0x65, 0x1d, 0xd2, 0xb8, 0x22, 0xcd, 0x4b, 0x73, 0xba, 0x12, 0xe3, 0xe3, 0x6a, 0x7c, |
|
7763 |
+ 0x08, 0xa6, 0x17, 0x92, 0x81, 0x1e, 0xf7, 0x99, 0x9a, 0xbb, 0x87, 0xed, 0xe7, 0x2f, 0xc2, 0xb8, |
|
7764 |
+ 0xb1, 0x94, 0x26, 0xa7, 0x0d, 0x53, 0x7e, 0xc0, 0x8a, 0x96, 0x39, 0x18, 0xff, 0xb2, 0x04, 0xc5, |
|
7765 |
+ 0x3d, 0x7f, 0xc8, 0x05, 0x8d, 0xae, 0x3b, 0x48, 0x5a, 0xed, 0x5c, 0x90, 0xf6, 0xa0, 0x18, 0x31, |
|
7766 |
+ 0x26, 0x6c, 0x87, 0x5c, 0x14, 0x1f, 0xcc, 0x98, 0xd8, 0x6b, 0x77, 0xaa, 0x92, 0x28, 0x7b, 0x7b, |
|
7767 |
+ 0xbc, 0xc7, 0x05, 0x49, 0xdd, 0x23, 0xe8, 0x0d, 0xac, 0x27, 0x13, 0xf1, 0x88, 0x31, 0xc1, 0x45, |
|
7768 |
+ 0x44, 0x42, 0xbb, 0x4f, 0xc7, 0xf2, 0xad, 0x94, 0x5f, 0xf4, 0x36, 0x3e, 0x08, 0x9c, 0x68, 0xac, |
|
7769 |
+ 0x82, 0xf7, 0x8c, 0x8e, 0xf1, 0x9a, 0x16, 0xd0, 0x49, 0xf8, 0xcf, 0xe8, 0x98, 0xa3, 0x47, 0xb0, |
|
7770 |
+ 0x41, 0xa7, 0x30, 0x29, 0xd1, 0xf6, 0xc9, 0x40, 0xce, 0x7a, 0xdb, 0xf1, 0x99, 0xd3, 0x57, 0xe3, |
|
7771 |
+ 0xc6, 0xc4, 0x37, 0x69, 0x5a, 0xd4, 0x2f, 0x63, 0xc4, 0x9e, 0x04, 0x20, 0x0e, 0xd6, 0x91, 0x4f, |
|
7772 |
+ 0x9c, 0xbe, 0xef, 0x71, 0xf9, 0xef, 0x4f, 0xea, 0xb9, 0x2b, 0x27, 0x86, 0xb4, 0x6d, 0xe7, 0x82, |
|
7773 |
+ 0x68, 0xb5, 0x3a, 0x33, 0x6e, 0xea, 0xf1, 0xac, 0x2b, 0xea, 0xdb, 0x47, 0xd9, 0xa7, 0xa8, 0x03, |
|
7774 |
+ 0x95, 0x61, 0x20, 0xd5, 0xc7, 0x31, 0x28, 0x5f, 0x35, 0x06, 0x10, 0xb3, 0xa4, 0xe7, 0xb5, 0x11, |
|
7775 |
+ 0x6c, 0x5c, 0xa4, 0x3c, 0xa3, 0x36, 0x1f, 0xa7, 0x6b, 0xb3, 0xb2, 0x7d, 0x27, 0x4b, 0x5f, 0xb6, |
|
7776 |
+ 0xc8, 0x54, 0x1d, 0x67, 0xa6, 0xed, 0xdf, 0x0c, 0x28, 0xbc, 0xa4, 0x4e, 0x44, 0xc5, 0x17, 0xcd, |
|
7777 |
+ 0xda, 0x9d, 0x33, 0x59, 0x5b, 0xcf, 0x7e, 0x08, 0x4b, 0xad, 0x73, 0x49, 0x5b, 0x83, 0x92, 0x17, |
|
7778 |
+ 0x08, 0x1a, 0x05, 0xc4, 0x57, 0x59, 0x5b, 0xc2, 0xd3, 0x7d, 0xa6, 0x03, 0x1f, 0x0c, 0x28, 0xc4, |
|
7779 |
+ 0x2f, 0xc5, 0xeb, 0x76, 0x20, 0xd6, 0x7a, 0xde, 0x81, 0x4c, 0x23, 0xff, 0x63, 0x40, 0x29, 0x19, |
|
7780 |
+ 0x58, 0x5f, 0xd4, 0xcc, 0x73, 0x2f, 0xaf, 0xfc, 0xff, 0xfd, 0xf2, 0x42, 0x60, 0xf6, 0xbd, 0x40, |
|
7781 |
+ 0xbf, 0x11, 0xb1, 0x5a, 0xa3, 0x16, 0x14, 0x43, 0x32, 0xf6, 0x19, 0x71, 0x75, 0xa3, 0x5c, 0x9b, |
|
7782 |
+ 0xfb, 0x61, 0xa1, 0x1d, 0x8c, 0x71, 0x02, 0xda, 0x5d, 0x3b, 0x3e, 0x69, 0xae, 0x42, 0x35, 0xed, |
|
7783 |
+ 0xf9, 0x3b, 0xa3, 0xf9, 0x4f, 0x03, 0xca, 0x07, 0xbf, 0x17, 0x34, 0x50, 0xef, 0x81, 0xaf, 0xa5, |
|
7784 |
+ 0xf3, 0x9b, 0xf3, 0x3f, 0x3e, 0x94, 0xcf, 0xfc, 0xae, 0x90, 0x75, 0xa9, 0x1d, 0xeb, 0xe3, 0xa7, |
|
7785 |
+ 0xfa, 0x8d, 0x7f, 0x7d, 0xaa, 0xdf, 0xf8, 0xc3, 0xa4, 0x6e, 0x7c, 0x9c, 0xd4, 0x8d, 0x7f, 0x4c, |
|
7786 |
+ 0xea, 0xc6, 0xbf, 0x27, 0x75, 0xe3, 0xa8, 0xa0, 0xe2, 0xf3, 0xa3, 0xff, 0x05, 0x00, 0x00, 0xff, |
|
7787 |
+ 0xff, 0x34, 0x0b, 0x7d, 0x79, 0x43, 0x13, 0x00, 0x00, |
|
7787 | 7788 |
} |
... | ... |
@@ -2,12 +2,12 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "types.proto"; |
|
6 |
-import "specs.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/specs.proto"; |
|
7 | 7 |
import "google/protobuf/timestamp.proto"; |
8 | 8 |
import "gogoproto/gogo.proto"; |
9 | 9 |
import "google/protobuf/any.proto"; |
10 |
-import "plugin/plugin.proto"; |
|
10 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
11 | 11 |
|
12 | 12 |
// This file contains definitions for all first-class objects in the cluster |
13 | 13 |
// API. Such types typically have a corresponding specification, with the |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: raft.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/raft.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -907,7 +907,7 @@ var _Raft_serviceDesc = grpc.ServiceDesc{ |
907 | 907 |
}, |
908 | 908 |
}, |
909 | 909 |
Streams: []grpc.StreamDesc{}, |
910 |
- Metadata: "raft.proto", |
|
910 |
+ Metadata: "github.com/docker/swarmkit/api/raft.proto", |
|
911 | 911 |
} |
912 | 912 |
|
913 | 913 |
// Client API for RaftMembership service |
... | ... |
@@ -1008,7 +1008,7 @@ var _RaftMembership_serviceDesc = grpc.ServiceDesc{ |
1008 | 1008 |
}, |
1009 | 1009 |
}, |
1010 | 1010 |
Streams: []grpc.StreamDesc{}, |
1011 |
- Metadata: "raft.proto", |
|
1011 |
+ Metadata: "github.com/docker/swarmkit/api/raft.proto", |
|
1012 | 1012 |
} |
1013 | 1013 |
|
1014 | 1014 |
func (m *RaftMember) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -3571,68 +3571,69 @@ var ( |
3571 | 3571 |
ErrIntOverflowRaft = fmt.Errorf("proto: integer overflow") |
3572 | 3572 |
) |
3573 | 3573 |
|
3574 |
-func init() { proto.RegisterFile("raft.proto", fileDescriptorRaft) } |
|
3574 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/raft.proto", fileDescriptorRaft) } |
|
3575 | 3575 |
|
3576 | 3576 |
var fileDescriptorRaft = []byte{ |
3577 |
- // 953 bytes of a gzipped FileDescriptorProto |
|
3578 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0x4d, 0x6f, 0x1b, 0x45, |
|
3579 |
- 0x18, 0xc7, 0x77, 0xd7, 0x5b, 0x27, 0x79, 0xdc, 0xbc, 0x68, 0x42, 0xc2, 0x76, 0x29, 0x8e, 0xbb, |
|
3580 |
- 0x45, 0xc2, 0x2d, 0x64, 0x2d, 0x0c, 0x12, 0xa8, 0xd0, 0x43, 0xec, 0x58, 0xb2, 0x69, 0xeb, 0x54, |
|
3581 |
- 0x9b, 0x04, 0x7a, 0x0b, 0xeb, 0xdd, 0x89, 0xbb, 0xd8, 0xde, 0x31, 0x33, 0x63, 0x07, 0x2e, 0xa8, |
|
3582 |
- 0x47, 0x94, 0x2b, 0x07, 0x10, 0x52, 0x4f, 0x70, 0xee, 0x07, 0xe0, 0x03, 0xa0, 0x88, 0x13, 0x37, |
|
3583 |
- 0x38, 0x45, 0xd4, 0x1f, 0x00, 0xbe, 0x02, 0x9a, 0xd9, 0x5d, 0x3b, 0x38, 0x6b, 0x37, 0x17, 0x7b, |
|
3584 |
- 0x3c, 0xf3, 0xfb, 0x3f, 0xff, 0x79, 0xe6, 0xe5, 0x19, 0x03, 0x50, 0xf7, 0x98, 0xdb, 0x7d, 0x4a, |
|
3585 |
- 0x38, 0x41, 0xc8, 0x27, 0x5e, 0x07, 0x53, 0x9b, 0x9d, 0xb8, 0xb4, 0xd7, 0x09, 0xb8, 0x3d, 0x7c, |
|
3586 |
- 0xcf, 0x5c, 0x26, 0xad, 0x2f, 0xb1, 0xc7, 0x59, 0x84, 0x98, 0x39, 0xfe, 0x4d, 0x1f, 0x27, 0x3f, |
|
3587 |
- 0xb6, 0xdb, 0x01, 0x7f, 0x3a, 0x68, 0xd9, 0x1e, 0xe9, 0x95, 0x3c, 0x42, 0x31, 0x61, 0x25, 0xcc, |
|
3588 |
- 0x3d, 0xbf, 0x24, 0x42, 0xca, 0x8f, 0x7e, 0xab, 0x34, 0x09, 0x6f, 0xbe, 0xd6, 0x26, 0x6d, 0x22, |
|
3589 |
- 0x9b, 0x25, 0xd1, 0x8a, 0x7b, 0xd7, 0xfb, 0xdd, 0x41, 0x3b, 0x08, 0x4b, 0xd1, 0x57, 0xd4, 0x69, |
|
3590 |
- 0xbd, 0x50, 0x01, 0x1c, 0xf7, 0x98, 0x3f, 0xc2, 0xbd, 0x16, 0xa6, 0xe8, 0x36, 0x2c, 0x88, 0x38, |
|
3591 |
- 0x47, 0x81, 0x6f, 0xa8, 0x05, 0xb5, 0xa8, 0x57, 0x60, 0x74, 0xbe, 0x95, 0x15, 0x40, 0x63, 0xd7, |
|
3592 |
- 0xc9, 0x8a, 0xa1, 0x86, 0x2f, 0xa0, 0x90, 0xf8, 0x58, 0x40, 0x5a, 0x41, 0x2d, 0x2e, 0x45, 0x50, |
|
3593 |
- 0x93, 0xf8, 0x58, 0x40, 0x62, 0xa8, 0xe1, 0x23, 0x04, 0xba, 0xeb, 0xfb, 0xd4, 0xc8, 0x08, 0xc2, |
|
3594 |
- 0x91, 0x6d, 0x54, 0x81, 0x2c, 0xe3, 0x2e, 0x1f, 0x30, 0x43, 0x2f, 0xa8, 0xc5, 0x5c, 0xf9, 0x2d, |
|
3595 |
- 0xfb, 0xf2, 0x3a, 0xd8, 0x93, 0xd9, 0xec, 0x4b, 0xb6, 0xa2, 0x9f, 0x9d, 0x6f, 0x29, 0x4e, 0xac, |
|
3596 |
- 0xb4, 0x6e, 0x41, 0xee, 0x53, 0x12, 0x84, 0x0e, 0xfe, 0x6a, 0x80, 0x19, 0x1f, 0xdb, 0xa8, 0x13, |
|
3597 |
- 0x1b, 0xeb, 0x27, 0x15, 0xae, 0x47, 0x0c, 0xeb, 0x93, 0x90, 0xe1, 0xab, 0x65, 0xf5, 0x11, 0x2c, |
|
3598 |
- 0xf4, 0xa4, 0x2d, 0x33, 0xb4, 0x42, 0xa6, 0x98, 0x2b, 0xe7, 0xe7, 0xcf, 0xce, 0x49, 0x70, 0xf4, |
|
3599 |
- 0x0e, 0xac, 0x52, 0xdc, 0x23, 0x43, 0xec, 0x1f, 0x25, 0x11, 0x32, 0x85, 0x4c, 0x51, 0xaf, 0x68, |
|
3600 |
- 0x6b, 0x8a, 0xb3, 0x12, 0x0f, 0x45, 0x22, 0x66, 0x55, 0xe0, 0xfa, 0x43, 0xec, 0x0e, 0x71, 0x92, |
|
3601 |
- 0x40, 0x19, 0x74, 0xb1, 0x62, 0x72, 0x62, 0xaf, 0xf6, 0x94, 0xac, 0xb5, 0x0a, 0xcb, 0x71, 0x8c, |
|
3602 |
- 0x28, 0x41, 0xeb, 0x21, 0xdc, 0x78, 0x4c, 0x89, 0x87, 0x19, 0x8b, 0x58, 0xc6, 0xdc, 0xf6, 0xd8, |
|
3603 |
- 0xe1, 0x8e, 0x48, 0x4c, 0xf6, 0xc4, 0x26, 0xab, 0x76, 0x74, 0x64, 0xec, 0x04, 0x4c, 0xc6, 0xef, |
|
3604 |
- 0xe9, 0xcf, 0x7e, 0xb0, 0x14, 0xeb, 0x26, 0x98, 0x69, 0xd1, 0x62, 0xaf, 0x4f, 0x60, 0xc3, 0xc1, |
|
3605 |
- 0x8c, 0x74, 0x87, 0x78, 0xc7, 0xf7, 0xa9, 0x80, 0x62, 0x9f, 0xab, 0xac, 0xb2, 0xf5, 0x2e, 0x6c, |
|
3606 |
- 0x4e, 0xab, 0xe3, 0x4d, 0x4a, 0xdb, 0xc9, 0x2e, 0xac, 0x37, 0x42, 0x8e, 0x69, 0xe8, 0x76, 0x45, |
|
3607 |
- 0x9c, 0xc4, 0x69, 0x13, 0xb4, 0xb1, 0x49, 0x76, 0x74, 0xbe, 0xa5, 0x35, 0x76, 0x1d, 0x2d, 0xf0, |
|
3608 |
- 0xd1, 0x7d, 0xc8, 0xba, 0x1e, 0x0f, 0x48, 0x18, 0xef, 0xe0, 0x56, 0xda, 0x6a, 0xee, 0x73, 0x42, |
|
3609 |
- 0xf1, 0x8e, 0xc4, 0x92, 0xa3, 0x15, 0x89, 0xac, 0xdf, 0x74, 0xc8, 0x5d, 0x18, 0x45, 0x1f, 0x8f, |
|
3610 |
- 0xc3, 0x09, 0xab, 0x95, 0xf2, 0xed, 0x57, 0x84, 0x7b, 0x10, 0x84, 0x7e, 0x12, 0x0c, 0xd9, 0xf1, |
|
3611 |
- 0xbe, 0x6a, 0x72, 0xc9, 0x8d, 0x34, 0xa9, 0xb8, 0x31, 0x75, 0x25, 0xda, 0x53, 0xf4, 0x21, 0x2c, |
|
3612 |
- 0x30, 0x4c, 0x87, 0x81, 0x87, 0xe5, 0x95, 0xc9, 0x95, 0xdf, 0x48, 0x75, 0x8b, 0x90, 0xba, 0xe2, |
|
3613 |
- 0x24, 0xb4, 0x30, 0xe2, 0x2e, 0xeb, 0xc4, 0x57, 0x2a, 0xd5, 0xe8, 0xc0, 0x65, 0x1d, 0x61, 0x24, |
|
3614 |
- 0x38, 0x61, 0x14, 0x62, 0x7e, 0x42, 0x68, 0xc7, 0xb8, 0x36, 0xdb, 0xa8, 0x19, 0x21, 0xc2, 0x28, |
|
3615 |
- 0xa6, 0x85, 0xd0, 0xeb, 0x0e, 0x18, 0xc7, 0xd4, 0xc8, 0xce, 0x16, 0x56, 0x23, 0x44, 0x08, 0x63, |
|
3616 |
- 0x1a, 0x7d, 0x00, 0x59, 0x86, 0x3d, 0x8a, 0xb9, 0xb1, 0x20, 0x75, 0x66, 0x7a, 0x66, 0x82, 0xa8, |
|
3617 |
- 0x8b, 0x8b, 0x2e, 0x5b, 0xe8, 0x1e, 0x2c, 0x52, 0xcc, 0xc8, 0x80, 0x7a, 0xd8, 0x58, 0x94, 0xba, |
|
3618 |
- 0x9b, 0xa9, 0x97, 0x23, 0x66, 0xea, 0x8a, 0x33, 0xe6, 0xd1, 0x7d, 0x58, 0xc2, 0x5f, 0x73, 0x1c, |
|
3619 |
- 0x32, 0xb1, 0x79, 0x4b, 0x52, 0xfc, 0x66, 0x9a, 0xb8, 0x96, 0x40, 0x75, 0xc5, 0x99, 0x28, 0xc4, |
|
3620 |
- 0x84, 0x3d, 0x12, 0x1e, 0x07, 0x6d, 0x03, 0x66, 0x4f, 0xb8, 0x2a, 0x09, 0x31, 0xe1, 0x88, 0xad, |
|
3621 |
- 0x2c, 0x42, 0x96, 0xbb, 0xb4, 0x8d, 0xf9, 0xdd, 0x7f, 0x55, 0x58, 0x9d, 0x3a, 0x17, 0xe8, 0x6d, |
|
3622 |
- 0x58, 0x38, 0x6c, 0x3e, 0x68, 0xee, 0x7d, 0xde, 0x5c, 0x53, 0x4c, 0xf3, 0xf4, 0x79, 0x61, 0x73, |
|
3623 |
- 0x8a, 0x38, 0x0c, 0x3b, 0x21, 0x39, 0x09, 0x51, 0x19, 0xd6, 0xf7, 0x0f, 0xf6, 0x9c, 0xda, 0xd1, |
|
3624 |
- 0x4e, 0xf5, 0xa0, 0xb1, 0xd7, 0x3c, 0xaa, 0x3a, 0xb5, 0x9d, 0x83, 0xda, 0x9a, 0x6a, 0xde, 0x38, |
|
3625 |
- 0x7d, 0x5e, 0xd8, 0x98, 0x12, 0x55, 0x29, 0x76, 0x39, 0xbe, 0xa4, 0x39, 0x7c, 0xbc, 0x2b, 0x34, |
|
3626 |
- 0x5a, 0xaa, 0xe6, 0xb0, 0xef, 0xa7, 0x69, 0x9c, 0xda, 0xa3, 0xbd, 0xcf, 0x6a, 0x6b, 0x99, 0x54, |
|
3627 |
- 0x8d, 0x23, 0x8b, 0x98, 0xf9, 0xfa, 0x77, 0x3f, 0xe7, 0x95, 0x5f, 0x7f, 0xc9, 0x4f, 0x67, 0x57, |
|
3628 |
- 0xfe, 0x5e, 0x03, 0x5d, 0xdc, 0x50, 0x74, 0xaa, 0x02, 0xba, 0x5c, 0x3c, 0xd0, 0x76, 0xda, 0x0a, |
|
3629 |
- 0xce, 0x2c, 0x59, 0xa6, 0x7d, 0x55, 0x3c, 0xae, 0x49, 0x1b, 0xbf, 0xbf, 0xf8, 0xe7, 0x47, 0x6d, |
|
3630 |
- 0x15, 0x96, 0x25, 0xbf, 0xdd, 0x73, 0x43, 0xb7, 0x8d, 0x29, 0xfa, 0x16, 0x56, 0xfe, 0x5f, 0x6c, |
|
3631 |
- 0xd0, 0x9d, 0x59, 0x47, 0xe8, 0x52, 0x39, 0x33, 0xef, 0x5e, 0x05, 0x9d, 0xeb, 0x5f, 0xfe, 0x53, |
|
3632 |
- 0x85, 0x95, 0x49, 0xf1, 0x66, 0x4f, 0x83, 0x3e, 0xfa, 0x02, 0x74, 0xf1, 0x34, 0xa1, 0xd4, 0xd2, |
|
3633 |
- 0x74, 0xe1, 0x61, 0x33, 0x0b, 0xb3, 0x81, 0xf9, 0x49, 0x7b, 0x70, 0x4d, 0x3e, 0x0e, 0x28, 0x35, |
|
3634 |
- 0xc2, 0xc5, 0xb7, 0xc7, 0xbc, 0x35, 0x87, 0x98, 0x6b, 0x52, 0x31, 0xce, 0x5e, 0xe6, 0x95, 0xbf, |
|
3635 |
- 0x5e, 0xe6, 0x95, 0x67, 0xa3, 0xbc, 0x7a, 0x36, 0xca, 0xab, 0x7f, 0x8c, 0xf2, 0xea, 0xdf, 0xa3, |
|
3636 |
- 0xbc, 0xfa, 0x24, 0xf3, 0x44, 0x6f, 0x65, 0xe5, 0x7f, 0x8b, 0xf7, 0xff, 0x0b, 0x00, 0x00, 0xff, |
|
3637 |
- 0xff, 0x9a, 0xef, 0x6e, 0xdb, 0xf3, 0x08, 0x00, 0x00, |
|
3577 |
+ // 974 bytes of a gzipped FileDescriptorProto |
|
3578 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0x4f, 0x6f, 0x1b, 0x45, |
|
3579 |
+ 0x18, 0xc6, 0x77, 0xd7, 0x5b, 0x27, 0x79, 0xd3, 0x26, 0xd1, 0x94, 0x84, 0xed, 0x52, 0x1c, 0x77, |
|
3580 |
+ 0x8b, 0x84, 0x13, 0x9a, 0xb5, 0x30, 0x48, 0x45, 0x85, 0x1e, 0x62, 0xc7, 0x92, 0x4d, 0x5b, 0xa7, |
|
3581 |
+ 0xda, 0x24, 0xd0, 0x5b, 0x58, 0xef, 0x4e, 0xdc, 0xc5, 0xf6, 0x8e, 0x99, 0x19, 0x3b, 0x70, 0x41, |
|
3582 |
+ 0x3d, 0xa2, 0x5c, 0x39, 0x80, 0x90, 0x7a, 0x82, 0x73, 0x3f, 0x00, 0x1f, 0x00, 0x45, 0x9c, 0xb8, |
|
3583 |
+ 0xc1, 0x29, 0xa2, 0xfe, 0x00, 0xf0, 0x15, 0xd0, 0xcc, 0xee, 0x3a, 0xc6, 0x59, 0x3b, 0xb9, 0x24, |
|
3584 |
+ 0xa3, 0x9d, 0xdf, 0xf3, 0x3e, 0xef, 0x3b, 0x7f, 0xde, 0x31, 0x6c, 0xb4, 0x02, 0xfe, 0xbc, 0xdf, |
|
3585 |
+ 0xb4, 0x3d, 0xd2, 0x2d, 0xfa, 0xc4, 0x6b, 0x63, 0x5a, 0x64, 0xc7, 0x2e, 0xed, 0xb6, 0x03, 0x5e, |
|
3586 |
+ 0x74, 0x7b, 0x41, 0x91, 0xba, 0x47, 0xdc, 0xee, 0x51, 0xc2, 0x09, 0x42, 0xd1, 0xbc, 0x9d, 0xcc, |
|
3587 |
+ 0xdb, 0x83, 0xf7, 0xcd, 0x7b, 0x97, 0xc8, 0x49, 0xf3, 0x4b, 0xec, 0x71, 0x16, 0x45, 0x30, 0x37, |
|
3588 |
+ 0x2f, 0xa1, 0xf9, 0x37, 0x3d, 0x9c, 0xb0, 0x5b, 0x63, 0xac, 0x47, 0x28, 0x26, 0xac, 0x88, 0xb9, |
|
3589 |
+ 0xe7, 0xcb, 0x84, 0xe4, 0x9f, 0x5e, 0x73, 0x2c, 0x39, 0xf3, 0x8d, 0x16, 0x69, 0x11, 0x39, 0x2c, |
|
3590 |
+ 0x8a, 0x51, 0xfc, 0xf5, 0xfe, 0x0c, 0x43, 0x49, 0x34, 0xfb, 0x47, 0xc5, 0x5e, 0xa7, 0xdf, 0x0a, |
|
3591 |
+ 0xc2, 0xf8, 0x5f, 0x24, 0xb4, 0x5e, 0xa9, 0x00, 0x8e, 0x7b, 0xc4, 0x9f, 0xe0, 0x6e, 0x13, 0x53, |
|
3592 |
+ 0x74, 0x17, 0xe6, 0x84, 0xd7, 0x61, 0xe0, 0x1b, 0x6a, 0x5e, 0x2d, 0xe8, 0x65, 0x18, 0x9e, 0xad, |
|
3593 |
+ 0x67, 0x05, 0x50, 0xdf, 0x71, 0xb2, 0x62, 0xaa, 0xee, 0x0b, 0x28, 0x24, 0x3e, 0x16, 0x90, 0x96, |
|
3594 |
+ 0x57, 0x0b, 0x0b, 0x11, 0xd4, 0x20, 0x3e, 0x16, 0x90, 0x98, 0xaa, 0xfb, 0x08, 0x81, 0xee, 0xfa, |
|
3595 |
+ 0x3e, 0x35, 0x32, 0x82, 0x70, 0xe4, 0x18, 0x95, 0x21, 0xcb, 0xb8, 0xcb, 0xfb, 0xcc, 0xd0, 0xf3, |
|
3596 |
+ 0x6a, 0x61, 0xb1, 0xf4, 0x8e, 0x7d, 0x71, 0xa5, 0xed, 0xf3, 0x6c, 0xf6, 0x24, 0x5b, 0xd6, 0x4f, |
|
3597 |
+ 0xcf, 0xd6, 0x15, 0x27, 0x56, 0x5a, 0x77, 0x60, 0xf1, 0x53, 0x12, 0x84, 0x0e, 0xfe, 0xaa, 0x8f, |
|
3598 |
+ 0x19, 0x1f, 0xd9, 0xa8, 0xe7, 0x36, 0xd6, 0x4f, 0x2a, 0x5c, 0x8f, 0x18, 0xd6, 0x23, 0x21, 0xc3, |
|
3599 |
+ 0x57, 0xab, 0xea, 0x23, 0x98, 0xeb, 0x4a, 0x5b, 0x66, 0x68, 0xf9, 0x4c, 0x61, 0xb1, 0x94, 0x9b, |
|
3600 |
+ 0x9d, 0x9d, 0x93, 0xe0, 0xe8, 0x3d, 0x58, 0xa6, 0xb8, 0x4b, 0x06, 0xd8, 0x3f, 0x4c, 0x22, 0x64, |
|
3601 |
+ 0xf2, 0x99, 0x82, 0x5e, 0xd6, 0x56, 0x14, 0x67, 0x29, 0x9e, 0x8a, 0x44, 0xcc, 0x2a, 0xc3, 0xf5, |
|
3602 |
+ 0xc7, 0xd8, 0x1d, 0xe0, 0xa4, 0x80, 0x12, 0xe8, 0x62, 0xc5, 0x64, 0x62, 0x97, 0x7b, 0x4a, 0xd6, |
|
3603 |
+ 0x5a, 0x86, 0x1b, 0x71, 0x8c, 0xa8, 0x40, 0xeb, 0x31, 0xdc, 0x7a, 0x4a, 0x89, 0x87, 0x19, 0x8b, |
|
3604 |
+ 0x58, 0xc6, 0xdc, 0xd6, 0xc8, 0x61, 0x43, 0x14, 0x26, 0xbf, 0xc4, 0x26, 0xcb, 0x76, 0x74, 0xac, |
|
3605 |
+ 0xec, 0x04, 0x4c, 0xe6, 0x1f, 0xe8, 0x2f, 0x7e, 0xb0, 0x14, 0xeb, 0x36, 0x98, 0x69, 0xd1, 0x62, |
|
3606 |
+ 0xaf, 0x4f, 0x60, 0xd5, 0xc1, 0x8c, 0x74, 0x06, 0x78, 0xdb, 0xf7, 0xa9, 0x80, 0x62, 0x9f, 0xab, |
|
3607 |
+ 0xac, 0xb2, 0x75, 0x0f, 0xd6, 0x26, 0xd5, 0xf1, 0x26, 0xa5, 0xed, 0x64, 0x07, 0x6e, 0xd6, 0x43, |
|
3608 |
+ 0x8e, 0x69, 0xe8, 0x76, 0x44, 0x9c, 0xc4, 0x69, 0x0d, 0xb4, 0x91, 0x49, 0x76, 0x78, 0xb6, 0xae, |
|
3609 |
+ 0xd5, 0x77, 0x1c, 0x2d, 0xf0, 0xd1, 0x43, 0xc8, 0xba, 0x1e, 0x0f, 0x48, 0x18, 0xef, 0xe0, 0x7a, |
|
3610 |
+ 0xda, 0x6a, 0xee, 0x71, 0x42, 0xf1, 0xb6, 0xc4, 0x92, 0xa3, 0x15, 0x89, 0xac, 0xdf, 0x74, 0x58, |
|
3611 |
+ 0x1c, 0x9b, 0x45, 0x1f, 0x8f, 0xc2, 0x09, 0xab, 0xa5, 0xd2, 0xdd, 0x4b, 0xc2, 0x3d, 0x0a, 0x42, |
|
3612 |
+ 0x3f, 0x09, 0x86, 0xec, 0x78, 0x5f, 0x35, 0xb9, 0xe4, 0x46, 0x9a, 0x54, 0xdc, 0x98, 0x9a, 0x12, |
|
3613 |
+ 0xed, 0x29, 0xba, 0x0f, 0x73, 0x0c, 0xd3, 0x41, 0xe0, 0x61, 0x79, 0x65, 0x16, 0x4b, 0x6f, 0xa5, |
|
3614 |
+ 0xba, 0x45, 0x48, 0x4d, 0x71, 0x12, 0x5a, 0x18, 0x71, 0x97, 0xb5, 0xe3, 0x2b, 0x95, 0x6a, 0xb4, |
|
3615 |
+ 0xef, 0xb2, 0xb6, 0x30, 0x12, 0x9c, 0x30, 0x0a, 0x31, 0x3f, 0x26, 0xb4, 0x6d, 0x5c, 0x9b, 0x6e, |
|
3616 |
+ 0xd4, 0x88, 0x10, 0x61, 0x14, 0xd3, 0x42, 0xe8, 0x75, 0xfa, 0x8c, 0x63, 0x6a, 0x64, 0xa7, 0x0b, |
|
3617 |
+ 0x2b, 0x11, 0x22, 0x84, 0x31, 0x8d, 0x3e, 0x84, 0x2c, 0xc3, 0x1e, 0xc5, 0xdc, 0x98, 0x93, 0x3a, |
|
3618 |
+ 0x33, 0xbd, 0x32, 0x41, 0xd4, 0xc4, 0x45, 0x97, 0x23, 0xf4, 0x00, 0xe6, 0x29, 0x66, 0xa4, 0x4f, |
|
3619 |
+ 0x3d, 0x6c, 0xcc, 0x4b, 0xdd, 0xed, 0xd4, 0xcb, 0x11, 0x33, 0x35, 0xc5, 0x19, 0xf1, 0xe8, 0x21, |
|
3620 |
+ 0x2c, 0xe0, 0xaf, 0x39, 0x0e, 0x99, 0xd8, 0xbc, 0x05, 0x29, 0x7e, 0x3b, 0x4d, 0x5c, 0x4d, 0xa0, |
|
3621 |
+ 0x9a, 0xe2, 0x9c, 0x2b, 0x44, 0xc2, 0x1e, 0x09, 0x8f, 0x82, 0x96, 0x01, 0xd3, 0x13, 0xae, 0x48, |
|
3622 |
+ 0x42, 0x24, 0x1c, 0xb1, 0xe5, 0x79, 0xc8, 0x72, 0x97, 0xb6, 0x30, 0xdf, 0xfc, 0x57, 0x85, 0xe5, |
|
3623 |
+ 0x89, 0x73, 0x81, 0xde, 0x85, 0xb9, 0x83, 0xc6, 0xa3, 0xc6, 0xee, 0xe7, 0x8d, 0x15, 0xc5, 0x34, |
|
3624 |
+ 0x4f, 0x5e, 0xe6, 0xd7, 0x26, 0x88, 0x83, 0xb0, 0x1d, 0x92, 0xe3, 0x10, 0x95, 0xe0, 0xe6, 0xde, |
|
3625 |
+ 0xfe, 0xae, 0x53, 0x3d, 0xdc, 0xae, 0xec, 0xd7, 0x77, 0x1b, 0x87, 0x15, 0xa7, 0xba, 0xbd, 0x5f, |
|
3626 |
+ 0x5d, 0x51, 0xcd, 0x5b, 0x27, 0x2f, 0xf3, 0xab, 0x13, 0xa2, 0x0a, 0xc5, 0x2e, 0xc7, 0x17, 0x34, |
|
3627 |
+ 0x07, 0x4f, 0x77, 0x84, 0x46, 0x4b, 0xd5, 0x1c, 0xf4, 0xfc, 0x34, 0x8d, 0x53, 0x7d, 0xb2, 0xfb, |
|
3628 |
+ 0x59, 0x75, 0x25, 0x93, 0xaa, 0x71, 0x64, 0x13, 0x33, 0xdf, 0xfc, 0xee, 0xe7, 0x9c, 0xf2, 0xeb, |
|
3629 |
+ 0x2f, 0xb9, 0xc9, 0xea, 0x4a, 0xdf, 0x6b, 0xa0, 0x8b, 0x1b, 0x8a, 0x4e, 0x54, 0x40, 0x17, 0x9b, |
|
3630 |
+ 0x07, 0xda, 0x4a, 0x5b, 0xc1, 0xa9, 0x2d, 0xcb, 0xb4, 0xaf, 0x8a, 0xc7, 0x3d, 0x69, 0xf5, 0xf7, |
|
3631 |
+ 0x57, 0xff, 0xfc, 0xa8, 0x2d, 0xc3, 0x0d, 0xc9, 0x6f, 0x75, 0xdd, 0xd0, 0x6d, 0x61, 0x8a, 0xbe, |
|
3632 |
+ 0x85, 0xa5, 0xff, 0x37, 0x1b, 0xb4, 0x31, 0xed, 0x08, 0x5d, 0x68, 0x67, 0xe6, 0xe6, 0x55, 0xd0, |
|
3633 |
+ 0x99, 0xfe, 0xa5, 0x3f, 0x55, 0x58, 0x3a, 0x6f, 0xde, 0xec, 0x79, 0xd0, 0x43, 0x5f, 0x80, 0x2e, |
|
3634 |
+ 0x9e, 0x26, 0x94, 0xda, 0x9a, 0xc6, 0x1e, 0x36, 0x33, 0x3f, 0x1d, 0x98, 0x5d, 0xb4, 0x07, 0xd7, |
|
3635 |
+ 0xe4, 0xe3, 0x80, 0x52, 0x23, 0x8c, 0xbf, 0x3d, 0xe6, 0x9d, 0x19, 0xc4, 0x4c, 0x93, 0xb2, 0x71, |
|
3636 |
+ 0xfa, 0x3a, 0xa7, 0xfc, 0xf5, 0x3a, 0xa7, 0xbc, 0x18, 0xe6, 0xd4, 0xd3, 0x61, 0x4e, 0xfd, 0x63, |
|
3637 |
+ 0x98, 0x53, 0xff, 0x1e, 0xe6, 0xd4, 0x67, 0x99, 0x67, 0x7a, 0x33, 0x2b, 0x7f, 0x5b, 0x7c, 0xf0, |
|
3638 |
+ 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x01, 0xa3, 0x4f, 0x74, 0x09, 0x00, 0x00, |
|
3638 | 3639 |
} |
... | ... |
@@ -2,11 +2,11 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "objects.proto"; |
|
6 |
-import "types.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/objects.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
7 | 7 |
import "github.com/coreos/etcd/raft/raftpb/raft.proto"; |
8 | 8 |
import weak "gogoproto/gogo.proto"; |
9 |
-import weak "plugin/plugin.proto"; |
|
9 |
+import weak "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
10 | 10 |
|
11 | 11 |
// Raft defines the RPC communication between raft nodes. |
12 | 12 |
service Raft { |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: resource.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/resource.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -262,7 +262,7 @@ var _ResourceAllocator_serviceDesc = grpc.ServiceDesc{ |
262 | 262 |
}, |
263 | 263 |
}, |
264 | 264 |
Streams: []grpc.StreamDesc{}, |
265 |
- Metadata: "resource.proto", |
|
265 |
+ Metadata: "github.com/docker/swarmkit/api/resource.proto", |
|
266 | 266 |
} |
267 | 267 |
|
268 | 268 |
func (m *AttachNetworkRequest) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -1061,31 +1061,35 @@ var ( |
1061 | 1061 |
ErrIntOverflowResource = fmt.Errorf("proto: integer overflow") |
1062 | 1062 |
) |
1063 | 1063 |
|
1064 |
-func init() { proto.RegisterFile("resource.proto", fileDescriptorResource) } |
|
1064 |
+func init() { |
|
1065 |
+ proto.RegisterFile("github.com/docker/swarmkit/api/resource.proto", fileDescriptorResource) |
|
1066 |
+} |
|
1065 | 1067 |
|
1066 | 1068 |
var fileDescriptorResource = []byte{ |
1067 |
- // 368 bytes of a gzipped FileDescriptorProto |
|
1068 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2b, 0x4a, 0x2d, 0xce, |
|
1069 |
- 0x2f, 0x2d, 0x4a, 0x4e, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x4a, 0xc9, 0x4f, 0xce, |
|
1070 |
- 0x4e, 0x2d, 0xd2, 0x2b, 0x2e, 0x4f, 0x2c, 0xca, 0xcd, 0xce, 0x2c, 0xd1, 0x2b, 0x33, 0x94, 0xe2, |
|
1071 |
- 0x2e, 0xa9, 0x2c, 0x48, 0x2d, 0x86, 0x28, 0x90, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x33, 0xf5, |
|
1072 |
- 0x41, 0x2c, 0xa8, 0xa8, 0x70, 0x41, 0x4e, 0x69, 0x7a, 0x66, 0x9e, 0x3e, 0x84, 0x82, 0x08, 0x2a, |
|
1073 |
- 0xf5, 0x33, 0x72, 0x89, 0x38, 0x96, 0x94, 0x24, 0x26, 0x67, 0xf8, 0xa5, 0x96, 0x94, 0xe7, 0x17, |
|
1074 |
- 0x65, 0x07, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0x39, 0x73, 0xb1, 0x25, 0xe7, 0xe7, 0xa5, |
|
1075 |
- 0x65, 0xa6, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x69, 0xeb, 0x61, 0xda, 0xaa, 0x07, 0xd5, |
|
1076 |
- 0x03, 0x31, 0x20, 0x37, 0x35, 0xaf, 0xc4, 0x19, 0xac, 0x25, 0x08, 0xaa, 0x55, 0xc8, 0x88, 0x8b, |
|
1077 |
- 0x27, 0x39, 0x3f, 0xaf, 0x24, 0x31, 0x33, 0x2f, 0xb5, 0x28, 0x3e, 0x33, 0x45, 0x82, 0x49, 0x81, |
|
1078 |
- 0x51, 0x83, 0xd3, 0x89, 0xff, 0xd1, 0x3d, 0x79, 0x6e, 0x67, 0x98, 0xb8, 0xa7, 0x4b, 0x10, 0x37, |
|
1079 |
- 0x5c, 0x91, 0x67, 0x8a, 0x92, 0x1f, 0x97, 0x28, 0x9a, 0x83, 0x8a, 0x0b, 0xf2, 0xf3, 0x8a, 0x53, |
|
1080 |
- 0x85, 0x4c, 0xb9, 0x78, 0x13, 0xe1, 0x16, 0x81, 0x4c, 0x63, 0x04, 0x9b, 0x26, 0xf0, 0xe8, 0x9e, |
|
1081 |
- 0x3c, 0x0f, 0xc2, 0x05, 0x9e, 0x2e, 0x41, 0x3c, 0x08, 0x65, 0x9e, 0x29, 0x4a, 0xbe, 0x5c, 0x22, |
|
1082 |
- 0x2e, 0xa9, 0x58, 0x3c, 0x48, 0xa6, 0x71, 0xe2, 0x5c, 0xa2, 0x68, 0xc6, 0x41, 0x9c, 0x67, 0xb4, |
|
1083 |
- 0x9a, 0x89, 0x4b, 0x30, 0x08, 0x1a, 0x51, 0x8e, 0x39, 0x39, 0xf9, 0xc9, 0x89, 0x25, 0xf9, 0x45, |
|
1084 |
- 0x42, 0x9d, 0x8c, 0x5c, 0xbc, 0x28, 0xde, 0x11, 0xd2, 0xc0, 0x16, 0x90, 0xd8, 0xa2, 0x40, 0x4a, |
|
1085 |
- 0x93, 0x08, 0x95, 0x10, 0xcb, 0x95, 0x94, 0x4f, 0xad, 0x7b, 0x37, 0x83, 0x49, 0x96, 0x8b, 0x07, |
|
1086 |
- 0xac, 0x54, 0x17, 0x24, 0x97, 0x5a, 0xc4, 0xc5, 0x0b, 0xe1, 0xe5, 0x26, 0xe6, 0x25, 0xa6, 0xa7, |
|
1087 |
- 0x42, 0xdc, 0x82, 0xe2, 0x76, 0xec, 0x6e, 0xc1, 0x16, 0x5a, 0xd8, 0xdd, 0x82, 0x35, 0x20, 0x88, |
|
1088 |
- 0x72, 0x8b, 0x93, 0xc4, 0x89, 0x87, 0x72, 0x0c, 0x37, 0x1e, 0xca, 0x31, 0x34, 0x3c, 0x92, 0x63, |
|
1089 |
- 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x93, 0xd8, 0xc0, |
|
1090 |
- 0x09, 0xd3, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x1c, 0x48, 0x12, 0x41, 0xf6, 0x02, 0x00, 0x00, |
|
1069 |
+ // 397 bytes of a gzipped FileDescriptorProto |
|
1070 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x92, 0xcf, 0x4e, 0xf2, 0x40, |
|
1071 |
+ 0x14, 0xc5, 0x19, 0x16, 0x24, 0xdf, 0x50, 0xf2, 0x69, 0x03, 0x91, 0x90, 0x58, 0x48, 0xdd, 0xa0, |
|
1072 |
+ 0x86, 0x36, 0x62, 0x8c, 0x6b, 0xfe, 0x6c, 0xba, 0x90, 0x45, 0x5f, 0xc0, 0x0c, 0xed, 0x50, 0x1a, |
|
1073 |
+ 0x68, 0xa7, 0x4e, 0xa7, 0x12, 0x77, 0x6e, 0x5d, 0xb9, 0xf5, 0x1d, 0x4c, 0x7c, 0x0e, 0xe2, 0xca, |
|
1074 |
+ 0xa5, 0x2b, 0x22, 0x7d, 0x00, 0x9f, 0xc1, 0xd0, 0x29, 0x10, 0x70, 0xa2, 0xc4, 0x55, 0xa7, 0xd3, |
|
1075 |
+ 0x73, 0xce, 0xfd, 0xdd, 0x7b, 0x0b, 0x1b, 0x8e, 0xcb, 0x86, 0x51, 0x5f, 0xb3, 0x88, 0xa7, 0xdb, |
|
1076 |
+ 0xc4, 0x1a, 0x61, 0xaa, 0x87, 0x13, 0x44, 0xbd, 0x91, 0xcb, 0x74, 0x14, 0xb8, 0x3a, 0xc5, 0x21, |
|
1077 |
+ 0x89, 0xa8, 0x85, 0xb5, 0x80, 0x12, 0x46, 0x64, 0x99, 0x6b, 0xb4, 0xa5, 0x46, 0xbb, 0x3d, 0xab, |
|
1078 |
+ 0x9c, 0xfc, 0x12, 0xc1, 0xee, 0x02, 0x1c, 0x72, 0x7f, 0xa5, 0xe8, 0x10, 0x87, 0x24, 0x47, 0x7d, |
|
1079 |
+ 0x71, 0x4a, 0x6f, 0x2f, 0x7f, 0x48, 0x48, 0x14, 0xfd, 0x68, 0xa0, 0x07, 0xe3, 0xc8, 0x71, 0xfd, |
|
1080 |
+ 0xf4, 0xc1, 0x8d, 0xea, 0x23, 0x80, 0xc5, 0x16, 0x63, 0xc8, 0x1a, 0xf6, 0x30, 0x9b, 0x10, 0x3a, |
|
1081 |
+ 0x32, 0xf1, 0x4d, 0x84, 0x43, 0x26, 0x77, 0x60, 0xce, 0x22, 0xfe, 0xc0, 0x75, 0xca, 0xa0, 0x06, |
|
1082 |
+ 0xea, 0xf9, 0xe6, 0xa9, 0xf6, 0x1d, 0x5c, 0x4b, 0x3d, 0x3c, 0xc0, 0xc3, 0x3e, 0xeb, 0x24, 0x16, |
|
1083 |
+ 0x33, 0xb5, 0xca, 0x4d, 0x28, 0x59, 0xc4, 0x67, 0xc8, 0xf5, 0x31, 0xbd, 0x76, 0xed, 0x72, 0xb6, |
|
1084 |
+ 0x06, 0xea, 0xff, 0xda, 0xff, 0xe3, 0x59, 0x35, 0xdf, 0x59, 0xde, 0x1b, 0x5d, 0x33, 0xbf, 0x12, |
|
1085 |
+ 0x19, 0xb6, 0xda, 0x83, 0xa5, 0x2d, 0xa0, 0x30, 0x20, 0x7e, 0x88, 0xe5, 0x0b, 0x58, 0x40, 0xab, |
|
1086 |
+ 0x42, 0x8b, 0x34, 0x90, 0xa4, 0xed, 0xc5, 0xb3, 0xaa, 0xb4, 0x26, 0x30, 0xba, 0xa6, 0xb4, 0x96, |
|
1087 |
+ 0x19, 0xb6, 0x7a, 0x05, 0x8b, 0x5d, 0x2c, 0x68, 0xf0, 0x8f, 0x71, 0x07, 0xb0, 0xb4, 0x15, 0xc7, |
|
1088 |
+ 0xf1, 0x9a, 0xcf, 0x59, 0xb8, 0x6f, 0xa6, 0xbb, 0x6e, 0x8d, 0xc7, 0xc4, 0x42, 0x8c, 0x50, 0xf9, |
|
1089 |
+ 0x01, 0xc0, 0xc2, 0x46, 0x3b, 0x72, 0x5d, 0x34, 0x48, 0xd1, 0x0a, 0x2a, 0xc7, 0x3b, 0x28, 0x79, |
|
1090 |
+ 0x71, 0xf5, 0xe8, 0xf5, 0xe5, 0xf3, 0x29, 0x7b, 0x08, 0xa5, 0x44, 0xda, 0x58, 0x7c, 0xc3, 0x14, |
|
1091 |
+ 0x16, 0xf8, 0x9b, 0x87, 0x7c, 0xe4, 0x60, 0xce, 0xb2, 0xc1, 0x2e, 0x66, 0x11, 0x4d, 0x4b, 0xcc, |
|
1092 |
+ 0x22, 0x1c, 0xc4, 0x4e, 0x2c, 0xed, 0xf2, 0x74, 0xae, 0x64, 0xde, 0xe7, 0x4a, 0xe6, 0x3e, 0x56, |
|
1093 |
+ 0xc0, 0x34, 0x56, 0xc0, 0x5b, 0xac, 0x80, 0x8f, 0x58, 0x01, 0xfd, 0x5c, 0xf2, 0x63, 0x9e, 0x7f, |
|
1094 |
+ 0x05, 0x00, 0x00, 0xff, 0xff, 0xc1, 0x7a, 0x29, 0xfc, 0x58, 0x03, 0x00, 0x00, |
|
1091 | 1095 |
} |
... | ... |
@@ -2,9 +2,9 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "types.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
6 | 6 |
import "gogoproto/gogo.proto"; |
7 |
-import "plugin/plugin.proto"; |
|
7 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
8 | 8 |
|
9 | 9 |
// Allocator is the API provided by a manager group for agents to control the allocation of certain entities. |
10 | 10 |
// |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: snapshot.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/snapshot.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -1305,38 +1305,41 @@ var ( |
1305 | 1305 |
ErrIntOverflowSnapshot = fmt.Errorf("proto: integer overflow") |
1306 | 1306 |
) |
1307 | 1307 |
|
1308 |
-func init() { proto.RegisterFile("snapshot.proto", fileDescriptorSnapshot) } |
|
1308 |
+func init() { |
|
1309 |
+ proto.RegisterFile("github.com/docker/swarmkit/api/snapshot.proto", fileDescriptorSnapshot) |
|
1310 |
+} |
|
1309 | 1311 |
|
1310 | 1312 |
var fileDescriptorSnapshot = []byte{ |
1311 |
- // 469 bytes of a gzipped FileDescriptorProto |
|
1312 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0xbf, 0x6f, 0xd3, 0x40, |
|
1313 |
- 0x14, 0xc7, 0x7d, 0xce, 0x0f, 0xa7, 0xaf, 0x6a, 0x29, 0x27, 0x86, 0x53, 0x28, 0x26, 0x04, 0x86, |
|
1314 |
- 0x4c, 0x06, 0x02, 0x12, 0x08, 0xa9, 0x0c, 0xa9, 0x18, 0x18, 0xe8, 0x70, 0x41, 0x15, 0xab, 0xe3, |
|
1315 |
- 0x5c, 0x52, 0x63, 0xe2, 0x8b, 0xee, 0x5d, 0x53, 0x46, 0xf8, 0xef, 0x32, 0x32, 0x32, 0x21, 0x92, |
|
1316 |
- 0x85, 0x7f, 0x03, 0xdd, 0x9d, 0x6d, 0x22, 0xe1, 0x74, 0xb3, 0x4e, 0x9f, 0xcf, 0x7b, 0xdf, 0x3b, |
|
1317 |
- 0xbf, 0x07, 0xc7, 0x98, 0xc7, 0x4b, 0xbc, 0x92, 0x3a, 0x5a, 0x2a, 0xa9, 0x25, 0xa5, 0x53, 0x99, |
|
1318 |
- 0x64, 0x42, 0x45, 0x78, 0x13, 0xab, 0x45, 0x96, 0xea, 0x68, 0xf5, 0xbc, 0x7b, 0x24, 0x27, 0x9f, |
|
1319 |
- 0x45, 0xa2, 0xd1, 0x21, 0x5d, 0x50, 0xf1, 0xac, 0xc0, 0xbb, 0xf7, 0xe6, 0x72, 0x2e, 0xed, 0xe7, |
|
1320 |
- 0x53, 0xf3, 0xe5, 0x4e, 0xfb, 0xdf, 0x9b, 0x70, 0x34, 0xd6, 0x52, 0x89, 0x71, 0x51, 0x9c, 0x46, |
|
1321 |
- 0xd0, 0xca, 0xe5, 0x54, 0x20, 0x23, 0xbd, 0xc6, 0xe0, 0x70, 0xc8, 0xa2, 0xff, 0xdb, 0x44, 0x17, |
|
1322 |
- 0x72, 0x2a, 0xb8, 0xc3, 0xe8, 0x2b, 0xe8, 0xa0, 0x50, 0xab, 0x34, 0x11, 0xc8, 0x7c, 0xab, 0xdc, |
|
1323 |
- 0xaf, 0x53, 0xc6, 0x8e, 0xe1, 0x15, 0x6c, 0xc4, 0x5c, 0xe8, 0x1b, 0xa9, 0x32, 0x64, 0x8d, 0xfd, |
|
1324 |
- 0xe2, 0x85, 0x63, 0x78, 0x05, 0x9b, 0x84, 0x3a, 0xc6, 0x0c, 0x59, 0x73, 0x7f, 0xc2, 0x8f, 0x31, |
|
1325 |
- 0x66, 0xdc, 0x61, 0xa6, 0x51, 0xf2, 0xe5, 0x1a, 0xb5, 0x50, 0xc8, 0x5a, 0xfb, 0x1b, 0x9d, 0x3b, |
|
1326 |
- 0x86, 0x57, 0x30, 0x7d, 0x09, 0x01, 0x8a, 0x44, 0x09, 0x8d, 0xac, 0x6d, 0xbd, 0x6e, 0xfd, 0xcd, |
|
1327 |
- 0x0c, 0xc2, 0x4b, 0x94, 0xbe, 0x81, 0x03, 0x25, 0x50, 0x5e, 0x2b, 0xf3, 0x22, 0x81, 0xf5, 0x4e, |
|
1328 |
- 0xeb, 0x3c, 0x5e, 0x40, 0xfc, 0x1f, 0x4e, 0xcf, 0x00, 0xc4, 0x57, 0x2d, 0x72, 0x4c, 0x65, 0x8e, |
|
1329 |
- 0xac, 0x63, 0xe5, 0x07, 0x75, 0xf2, 0xbb, 0x92, 0xe2, 0x3b, 0x82, 0x09, 0x9c, 0xc8, 0x7c, 0x96, |
|
1330 |
- 0xce, 0x91, 0x1d, 0xec, 0x0f, 0x7c, 0x6e, 0x11, 0x5e, 0xa2, 0xfd, 0x14, 0xee, 0x14, 0x77, 0xaf, |
|
1331 |
- 0x86, 0xe0, 0x35, 0x04, 0x0b, 0xb1, 0x98, 0x98, 0x17, 0x73, 0x63, 0x10, 0xd6, 0xde, 0x20, 0x9e, |
|
1332 |
- 0xe9, 0x0f, 0x16, 0xe3, 0x25, 0x4e, 0x4f, 0x21, 0x50, 0x62, 0x21, 0x57, 0x62, 0x6a, 0xa7, 0xa1, |
|
1333 |
- 0x39, 0xf2, 0x4f, 0x3c, 0x5e, 0x1e, 0xf5, 0xff, 0x10, 0xe8, 0x54, 0x4d, 0xde, 0x42, 0xb0, 0x12, |
|
1334 |
- 0xca, 0x24, 0x67, 0xa4, 0x47, 0x06, 0xc7, 0xc3, 0x27, 0xb5, 0xcf, 0x5b, 0x4e, 0xfd, 0xa5, 0x63, |
|
1335 |
- 0x79, 0x29, 0xd1, 0xf7, 0x00, 0x45, 0xd7, 0xab, 0x74, 0xc9, 0xfc, 0x1e, 0x19, 0x1c, 0x0e, 0x1f, |
|
1336 |
- 0xdf, 0xf2, 0x67, 0xcb, 0x4a, 0xa3, 0xe6, 0xfa, 0xd7, 0x43, 0x8f, 0xef, 0xc8, 0xf4, 0x0c, 0x5a, |
|
1337 |
- 0x68, 0xb6, 0x80, 0x35, 0x6c, 0x95, 0x47, 0xb5, 0x41, 0x76, 0xd7, 0xa4, 0xa8, 0xe1, 0xac, 0xfe, |
|
1338 |
- 0x5d, 0x08, 0x8a, 0x74, 0xb4, 0x0d, 0xfe, 0xe5, 0xb3, 0x13, 0x6f, 0xc4, 0xd6, 0x9b, 0xd0, 0xfb, |
|
1339 |
- 0xb9, 0x09, 0xbd, 0x6f, 0xdb, 0x90, 0xac, 0xb7, 0x21, 0xf9, 0xb1, 0x0d, 0xc9, 0xef, 0x6d, 0x48, |
|
1340 |
- 0x3e, 0xf9, 0x93, 0xb6, 0xdd, 0xbd, 0x17, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x8d, 0x0f, 0xc4, |
|
1341 |
- 0x6e, 0xd2, 0x03, 0x00, 0x00, |
|
1313 |
+ // 493 bytes of a gzipped FileDescriptorProto |
|
1314 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xbf, 0x8f, 0xd3, 0x30, |
|
1315 |
+ 0x14, 0xc7, 0x93, 0xf4, 0x47, 0x7a, 0x3e, 0x01, 0x87, 0xc5, 0x60, 0x95, 0x23, 0x94, 0xc2, 0x50, |
|
1316 |
+ 0x24, 0x48, 0xa0, 0x20, 0x81, 0x90, 0x8e, 0xa1, 0x27, 0x06, 0x06, 0x6e, 0x70, 0xd1, 0x89, 0x35, |
|
1317 |
+ 0x4d, 0xdd, 0x36, 0x84, 0xc4, 0x95, 0x9f, 0xdb, 0x63, 0x84, 0xff, 0xae, 0x23, 0x23, 0x13, 0xe2, |
|
1318 |
+ 0xba, 0xf0, 0x6f, 0x20, 0xdb, 0x71, 0xa8, 0x44, 0x7a, 0xb7, 0x45, 0xd6, 0xe7, 0xf3, 0xde, 0xd7, |
|
1319 |
+ 0xce, 0x7b, 0xe8, 0xe9, 0x3c, 0x95, 0x8b, 0xd5, 0x24, 0x4c, 0x78, 0x1e, 0x4d, 0x79, 0x92, 0x31, |
|
1320 |
+ 0x11, 0xc1, 0x45, 0x2c, 0xf2, 0x2c, 0x95, 0x51, 0xbc, 0x4c, 0x23, 0x28, 0xe2, 0x25, 0x2c, 0xb8, |
|
1321 |
+ 0x0c, 0x97, 0x82, 0x4b, 0x8e, 0xb1, 0x61, 0x42, 0xcb, 0x84, 0xeb, 0xe7, 0xdd, 0x27, 0xd7, 0x94, |
|
1322 |
+ 0xe0, 0x93, 0xcf, 0x2c, 0x91, 0x60, 0x2a, 0x74, 0x1f, 0x5f, 0x43, 0x8b, 0x78, 0x56, 0x36, 0xeb, |
|
1323 |
+ 0xde, 0x99, 0xf3, 0x39, 0xd7, 0x9f, 0x91, 0xfa, 0x32, 0xa7, 0xfd, 0xef, 0x4d, 0x74, 0x63, 0x2c, |
|
1324 |
+ 0xb9, 0x60, 0xe3, 0x32, 0x1a, 0x0e, 0x51, 0xab, 0xe0, 0x53, 0x06, 0xc4, 0xed, 0x35, 0x06, 0x87, |
|
1325 |
+ 0x43, 0x12, 0xfe, 0x1f, 0x32, 0x3c, 0xe3, 0x53, 0x46, 0x0d, 0x86, 0x5f, 0xa1, 0x0e, 0x30, 0xb1, |
|
1326 |
+ 0x4e, 0x13, 0x06, 0xc4, 0xd3, 0xca, 0xdd, 0x3a, 0x65, 0x6c, 0x18, 0x5a, 0xc1, 0x4a, 0x2c, 0x98, |
|
1327 |
+ 0xbc, 0xe0, 0x22, 0x03, 0xd2, 0xd8, 0x2f, 0x9e, 0x19, 0x86, 0x56, 0xb0, 0x4a, 0x28, 0x63, 0xc8, |
|
1328 |
+ 0x80, 0x34, 0xf7, 0x27, 0xfc, 0x18, 0x43, 0x46, 0x0d, 0xa6, 0x1a, 0x25, 0x5f, 0x56, 0x20, 0x99, |
|
1329 |
+ 0x00, 0xd2, 0xda, 0xdf, 0xe8, 0xd4, 0x30, 0xb4, 0x82, 0xf1, 0x4b, 0xe4, 0x03, 0x4b, 0x04, 0x93, |
|
1330 |
+ 0x40, 0xda, 0xda, 0xeb, 0xd6, 0xdf, 0x4c, 0x21, 0xd4, 0xa2, 0xf8, 0x0d, 0x3a, 0x10, 0x0c, 0xf8, |
|
1331 |
+ 0x4a, 0xa8, 0x17, 0xf1, 0xb5, 0x77, 0x5c, 0xe7, 0xd1, 0x12, 0xa2, 0xff, 0x70, 0x7c, 0x82, 0x10, |
|
1332 |
+ 0xfb, 0x2a, 0x59, 0x01, 0x29, 0x2f, 0x80, 0x74, 0xb4, 0x7c, 0xaf, 0x4e, 0x7e, 0x67, 0x29, 0xba, |
|
1333 |
+ 0x23, 0xa8, 0xc0, 0x09, 0x2f, 0x66, 0xe9, 0x1c, 0xc8, 0xc1, 0xfe, 0xc0, 0xa7, 0x1a, 0xa1, 0x16, |
|
1334 |
+ 0xed, 0xa7, 0xe8, 0x56, 0x79, 0xf7, 0x6a, 0x08, 0x5e, 0x23, 0x3f, 0x67, 0xf9, 0x44, 0xbd, 0x98, |
|
1335 |
+ 0x19, 0x83, 0xa0, 0xf6, 0x06, 0xf1, 0x4c, 0x7e, 0xd0, 0x18, 0xb5, 0x38, 0x3e, 0x46, 0xbe, 0x60, |
|
1336 |
+ 0x39, 0x5f, 0xb3, 0xa9, 0x9e, 0x86, 0xe6, 0xc8, 0x3b, 0x72, 0xa8, 0x3d, 0xea, 0xff, 0x71, 0x51, |
|
1337 |
+ 0xa7, 0x6a, 0xf2, 0x16, 0xf9, 0x6b, 0x26, 0x54, 0x72, 0xe2, 0xf6, 0xdc, 0xc1, 0xcd, 0xe1, 0xa3, |
|
1338 |
+ 0xda, 0xe7, 0xb5, 0x3b, 0x73, 0x6e, 0x58, 0x6a, 0x25, 0xfc, 0x1e, 0xa1, 0xb2, 0xeb, 0x22, 0x5d, |
|
1339 |
+ 0x12, 0xaf, 0xe7, 0x0e, 0x0e, 0x87, 0x0f, 0xaf, 0xf8, 0xb3, 0xb6, 0xd2, 0xa8, 0xb9, 0xf9, 0x75, |
|
1340 |
+ 0xdf, 0xa1, 0x3b, 0x32, 0x3e, 0x41, 0x2d, 0x50, 0x5b, 0x40, 0x1a, 0xba, 0xca, 0x83, 0xda, 0x20, |
|
1341 |
+ 0xbb, 0x6b, 0x52, 0xd6, 0x30, 0x56, 0xff, 0x36, 0xf2, 0xcb, 0x74, 0xb8, 0x8d, 0xbc, 0xf3, 0x67, |
|
1342 |
+ 0x47, 0xce, 0x88, 0x6c, 0x2e, 0x03, 0xe7, 0xe7, 0x65, 0xe0, 0x7c, 0xdb, 0x06, 0xee, 0x66, 0x1b, |
|
1343 |
+ 0xb8, 0x3f, 0xb6, 0x81, 0xfb, 0x7b, 0x1b, 0xb8, 0x9f, 0xbc, 0x49, 0x5b, 0xef, 0xde, 0x8b, 0xbf, |
|
1344 |
+ 0x01, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xbe, 0x47, 0xec, 0x2f, 0x04, 0x00, 0x00, |
|
1342 | 1345 |
} |
... | ... |
@@ -2,8 +2,8 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "objects.proto"; |
|
6 |
-import "raft.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/objects.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/raft.proto"; |
|
7 | 7 |
import weak "gogoproto/gogo.proto"; |
8 | 8 |
|
9 | 9 |
// StoreSnapshot is used to store snapshots of the store. |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: specs.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/specs.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -107,7 +107,7 @@ func (x EndpointSpec_ResolutionMode) String() string { |
107 | 107 |
return proto.EnumName(EndpointSpec_ResolutionMode_name, int32(x)) |
108 | 108 |
} |
109 | 109 |
func (EndpointSpec_ResolutionMode) EnumDescriptor() ([]byte, []int) { |
110 |
- return fileDescriptorSpecs, []int{8, 0} |
|
110 |
+ return fileDescriptorSpecs, []int{9, 0} |
|
111 | 111 |
} |
112 | 112 |
|
113 | 113 |
type NodeSpec struct { |
... | ... |
@@ -310,6 +310,15 @@ type TaskSpec struct { |
310 | 310 |
// using the same reconciliation-based mechanism that performs rolling |
311 | 311 |
// updates. |
312 | 312 |
ForceUpdate uint64 `protobuf:"varint,9,opt,name=force_update,json=forceUpdate,proto3" json:"force_update,omitempty"` |
313 |
+ // ResourceReferences provides a generic way to specify resources that |
|
314 |
+ // are used by this task, and should be sent down to agents along with |
|
315 |
+ // the task. Inside the runtime field there may be more specific |
|
316 |
+ // information about how to use the resource, but ResourceReferences |
|
317 |
+ // establishes the relationship at the store level, and instructs the |
|
318 |
+ // dispatcher to send the related objects. |
|
319 |
+ // |
|
320 |
+ // ResourceReferences is a list of ResourceReferences used by the task. |
|
321 |
+ ResourceReferences []ResourceReference `protobuf:"bytes,11,rep,name=resource_references,json=resourceReferences" json:"resource_references"` |
|
313 | 322 |
} |
314 | 323 |
|
315 | 324 |
func (m *TaskSpec) Reset() { *m = TaskSpec{} } |
... | ... |
@@ -457,6 +466,15 @@ func _TaskSpec_OneofSizer(msg proto.Message) (n int) { |
457 | 457 |
return n |
458 | 458 |
} |
459 | 459 |
|
460 |
+type ResourceReference struct { |
|
461 |
+ ResourceID string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"` |
|
462 |
+ ResourceType ResourceType `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=docker.swarmkit.v1.ResourceType" json:"resource_type,omitempty"` |
|
463 |
+} |
|
464 |
+ |
|
465 |
+func (m *ResourceReference) Reset() { *m = ResourceReference{} } |
|
466 |
+func (*ResourceReference) ProtoMessage() {} |
|
467 |
+func (*ResourceReference) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{5} } |
|
468 |
+ |
|
460 | 469 |
type GenericRuntimeSpec struct { |
461 | 470 |
Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"` |
462 | 471 |
Payload *google_protobuf3.Any `protobuf:"bytes,2,opt,name=payload" json:"payload,omitempty"` |
... | ... |
@@ -464,7 +482,7 @@ type GenericRuntimeSpec struct { |
464 | 464 |
|
465 | 465 |
func (m *GenericRuntimeSpec) Reset() { *m = GenericRuntimeSpec{} } |
466 | 466 |
func (*GenericRuntimeSpec) ProtoMessage() {} |
467 |
-func (*GenericRuntimeSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{5} } |
|
467 |
+func (*GenericRuntimeSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{6} } |
|
468 | 468 |
|
469 | 469 |
// NetworkAttachmentSpec specifies runtime parameters required to attach |
470 | 470 |
// a container to a network. |
... | ... |
@@ -476,7 +494,7 @@ type NetworkAttachmentSpec struct { |
476 | 476 |
|
477 | 477 |
func (m *NetworkAttachmentSpec) Reset() { *m = NetworkAttachmentSpec{} } |
478 | 478 |
func (*NetworkAttachmentSpec) ProtoMessage() {} |
479 |
-func (*NetworkAttachmentSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{6} } |
|
479 |
+func (*NetworkAttachmentSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{7} } |
|
480 | 480 |
|
481 | 481 |
// Container specifies runtime parameters for a container. |
482 | 482 |
type ContainerSpec struct { |
... | ... |
@@ -567,11 +585,96 @@ type ContainerSpec struct { |
567 | 567 |
// task will exit and a new task will be rescheduled elsewhere. A container |
568 | 568 |
// is considered unhealthy after `Retries` number of consecutive failures. |
569 | 569 |
Healthcheck *HealthConfig `protobuf:"bytes,16,opt,name=healthcheck" json:"healthcheck,omitempty"` |
570 |
+ // Run a custom init inside the container, if null, use the daemon's configured settings |
|
571 |
+ // |
|
572 |
+ // Types that are valid to be assigned to Init: |
|
573 |
+ // *ContainerSpec_InitValue |
|
574 |
+ Init isContainerSpec_Init `protobuf_oneof:"init"` |
|
570 | 575 |
} |
571 | 576 |
|
572 | 577 |
func (m *ContainerSpec) Reset() { *m = ContainerSpec{} } |
573 | 578 |
func (*ContainerSpec) ProtoMessage() {} |
574 |
-func (*ContainerSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{7} } |
|
579 |
+func (*ContainerSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{8} } |
|
580 |
+ |
|
581 |
+type isContainerSpec_Init interface { |
|
582 |
+ isContainerSpec_Init() |
|
583 |
+ MarshalTo([]byte) (int, error) |
|
584 |
+ Size() int |
|
585 |
+} |
|
586 |
+ |
|
587 |
+type ContainerSpec_InitValue struct { |
|
588 |
+ InitValue bool `protobuf:"varint,23,opt,name=init_value,json=initValue,proto3,oneof"` |
|
589 |
+} |
|
590 |
+ |
|
591 |
+func (*ContainerSpec_InitValue) isContainerSpec_Init() {} |
|
592 |
+ |
|
593 |
+func (m *ContainerSpec) GetInit() isContainerSpec_Init { |
|
594 |
+ if m != nil { |
|
595 |
+ return m.Init |
|
596 |
+ } |
|
597 |
+ return nil |
|
598 |
+} |
|
599 |
+ |
|
600 |
+func (m *ContainerSpec) GetInitValue() bool { |
|
601 |
+ if x, ok := m.GetInit().(*ContainerSpec_InitValue); ok { |
|
602 |
+ return x.InitValue |
|
603 |
+ } |
|
604 |
+ return false |
|
605 |
+} |
|
606 |
+ |
|
607 |
+// XXX_OneofFuncs is for the internal use of the proto package. |
|
608 |
+func (*ContainerSpec) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { |
|
609 |
+ return _ContainerSpec_OneofMarshaler, _ContainerSpec_OneofUnmarshaler, _ContainerSpec_OneofSizer, []interface{}{ |
|
610 |
+ (*ContainerSpec_InitValue)(nil), |
|
611 |
+ } |
|
612 |
+} |
|
613 |
+ |
|
614 |
+func _ContainerSpec_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { |
|
615 |
+ m := msg.(*ContainerSpec) |
|
616 |
+ // init |
|
617 |
+ switch x := m.Init.(type) { |
|
618 |
+ case *ContainerSpec_InitValue: |
|
619 |
+ t := uint64(0) |
|
620 |
+ if x.InitValue { |
|
621 |
+ t = 1 |
|
622 |
+ } |
|
623 |
+ _ = b.EncodeVarint(23<<3 | proto.WireVarint) |
|
624 |
+ _ = b.EncodeVarint(t) |
|
625 |
+ case nil: |
|
626 |
+ default: |
|
627 |
+ return fmt.Errorf("ContainerSpec.Init has unexpected type %T", x) |
|
628 |
+ } |
|
629 |
+ return nil |
|
630 |
+} |
|
631 |
+ |
|
632 |
+func _ContainerSpec_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { |
|
633 |
+ m := msg.(*ContainerSpec) |
|
634 |
+ switch tag { |
|
635 |
+ case 23: // init.init_value |
|
636 |
+ if wire != proto.WireVarint { |
|
637 |
+ return true, proto.ErrInternalBadWireType |
|
638 |
+ } |
|
639 |
+ x, err := b.DecodeVarint() |
|
640 |
+ m.Init = &ContainerSpec_InitValue{x != 0} |
|
641 |
+ return true, err |
|
642 |
+ default: |
|
643 |
+ return false, nil |
|
644 |
+ } |
|
645 |
+} |
|
646 |
+ |
|
647 |
+func _ContainerSpec_OneofSizer(msg proto.Message) (n int) { |
|
648 |
+ m := msg.(*ContainerSpec) |
|
649 |
+ // init |
|
650 |
+ switch x := m.Init.(type) { |
|
651 |
+ case *ContainerSpec_InitValue: |
|
652 |
+ n += proto.SizeVarint(23<<3 | proto.WireVarint) |
|
653 |
+ n += 1 |
|
654 |
+ case nil: |
|
655 |
+ default: |
|
656 |
+ panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) |
|
657 |
+ } |
|
658 |
+ return n |
|
659 |
+} |
|
575 | 660 |
|
576 | 661 |
// PullOptions allows one to parameterize an image pull. |
577 | 662 |
type ContainerSpec_PullOptions struct { |
... | ... |
@@ -585,7 +688,7 @@ type ContainerSpec_PullOptions struct { |
585 | 585 |
func (m *ContainerSpec_PullOptions) Reset() { *m = ContainerSpec_PullOptions{} } |
586 | 586 |
func (*ContainerSpec_PullOptions) ProtoMessage() {} |
587 | 587 |
func (*ContainerSpec_PullOptions) Descriptor() ([]byte, []int) { |
588 |
- return fileDescriptorSpecs, []int{7, 1} |
|
588 |
+ return fileDescriptorSpecs, []int{8, 1} |
|
589 | 589 |
} |
590 | 590 |
|
591 | 591 |
// DNSConfig specifies DNS related configurations in resolver configuration file (resolv.conf) |
... | ... |
@@ -603,7 +706,7 @@ type ContainerSpec_DNSConfig struct { |
603 | 603 |
|
604 | 604 |
func (m *ContainerSpec_DNSConfig) Reset() { *m = ContainerSpec_DNSConfig{} } |
605 | 605 |
func (*ContainerSpec_DNSConfig) ProtoMessage() {} |
606 |
-func (*ContainerSpec_DNSConfig) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{7, 2} } |
|
606 |
+func (*ContainerSpec_DNSConfig) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{8, 2} } |
|
607 | 607 |
|
608 | 608 |
// EndpointSpec defines the properties that can be configured to |
609 | 609 |
// access and loadbalance the service. |
... | ... |
@@ -616,7 +719,7 @@ type EndpointSpec struct { |
616 | 616 |
|
617 | 617 |
func (m *EndpointSpec) Reset() { *m = EndpointSpec{} } |
618 | 618 |
func (*EndpointSpec) ProtoMessage() {} |
619 |
-func (*EndpointSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{8} } |
|
619 |
+func (*EndpointSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{9} } |
|
620 | 620 |
|
621 | 621 |
// NetworkSpec specifies user defined network parameters. |
622 | 622 |
type NetworkSpec struct { |
... | ... |
@@ -651,7 +754,7 @@ type NetworkSpec struct { |
651 | 651 |
|
652 | 652 |
func (m *NetworkSpec) Reset() { *m = NetworkSpec{} } |
653 | 653 |
func (*NetworkSpec) ProtoMessage() {} |
654 |
-func (*NetworkSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{9} } |
|
654 |
+func (*NetworkSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{10} } |
|
655 | 655 |
|
656 | 656 |
type isNetworkSpec_ConfigFrom interface { |
657 | 657 |
isNetworkSpec_ConfigFrom() |
... | ... |
@@ -753,7 +856,7 @@ type ClusterSpec struct { |
753 | 753 |
|
754 | 754 |
func (m *ClusterSpec) Reset() { *m = ClusterSpec{} } |
755 | 755 |
func (*ClusterSpec) ProtoMessage() {} |
756 |
-func (*ClusterSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{10} } |
|
756 |
+func (*ClusterSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{11} } |
|
757 | 757 |
|
758 | 758 |
// SecretSpec specifies a user-provided secret. |
759 | 759 |
type SecretSpec struct { |
... | ... |
@@ -772,7 +875,7 @@ type SecretSpec struct { |
772 | 772 |
|
773 | 773 |
func (m *SecretSpec) Reset() { *m = SecretSpec{} } |
774 | 774 |
func (*SecretSpec) ProtoMessage() {} |
775 |
-func (*SecretSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{11} } |
|
775 |
+func (*SecretSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{12} } |
|
776 | 776 |
|
777 | 777 |
// ConfigSpec specifies user-provided configuration files. |
778 | 778 |
type ConfigSpec struct { |
... | ... |
@@ -791,7 +894,7 @@ type ConfigSpec struct { |
791 | 791 |
|
792 | 792 |
func (m *ConfigSpec) Reset() { *m = ConfigSpec{} } |
793 | 793 |
func (*ConfigSpec) ProtoMessage() {} |
794 |
-func (*ConfigSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{12} } |
|
794 |
+func (*ConfigSpec) Descriptor() ([]byte, []int) { return fileDescriptorSpecs, []int{13} } |
|
795 | 795 |
|
796 | 796 |
func init() { |
797 | 797 |
proto.RegisterType((*NodeSpec)(nil), "docker.swarmkit.v1.NodeSpec") |
... | ... |
@@ -799,6 +902,7 @@ func init() { |
799 | 799 |
proto.RegisterType((*ReplicatedService)(nil), "docker.swarmkit.v1.ReplicatedService") |
800 | 800 |
proto.RegisterType((*GlobalService)(nil), "docker.swarmkit.v1.GlobalService") |
801 | 801 |
proto.RegisterType((*TaskSpec)(nil), "docker.swarmkit.v1.TaskSpec") |
802 |
+ proto.RegisterType((*ResourceReference)(nil), "docker.swarmkit.v1.ResourceReference") |
|
802 | 803 |
proto.RegisterType((*GenericRuntimeSpec)(nil), "docker.swarmkit.v1.GenericRuntimeSpec") |
803 | 804 |
proto.RegisterType((*NetworkAttachmentSpec)(nil), "docker.swarmkit.v1.NetworkAttachmentSpec") |
804 | 805 |
proto.RegisterType((*ContainerSpec)(nil), "docker.swarmkit.v1.ContainerSpec") |
... | ... |
@@ -946,6 +1050,13 @@ func (m *TaskSpec) CopyFrom(src interface{}) { |
946 | 946 |
} |
947 | 947 |
} |
948 | 948 |
|
949 |
+ if o.ResourceReferences != nil { |
|
950 |
+ m.ResourceReferences = make([]ResourceReference, len(o.ResourceReferences)) |
|
951 |
+ for i := range m.ResourceReferences { |
|
952 |
+ github_com_docker_swarmkit_api_deepcopy.Copy(&m.ResourceReferences[i], &o.ResourceReferences[i]) |
|
953 |
+ } |
|
954 |
+ } |
|
955 |
+ |
|
949 | 956 |
if o.Runtime != nil { |
950 | 957 |
switch o.Runtime.(type) { |
951 | 958 |
case *TaskSpec_Attachment: |
... | ... |
@@ -971,6 +1082,21 @@ func (m *TaskSpec) CopyFrom(src interface{}) { |
971 | 971 |
|
972 | 972 |
} |
973 | 973 |
|
974 |
+func (m *ResourceReference) Copy() *ResourceReference { |
|
975 |
+ if m == nil { |
|
976 |
+ return nil |
|
977 |
+ } |
|
978 |
+ o := &ResourceReference{} |
|
979 |
+ o.CopyFrom(m) |
|
980 |
+ return o |
|
981 |
+} |
|
982 |
+ |
|
983 |
+func (m *ResourceReference) CopyFrom(src interface{}) { |
|
984 |
+ |
|
985 |
+ o := src.(*ResourceReference) |
|
986 |
+ *m = *o |
|
987 |
+} |
|
988 |
+ |
|
974 | 989 |
func (m *GenericRuntimeSpec) Copy() *GenericRuntimeSpec { |
975 | 990 |
if m == nil { |
976 | 991 |
return nil |
... | ... |
@@ -1093,6 +1219,16 @@ func (m *ContainerSpec) CopyFrom(src interface{}) { |
1093 | 1093 |
m.Healthcheck = &HealthConfig{} |
1094 | 1094 |
github_com_docker_swarmkit_api_deepcopy.Copy(m.Healthcheck, o.Healthcheck) |
1095 | 1095 |
} |
1096 |
+ if o.Init != nil { |
|
1097 |
+ switch o.Init.(type) { |
|
1098 |
+ case *ContainerSpec_InitValue: |
|
1099 |
+ v := ContainerSpec_InitValue{ |
|
1100 |
+ InitValue: o.GetInitValue(), |
|
1101 |
+ } |
|
1102 |
+ m.Init = &v |
|
1103 |
+ } |
|
1104 |
+ } |
|
1105 |
+ |
|
1096 | 1106 |
} |
1097 | 1107 |
|
1098 | 1108 |
func (m *ContainerSpec_PullOptions) Copy() *ContainerSpec_PullOptions { |
... | ... |
@@ -1544,6 +1680,18 @@ func (m *TaskSpec) MarshalTo(dAtA []byte) (int, error) { |
1544 | 1544 |
i++ |
1545 | 1545 |
i = encodeVarintSpecs(dAtA, i, uint64(m.ForceUpdate)) |
1546 | 1546 |
} |
1547 |
+ if len(m.ResourceReferences) > 0 { |
|
1548 |
+ for _, msg := range m.ResourceReferences { |
|
1549 |
+ dAtA[i] = 0x5a |
|
1550 |
+ i++ |
|
1551 |
+ i = encodeVarintSpecs(dAtA, i, uint64(msg.Size())) |
|
1552 |
+ n, err := msg.MarshalTo(dAtA[i:]) |
|
1553 |
+ if err != nil { |
|
1554 |
+ return 0, err |
|
1555 |
+ } |
|
1556 |
+ i += n |
|
1557 |
+ } |
|
1558 |
+ } |
|
1547 | 1559 |
return i, nil |
1548 | 1560 |
} |
1549 | 1561 |
|
... | ... |
@@ -1589,6 +1737,35 @@ func (m *TaskSpec_Generic) MarshalTo(dAtA []byte) (int, error) { |
1589 | 1589 |
} |
1590 | 1590 |
return i, nil |
1591 | 1591 |
} |
1592 |
+func (m *ResourceReference) Marshal() (dAtA []byte, err error) { |
|
1593 |
+ size := m.Size() |
|
1594 |
+ dAtA = make([]byte, size) |
|
1595 |
+ n, err := m.MarshalTo(dAtA) |
|
1596 |
+ if err != nil { |
|
1597 |
+ return nil, err |
|
1598 |
+ } |
|
1599 |
+ return dAtA[:n], nil |
|
1600 |
+} |
|
1601 |
+ |
|
1602 |
+func (m *ResourceReference) MarshalTo(dAtA []byte) (int, error) { |
|
1603 |
+ var i int |
|
1604 |
+ _ = i |
|
1605 |
+ var l int |
|
1606 |
+ _ = l |
|
1607 |
+ if len(m.ResourceID) > 0 { |
|
1608 |
+ dAtA[i] = 0xa |
|
1609 |
+ i++ |
|
1610 |
+ i = encodeVarintSpecs(dAtA, i, uint64(len(m.ResourceID))) |
|
1611 |
+ i += copy(dAtA[i:], m.ResourceID) |
|
1612 |
+ } |
|
1613 |
+ if m.ResourceType != 0 { |
|
1614 |
+ dAtA[i] = 0x10 |
|
1615 |
+ i++ |
|
1616 |
+ i = encodeVarintSpecs(dAtA, i, uint64(m.ResourceType)) |
|
1617 |
+ } |
|
1618 |
+ return i, nil |
|
1619 |
+} |
|
1620 |
+ |
|
1592 | 1621 |
func (m *GenericRuntimeSpec) Marshal() (dAtA []byte, err error) { |
1593 | 1622 |
size := m.Size() |
1594 | 1623 |
dAtA = make([]byte, size) |
... | ... |
@@ -1914,9 +2091,30 @@ func (m *ContainerSpec) MarshalTo(dAtA []byte) (int, error) { |
1914 | 1914 |
} |
1915 | 1915 |
i += n23 |
1916 | 1916 |
} |
1917 |
+ if m.Init != nil { |
|
1918 |
+ nn24, err := m.Init.MarshalTo(dAtA[i:]) |
|
1919 |
+ if err != nil { |
|
1920 |
+ return 0, err |
|
1921 |
+ } |
|
1922 |
+ i += nn24 |
|
1923 |
+ } |
|
1917 | 1924 |
return i, nil |
1918 | 1925 |
} |
1919 | 1926 |
|
1927 |
+func (m *ContainerSpec_InitValue) MarshalTo(dAtA []byte) (int, error) { |
|
1928 |
+ i := 0 |
|
1929 |
+ dAtA[i] = 0xb8 |
|
1930 |
+ i++ |
|
1931 |
+ dAtA[i] = 0x1 |
|
1932 |
+ i++ |
|
1933 |
+ if m.InitValue { |
|
1934 |
+ dAtA[i] = 1 |
|
1935 |
+ } else { |
|
1936 |
+ dAtA[i] = 0 |
|
1937 |
+ } |
|
1938 |
+ i++ |
|
1939 |
+ return i, nil |
|
1940 |
+} |
|
1920 | 1941 |
func (m *ContainerSpec_PullOptions) Marshal() (dAtA []byte, err error) { |
1921 | 1942 |
size := m.Size() |
1922 | 1943 |
dAtA = make([]byte, size) |
... | ... |
@@ -2059,20 +2257,20 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) { |
2059 | 2059 |
dAtA[i] = 0xa |
2060 | 2060 |
i++ |
2061 | 2061 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) |
2062 |
- n24, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2062 |
+ n25, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2063 | 2063 |
if err != nil { |
2064 | 2064 |
return 0, err |
2065 | 2065 |
} |
2066 |
- i += n24 |
|
2066 |
+ i += n25 |
|
2067 | 2067 |
if m.DriverConfig != nil { |
2068 | 2068 |
dAtA[i] = 0x12 |
2069 | 2069 |
i++ |
2070 | 2070 |
i = encodeVarintSpecs(dAtA, i, uint64(m.DriverConfig.Size())) |
2071 |
- n25, err := m.DriverConfig.MarshalTo(dAtA[i:]) |
|
2071 |
+ n26, err := m.DriverConfig.MarshalTo(dAtA[i:]) |
|
2072 | 2072 |
if err != nil { |
2073 | 2073 |
return 0, err |
2074 | 2074 |
} |
2075 |
- i += n25 |
|
2075 |
+ i += n26 |
|
2076 | 2076 |
} |
2077 | 2077 |
if m.Ipv6Enabled { |
2078 | 2078 |
dAtA[i] = 0x18 |
... | ... |
@@ -2098,11 +2296,11 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) { |
2098 | 2098 |
dAtA[i] = 0x2a |
2099 | 2099 |
i++ |
2100 | 2100 |
i = encodeVarintSpecs(dAtA, i, uint64(m.IPAM.Size())) |
2101 |
- n26, err := m.IPAM.MarshalTo(dAtA[i:]) |
|
2101 |
+ n27, err := m.IPAM.MarshalTo(dAtA[i:]) |
|
2102 | 2102 |
if err != nil { |
2103 | 2103 |
return 0, err |
2104 | 2104 |
} |
2105 |
- i += n26 |
|
2105 |
+ i += n27 |
|
2106 | 2106 |
} |
2107 | 2107 |
if m.Attachable { |
2108 | 2108 |
dAtA[i] = 0x30 |
... | ... |
@@ -2125,11 +2323,11 @@ func (m *NetworkSpec) MarshalTo(dAtA []byte) (int, error) { |
2125 | 2125 |
i++ |
2126 | 2126 |
} |
2127 | 2127 |
if m.ConfigFrom != nil { |
2128 |
- nn27, err := m.ConfigFrom.MarshalTo(dAtA[i:]) |
|
2128 |
+ nn28, err := m.ConfigFrom.MarshalTo(dAtA[i:]) |
|
2129 | 2129 |
if err != nil { |
2130 | 2130 |
return 0, err |
2131 | 2131 |
} |
2132 |
- i += nn27 |
|
2132 |
+ i += nn28 |
|
2133 | 2133 |
} |
2134 | 2134 |
return i, nil |
2135 | 2135 |
} |
... | ... |
@@ -2160,67 +2358,67 @@ func (m *ClusterSpec) MarshalTo(dAtA []byte) (int, error) { |
2160 | 2160 |
dAtA[i] = 0xa |
2161 | 2161 |
i++ |
2162 | 2162 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) |
2163 |
- n28, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2163 |
+ n29, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2164 | 2164 |
if err != nil { |
2165 | 2165 |
return 0, err |
2166 | 2166 |
} |
2167 |
- i += n28 |
|
2167 |
+ i += n29 |
|
2168 | 2168 |
dAtA[i] = 0x12 |
2169 | 2169 |
i++ |
2170 | 2170 |
i = encodeVarintSpecs(dAtA, i, uint64(m.AcceptancePolicy.Size())) |
2171 |
- n29, err := m.AcceptancePolicy.MarshalTo(dAtA[i:]) |
|
2171 |
+ n30, err := m.AcceptancePolicy.MarshalTo(dAtA[i:]) |
|
2172 | 2172 |
if err != nil { |
2173 | 2173 |
return 0, err |
2174 | 2174 |
} |
2175 |
- i += n29 |
|
2175 |
+ i += n30 |
|
2176 | 2176 |
dAtA[i] = 0x1a |
2177 | 2177 |
i++ |
2178 | 2178 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Orchestration.Size())) |
2179 |
- n30, err := m.Orchestration.MarshalTo(dAtA[i:]) |
|
2179 |
+ n31, err := m.Orchestration.MarshalTo(dAtA[i:]) |
|
2180 | 2180 |
if err != nil { |
2181 | 2181 |
return 0, err |
2182 | 2182 |
} |
2183 |
- i += n30 |
|
2183 |
+ i += n31 |
|
2184 | 2184 |
dAtA[i] = 0x22 |
2185 | 2185 |
i++ |
2186 | 2186 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Raft.Size())) |
2187 |
- n31, err := m.Raft.MarshalTo(dAtA[i:]) |
|
2187 |
+ n32, err := m.Raft.MarshalTo(dAtA[i:]) |
|
2188 | 2188 |
if err != nil { |
2189 | 2189 |
return 0, err |
2190 | 2190 |
} |
2191 |
- i += n31 |
|
2191 |
+ i += n32 |
|
2192 | 2192 |
dAtA[i] = 0x2a |
2193 | 2193 |
i++ |
2194 | 2194 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Dispatcher.Size())) |
2195 |
- n32, err := m.Dispatcher.MarshalTo(dAtA[i:]) |
|
2195 |
+ n33, err := m.Dispatcher.MarshalTo(dAtA[i:]) |
|
2196 | 2196 |
if err != nil { |
2197 | 2197 |
return 0, err |
2198 | 2198 |
} |
2199 |
- i += n32 |
|
2199 |
+ i += n33 |
|
2200 | 2200 |
dAtA[i] = 0x32 |
2201 | 2201 |
i++ |
2202 | 2202 |
i = encodeVarintSpecs(dAtA, i, uint64(m.CAConfig.Size())) |
2203 |
- n33, err := m.CAConfig.MarshalTo(dAtA[i:]) |
|
2203 |
+ n34, err := m.CAConfig.MarshalTo(dAtA[i:]) |
|
2204 | 2204 |
if err != nil { |
2205 | 2205 |
return 0, err |
2206 | 2206 |
} |
2207 |
- i += n33 |
|
2207 |
+ i += n34 |
|
2208 | 2208 |
dAtA[i] = 0x3a |
2209 | 2209 |
i++ |
2210 | 2210 |
i = encodeVarintSpecs(dAtA, i, uint64(m.TaskDefaults.Size())) |
2211 |
- n34, err := m.TaskDefaults.MarshalTo(dAtA[i:]) |
|
2211 |
+ n35, err := m.TaskDefaults.MarshalTo(dAtA[i:]) |
|
2212 | 2212 |
if err != nil { |
2213 | 2213 |
return 0, err |
2214 | 2214 |
} |
2215 |
- i += n34 |
|
2215 |
+ i += n35 |
|
2216 | 2216 |
dAtA[i] = 0x42 |
2217 | 2217 |
i++ |
2218 | 2218 |
i = encodeVarintSpecs(dAtA, i, uint64(m.EncryptionConfig.Size())) |
2219 |
- n35, err := m.EncryptionConfig.MarshalTo(dAtA[i:]) |
|
2219 |
+ n36, err := m.EncryptionConfig.MarshalTo(dAtA[i:]) |
|
2220 | 2220 |
if err != nil { |
2221 | 2221 |
return 0, err |
2222 | 2222 |
} |
2223 |
- i += n35 |
|
2223 |
+ i += n36 |
|
2224 | 2224 |
return i, nil |
2225 | 2225 |
} |
2226 | 2226 |
|
... | ... |
@@ -2242,11 +2440,11 @@ func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) { |
2242 | 2242 |
dAtA[i] = 0xa |
2243 | 2243 |
i++ |
2244 | 2244 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) |
2245 |
- n36, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2245 |
+ n37, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2246 | 2246 |
if err != nil { |
2247 | 2247 |
return 0, err |
2248 | 2248 |
} |
2249 |
- i += n36 |
|
2249 |
+ i += n37 |
|
2250 | 2250 |
if len(m.Data) > 0 { |
2251 | 2251 |
dAtA[i] = 0x12 |
2252 | 2252 |
i++ |
... | ... |
@@ -2257,21 +2455,21 @@ func (m *SecretSpec) MarshalTo(dAtA []byte) (int, error) { |
2257 | 2257 |
dAtA[i] = 0x1a |
2258 | 2258 |
i++ |
2259 | 2259 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size())) |
2260 |
- n37, err := m.Templating.MarshalTo(dAtA[i:]) |
|
2260 |
+ n38, err := m.Templating.MarshalTo(dAtA[i:]) |
|
2261 | 2261 |
if err != nil { |
2262 | 2262 |
return 0, err |
2263 | 2263 |
} |
2264 |
- i += n37 |
|
2264 |
+ i += n38 |
|
2265 | 2265 |
} |
2266 | 2266 |
if m.Driver != nil { |
2267 | 2267 |
dAtA[i] = 0x22 |
2268 | 2268 |
i++ |
2269 | 2269 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Driver.Size())) |
2270 |
- n38, err := m.Driver.MarshalTo(dAtA[i:]) |
|
2270 |
+ n39, err := m.Driver.MarshalTo(dAtA[i:]) |
|
2271 | 2271 |
if err != nil { |
2272 | 2272 |
return 0, err |
2273 | 2273 |
} |
2274 |
- i += n38 |
|
2274 |
+ i += n39 |
|
2275 | 2275 |
} |
2276 | 2276 |
return i, nil |
2277 | 2277 |
} |
... | ... |
@@ -2294,11 +2492,11 @@ func (m *ConfigSpec) MarshalTo(dAtA []byte) (int, error) { |
2294 | 2294 |
dAtA[i] = 0xa |
2295 | 2295 |
i++ |
2296 | 2296 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Annotations.Size())) |
2297 |
- n39, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2297 |
+ n40, err := m.Annotations.MarshalTo(dAtA[i:]) |
|
2298 | 2298 |
if err != nil { |
2299 | 2299 |
return 0, err |
2300 | 2300 |
} |
2301 |
- i += n39 |
|
2301 |
+ i += n40 |
|
2302 | 2302 |
if len(m.Data) > 0 { |
2303 | 2303 |
dAtA[i] = 0x12 |
2304 | 2304 |
i++ |
... | ... |
@@ -2309,11 +2507,11 @@ func (m *ConfigSpec) MarshalTo(dAtA []byte) (int, error) { |
2309 | 2309 |
dAtA[i] = 0x1a |
2310 | 2310 |
i++ |
2311 | 2311 |
i = encodeVarintSpecs(dAtA, i, uint64(m.Templating.Size())) |
2312 |
- n40, err := m.Templating.MarshalTo(dAtA[i:]) |
|
2312 |
+ n41, err := m.Templating.MarshalTo(dAtA[i:]) |
|
2313 | 2313 |
if err != nil { |
2314 | 2314 |
return 0, err |
2315 | 2315 |
} |
2316 |
- i += n40 |
|
2316 |
+ i += n41 |
|
2317 | 2317 |
} |
2318 | 2318 |
return i, nil |
2319 | 2319 |
} |
... | ... |
@@ -2458,6 +2656,12 @@ func (m *TaskSpec) Size() (n int) { |
2458 | 2458 |
if m.ForceUpdate != 0 { |
2459 | 2459 |
n += 1 + sovSpecs(uint64(m.ForceUpdate)) |
2460 | 2460 |
} |
2461 |
+ if len(m.ResourceReferences) > 0 { |
|
2462 |
+ for _, e := range m.ResourceReferences { |
|
2463 |
+ l = e.Size() |
|
2464 |
+ n += 1 + l + sovSpecs(uint64(l)) |
|
2465 |
+ } |
|
2466 |
+ } |
|
2461 | 2467 |
return n |
2462 | 2468 |
} |
2463 | 2469 |
|
... | ... |
@@ -2488,6 +2692,19 @@ func (m *TaskSpec_Generic) Size() (n int) { |
2488 | 2488 |
} |
2489 | 2489 |
return n |
2490 | 2490 |
} |
2491 |
+func (m *ResourceReference) Size() (n int) { |
|
2492 |
+ var l int |
|
2493 |
+ _ = l |
|
2494 |
+ l = len(m.ResourceID) |
|
2495 |
+ if l > 0 { |
|
2496 |
+ n += 1 + l + sovSpecs(uint64(l)) |
|
2497 |
+ } |
|
2498 |
+ if m.ResourceType != 0 { |
|
2499 |
+ n += 1 + sovSpecs(uint64(m.ResourceType)) |
|
2500 |
+ } |
|
2501 |
+ return n |
|
2502 |
+} |
|
2503 |
+ |
|
2491 | 2504 |
func (m *GenericRuntimeSpec) Size() (n int) { |
2492 | 2505 |
var l int |
2493 | 2506 |
_ = l |
... | ... |
@@ -2620,9 +2837,18 @@ func (m *ContainerSpec) Size() (n int) { |
2620 | 2620 |
l = m.Privileges.Size() |
2621 | 2621 |
n += 2 + l + sovSpecs(uint64(l)) |
2622 | 2622 |
} |
2623 |
+ if m.Init != nil { |
|
2624 |
+ n += m.Init.Size() |
|
2625 |
+ } |
|
2623 | 2626 |
return n |
2624 | 2627 |
} |
2625 | 2628 |
|
2629 |
+func (m *ContainerSpec_InitValue) Size() (n int) { |
|
2630 |
+ var l int |
|
2631 |
+ _ = l |
|
2632 |
+ n += 3 |
|
2633 |
+ return n |
|
2634 |
+} |
|
2626 | 2635 |
func (m *ContainerSpec_PullOptions) Size() (n int) { |
2627 | 2636 |
var l int |
2628 | 2637 |
_ = l |
... | ... |
@@ -2861,6 +3087,7 @@ func (this *TaskSpec) String() string { |
2861 | 2861 |
`LogDriver:` + strings.Replace(fmt.Sprintf("%v", this.LogDriver), "Driver", "Driver", 1) + `,`, |
2862 | 2862 |
`Networks:` + strings.Replace(fmt.Sprintf("%v", this.Networks), "NetworkAttachmentConfig", "NetworkAttachmentConfig", 1) + `,`, |
2863 | 2863 |
`ForceUpdate:` + fmt.Sprintf("%v", this.ForceUpdate) + `,`, |
2864 |
+ `ResourceReferences:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ResourceReferences), "ResourceReference", "ResourceReference", 1), `&`, ``, 1) + `,`, |
|
2864 | 2865 |
`}`, |
2865 | 2866 |
}, "") |
2866 | 2867 |
return s |
... | ... |
@@ -2895,6 +3122,17 @@ func (this *TaskSpec_Generic) String() string { |
2895 | 2895 |
}, "") |
2896 | 2896 |
return s |
2897 | 2897 |
} |
2898 |
+func (this *ResourceReference) String() string { |
|
2899 |
+ if this == nil { |
|
2900 |
+ return "nil" |
|
2901 |
+ } |
|
2902 |
+ s := strings.Join([]string{`&ResourceReference{`, |
|
2903 |
+ `ResourceID:` + fmt.Sprintf("%v", this.ResourceID) + `,`, |
|
2904 |
+ `ResourceType:` + fmt.Sprintf("%v", this.ResourceType) + `,`, |
|
2905 |
+ `}`, |
|
2906 |
+ }, "") |
|
2907 |
+ return s |
|
2908 |
+} |
|
2898 | 2909 |
func (this *GenericRuntimeSpec) String() string { |
2899 | 2910 |
if this == nil { |
2900 | 2911 |
return "nil" |
... | ... |
@@ -2953,6 +3191,17 @@ func (this *ContainerSpec) String() string { |
2953 | 2953 |
`StopSignal:` + fmt.Sprintf("%v", this.StopSignal) + `,`, |
2954 | 2954 |
`Configs:` + strings.Replace(fmt.Sprintf("%v", this.Configs), "ConfigReference", "ConfigReference", 1) + `,`, |
2955 | 2955 |
`Privileges:` + strings.Replace(fmt.Sprintf("%v", this.Privileges), "Privileges", "Privileges", 1) + `,`, |
2956 |
+ `Init:` + fmt.Sprintf("%v", this.Init) + `,`, |
|
2957 |
+ `}`, |
|
2958 |
+ }, "") |
|
2959 |
+ return s |
|
2960 |
+} |
|
2961 |
+func (this *ContainerSpec_InitValue) String() string { |
|
2962 |
+ if this == nil { |
|
2963 |
+ return "nil" |
|
2964 |
+ } |
|
2965 |
+ s := strings.Join([]string{`&ContainerSpec_InitValue{`, |
|
2966 |
+ `InitValue:` + fmt.Sprintf("%v", this.InitValue) + `,`, |
|
2956 | 2967 |
`}`, |
2957 | 2968 |
}, "") |
2958 | 2969 |
return s |
... | ... |
@@ -3934,6 +4183,135 @@ func (m *TaskSpec) Unmarshal(dAtA []byte) error { |
3934 | 3934 |
} |
3935 | 3935 |
m.Runtime = &TaskSpec_Generic{v} |
3936 | 3936 |
iNdEx = postIndex |
3937 |
+ case 11: |
|
3938 |
+ if wireType != 2 { |
|
3939 |
+ return fmt.Errorf("proto: wrong wireType = %d for field ResourceReferences", wireType) |
|
3940 |
+ } |
|
3941 |
+ var msglen int |
|
3942 |
+ for shift := uint(0); ; shift += 7 { |
|
3943 |
+ if shift >= 64 { |
|
3944 |
+ return ErrIntOverflowSpecs |
|
3945 |
+ } |
|
3946 |
+ if iNdEx >= l { |
|
3947 |
+ return io.ErrUnexpectedEOF |
|
3948 |
+ } |
|
3949 |
+ b := dAtA[iNdEx] |
|
3950 |
+ iNdEx++ |
|
3951 |
+ msglen |= (int(b) & 0x7F) << shift |
|
3952 |
+ if b < 0x80 { |
|
3953 |
+ break |
|
3954 |
+ } |
|
3955 |
+ } |
|
3956 |
+ if msglen < 0 { |
|
3957 |
+ return ErrInvalidLengthSpecs |
|
3958 |
+ } |
|
3959 |
+ postIndex := iNdEx + msglen |
|
3960 |
+ if postIndex > l { |
|
3961 |
+ return io.ErrUnexpectedEOF |
|
3962 |
+ } |
|
3963 |
+ m.ResourceReferences = append(m.ResourceReferences, ResourceReference{}) |
|
3964 |
+ if err := m.ResourceReferences[len(m.ResourceReferences)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { |
|
3965 |
+ return err |
|
3966 |
+ } |
|
3967 |
+ iNdEx = postIndex |
|
3968 |
+ default: |
|
3969 |
+ iNdEx = preIndex |
|
3970 |
+ skippy, err := skipSpecs(dAtA[iNdEx:]) |
|
3971 |
+ if err != nil { |
|
3972 |
+ return err |
|
3973 |
+ } |
|
3974 |
+ if skippy < 0 { |
|
3975 |
+ return ErrInvalidLengthSpecs |
|
3976 |
+ } |
|
3977 |
+ if (iNdEx + skippy) > l { |
|
3978 |
+ return io.ErrUnexpectedEOF |
|
3979 |
+ } |
|
3980 |
+ iNdEx += skippy |
|
3981 |
+ } |
|
3982 |
+ } |
|
3983 |
+ |
|
3984 |
+ if iNdEx > l { |
|
3985 |
+ return io.ErrUnexpectedEOF |
|
3986 |
+ } |
|
3987 |
+ return nil |
|
3988 |
+} |
|
3989 |
+func (m *ResourceReference) Unmarshal(dAtA []byte) error { |
|
3990 |
+ l := len(dAtA) |
|
3991 |
+ iNdEx := 0 |
|
3992 |
+ for iNdEx < l { |
|
3993 |
+ preIndex := iNdEx |
|
3994 |
+ var wire uint64 |
|
3995 |
+ for shift := uint(0); ; shift += 7 { |
|
3996 |
+ if shift >= 64 { |
|
3997 |
+ return ErrIntOverflowSpecs |
|
3998 |
+ } |
|
3999 |
+ if iNdEx >= l { |
|
4000 |
+ return io.ErrUnexpectedEOF |
|
4001 |
+ } |
|
4002 |
+ b := dAtA[iNdEx] |
|
4003 |
+ iNdEx++ |
|
4004 |
+ wire |= (uint64(b) & 0x7F) << shift |
|
4005 |
+ if b < 0x80 { |
|
4006 |
+ break |
|
4007 |
+ } |
|
4008 |
+ } |
|
4009 |
+ fieldNum := int32(wire >> 3) |
|
4010 |
+ wireType := int(wire & 0x7) |
|
4011 |
+ if wireType == 4 { |
|
4012 |
+ return fmt.Errorf("proto: ResourceReference: wiretype end group for non-group") |
|
4013 |
+ } |
|
4014 |
+ if fieldNum <= 0 { |
|
4015 |
+ return fmt.Errorf("proto: ResourceReference: illegal tag %d (wire type %d)", fieldNum, wire) |
|
4016 |
+ } |
|
4017 |
+ switch fieldNum { |
|
4018 |
+ case 1: |
|
4019 |
+ if wireType != 2 { |
|
4020 |
+ return fmt.Errorf("proto: wrong wireType = %d for field ResourceID", wireType) |
|
4021 |
+ } |
|
4022 |
+ var stringLen uint64 |
|
4023 |
+ for shift := uint(0); ; shift += 7 { |
|
4024 |
+ if shift >= 64 { |
|
4025 |
+ return ErrIntOverflowSpecs |
|
4026 |
+ } |
|
4027 |
+ if iNdEx >= l { |
|
4028 |
+ return io.ErrUnexpectedEOF |
|
4029 |
+ } |
|
4030 |
+ b := dAtA[iNdEx] |
|
4031 |
+ iNdEx++ |
|
4032 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
4033 |
+ if b < 0x80 { |
|
4034 |
+ break |
|
4035 |
+ } |
|
4036 |
+ } |
|
4037 |
+ intStringLen := int(stringLen) |
|
4038 |
+ if intStringLen < 0 { |
|
4039 |
+ return ErrInvalidLengthSpecs |
|
4040 |
+ } |
|
4041 |
+ postIndex := iNdEx + intStringLen |
|
4042 |
+ if postIndex > l { |
|
4043 |
+ return io.ErrUnexpectedEOF |
|
4044 |
+ } |
|
4045 |
+ m.ResourceID = string(dAtA[iNdEx:postIndex]) |
|
4046 |
+ iNdEx = postIndex |
|
4047 |
+ case 2: |
|
4048 |
+ if wireType != 0 { |
|
4049 |
+ return fmt.Errorf("proto: wrong wireType = %d for field ResourceType", wireType) |
|
4050 |
+ } |
|
4051 |
+ m.ResourceType = 0 |
|
4052 |
+ for shift := uint(0); ; shift += 7 { |
|
4053 |
+ if shift >= 64 { |
|
4054 |
+ return ErrIntOverflowSpecs |
|
4055 |
+ } |
|
4056 |
+ if iNdEx >= l { |
|
4057 |
+ return io.ErrUnexpectedEOF |
|
4058 |
+ } |
|
4059 |
+ b := dAtA[iNdEx] |
|
4060 |
+ iNdEx++ |
|
4061 |
+ m.ResourceType |= (ResourceType(b) & 0x7F) << shift |
|
4062 |
+ if b < 0x80 { |
|
4063 |
+ break |
|
4064 |
+ } |
|
4065 |
+ } |
|
3937 | 4066 |
default: |
3938 | 4067 |
iNdEx = preIndex |
3939 | 4068 |
skippy, err := skipSpecs(dAtA[iNdEx:]) |
... | ... |
@@ -4899,6 +5277,27 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error { |
4899 | 4899 |
return err |
4900 | 4900 |
} |
4901 | 4901 |
iNdEx = postIndex |
4902 |
+ case 23: |
|
4903 |
+ if wireType != 0 { |
|
4904 |
+ return fmt.Errorf("proto: wrong wireType = %d for field InitValue", wireType) |
|
4905 |
+ } |
|
4906 |
+ var v int |
|
4907 |
+ for shift := uint(0); ; shift += 7 { |
|
4908 |
+ if shift >= 64 { |
|
4909 |
+ return ErrIntOverflowSpecs |
|
4910 |
+ } |
|
4911 |
+ if iNdEx >= l { |
|
4912 |
+ return io.ErrUnexpectedEOF |
|
4913 |
+ } |
|
4914 |
+ b := dAtA[iNdEx] |
|
4915 |
+ iNdEx++ |
|
4916 |
+ v |= (int(b) & 0x7F) << shift |
|
4917 |
+ if b < 0x80 { |
|
4918 |
+ break |
|
4919 |
+ } |
|
4920 |
+ } |
|
4921 |
+ b := bool(v != 0) |
|
4922 |
+ m.Init = &ContainerSpec_InitValue{b} |
|
4902 | 4923 |
default: |
4903 | 4924 |
iNdEx = preIndex |
4904 | 4925 |
skippy, err := skipSpecs(dAtA[iNdEx:]) |
... | ... |
@@ -6207,126 +6606,133 @@ var ( |
6207 | 6207 |
ErrIntOverflowSpecs = fmt.Errorf("proto: integer overflow") |
6208 | 6208 |
) |
6209 | 6209 |
|
6210 |
-func init() { proto.RegisterFile("specs.proto", fileDescriptorSpecs) } |
|
6210 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/specs.proto", fileDescriptorSpecs) } |
|
6211 | 6211 |
|
6212 | 6212 |
var fileDescriptorSpecs = []byte{ |
6213 |
- // 1880 bytes of a gzipped FileDescriptorProto |
|
6214 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcf, 0x73, 0x1b, 0x49, |
|
6215 |
- 0x15, 0xb6, 0x6c, 0x59, 0x3f, 0xde, 0xc8, 0x89, 0xdc, 0x24, 0x61, 0xac, 0xb0, 0xb2, 0xa2, 0x0d, |
|
6216 |
- 0xc1, 0xcb, 0x16, 0x72, 0x61, 0xa8, 0x25, 0xbb, 0x61, 0x01, 0xc9, 0x12, 0x8e, 0x31, 0x76, 0x54, |
|
6217 |
- 0x6d, 0x6f, 0x20, 0x27, 0x55, 0x7b, 0xa6, 0x2d, 0x4d, 0x79, 0xd4, 0x3d, 0xf4, 0xf4, 0x68, 0x4b, |
|
6218 |
- 0x37, 0x8e, 0x5b, 0xb9, 0x72, 0x76, 0x71, 0xa0, 0xf8, 0x5f, 0x72, 0xa4, 0x38, 0xc1, 0xc5, 0x45, |
|
6219 |
- 0xfc, 0x2f, 0x70, 0xe3, 0x02, 0xd5, 0x3d, 0x3d, 0xd2, 0x28, 0x19, 0xc7, 0xa9, 0x22, 0x87, 0xbd, |
|
6220 |
- 0x75, 0xbf, 0xfe, 0xbe, 0xd7, 0xdd, 0xaf, 0xbf, 0xee, 0xf7, 0x1a, 0xac, 0x30, 0xa0, 0x4e, 0xd8, |
|
6221 |
- 0x0a, 0x04, 0x97, 0x1c, 0x21, 0x97, 0x3b, 0xe7, 0x54, 0xb4, 0xc2, 0xaf, 0x89, 0x18, 0x9f, 0x7b, |
|
6222 |
- 0xb2, 0x35, 0xf9, 0x71, 0xcd, 0x92, 0xd3, 0x80, 0x1a, 0x40, 0xed, 0xce, 0x90, 0x0f, 0xb9, 0x6e, |
|
6223 |
- 0x6e, 0xab, 0x96, 0xb1, 0xd6, 0x87, 0x9c, 0x0f, 0x7d, 0xba, 0xad, 0x7b, 0xa7, 0xd1, 0xd9, 0xb6, |
|
6224 |
- 0x1b, 0x09, 0x22, 0x3d, 0xce, 0xcc, 0xf8, 0xc6, 0x9b, 0xe3, 0x84, 0x4d, 0xe3, 0xa1, 0xe6, 0x45, |
|
6225 |
- 0x1e, 0x4a, 0x47, 0xdc, 0xa5, 0xc7, 0x01, 0x75, 0xd0, 0x1e, 0x58, 0x84, 0x31, 0x2e, 0x35, 0x37, |
|
6226 |
- 0xb4, 0x73, 0x8d, 0xdc, 0x96, 0xb5, 0xb3, 0xd9, 0x7a, 0x7b, 0x51, 0xad, 0xf6, 0x1c, 0xd6, 0xc9, |
|
6227 |
- 0xbf, 0xba, 0xdc, 0x5c, 0xc2, 0x69, 0x26, 0xfa, 0x25, 0x54, 0x5c, 0x1a, 0x7a, 0x82, 0xba, 0x03, |
|
6228 |
- 0xc1, 0x7d, 0x6a, 0x2f, 0x37, 0x72, 0x5b, 0xb7, 0x76, 0xbe, 0x97, 0xe5, 0x49, 0x4d, 0x8e, 0xb9, |
|
6229 |
- 0x4f, 0xb1, 0x65, 0x18, 0xaa, 0x83, 0xf6, 0x00, 0xc6, 0x74, 0x7c, 0x4a, 0x45, 0x38, 0xf2, 0x02, |
|
6230 |
- 0x7b, 0x45, 0xd3, 0x7f, 0x70, 0x1d, 0x5d, 0xad, 0xbd, 0x75, 0x38, 0x83, 0xe3, 0x14, 0x15, 0x1d, |
|
6231 |
- 0x42, 0x85, 0x4c, 0x88, 0xe7, 0x93, 0x53, 0xcf, 0xf7, 0xe4, 0xd4, 0xce, 0x6b, 0x57, 0x9f, 0xbc, |
|
6232 |
- 0xd3, 0x55, 0x3b, 0x45, 0xc0, 0x0b, 0xf4, 0xa6, 0x0b, 0x30, 0x9f, 0x08, 0x3d, 0x82, 0x62, 0xbf, |
|
6233 |
- 0x77, 0xd4, 0xdd, 0x3f, 0xda, 0xab, 0x2e, 0xd5, 0x36, 0x5e, 0x5e, 0x34, 0xee, 0x2a, 0x1f, 0x73, |
|
6234 |
- 0x40, 0x9f, 0x32, 0xd7, 0x63, 0x43, 0xb4, 0x05, 0xa5, 0xf6, 0xee, 0x6e, 0xaf, 0x7f, 0xd2, 0xeb, |
|
6235 |
- 0x56, 0x73, 0xb5, 0xda, 0xcb, 0x8b, 0xc6, 0xbd, 0x45, 0x60, 0xdb, 0x71, 0x68, 0x20, 0xa9, 0x5b, |
|
6236 |
- 0xcb, 0x7f, 0xf3, 0x97, 0xfa, 0x52, 0xf3, 0x9b, 0x1c, 0x54, 0xd2, 0x8b, 0x40, 0x8f, 0xa0, 0xd0, |
|
6237 |
- 0xde, 0x3d, 0xd9, 0x7f, 0xde, 0xab, 0x2e, 0xcd, 0xe9, 0x69, 0x44, 0xdb, 0x91, 0xde, 0x84, 0xa2, |
|
6238 |
- 0x87, 0xb0, 0xda, 0x6f, 0x7f, 0x75, 0xdc, 0xab, 0xe6, 0xe6, 0xcb, 0x49, 0xc3, 0xfa, 0x24, 0x0a, |
|
6239 |
- 0x35, 0xaa, 0x8b, 0xdb, 0xfb, 0x47, 0xd5, 0xe5, 0x6c, 0x54, 0x57, 0x10, 0x8f, 0x99, 0xa5, 0xfc, |
|
6240 |
- 0x39, 0x0f, 0xd6, 0x31, 0x15, 0x13, 0xcf, 0xf9, 0xc0, 0x12, 0xf9, 0x0c, 0xf2, 0x92, 0x84, 0xe7, |
|
6241 |
- 0x5a, 0x1a, 0x56, 0xb6, 0x34, 0x4e, 0x48, 0x78, 0xae, 0x26, 0x35, 0x74, 0x8d, 0x57, 0xca, 0x10, |
|
6242 |
- 0x34, 0xf0, 0x3d, 0x87, 0x48, 0xea, 0x6a, 0x65, 0x58, 0x3b, 0xdf, 0xcf, 0x62, 0xe3, 0x19, 0xca, |
|
6243 |
- 0xac, 0xff, 0xe9, 0x12, 0x4e, 0x51, 0xd1, 0x13, 0x28, 0x0c, 0x7d, 0x7e, 0x4a, 0x7c, 0xad, 0x09, |
|
6244 |
- 0x6b, 0xe7, 0x41, 0x96, 0x93, 0x3d, 0x8d, 0x98, 0x3b, 0x30, 0x14, 0xf4, 0x18, 0x0a, 0x51, 0xe0, |
|
6245 |
- 0x12, 0x49, 0xed, 0x82, 0x26, 0x37, 0xb2, 0xc8, 0x5f, 0x69, 0xc4, 0x2e, 0x67, 0x67, 0xde, 0x10, |
|
6246 |
- 0x1b, 0x3c, 0x3a, 0x80, 0x12, 0xa3, 0xf2, 0x6b, 0x2e, 0xce, 0x43, 0xbb, 0xd8, 0x58, 0xd9, 0xb2, |
|
6247 |
- 0x76, 0x3e, 0xcd, 0x14, 0x63, 0x8c, 0x69, 0x4b, 0x49, 0x9c, 0xd1, 0x98, 0x32, 0x19, 0xbb, 0xe9, |
|
6248 |
- 0x2c, 0xdb, 0x39, 0x3c, 0x73, 0x80, 0x7e, 0x0e, 0x25, 0xca, 0xdc, 0x80, 0x7b, 0x4c, 0xda, 0xa5, |
|
6249 |
- 0xeb, 0x17, 0xd2, 0x33, 0x18, 0x15, 0x4c, 0x3c, 0x63, 0x28, 0xb6, 0xe0, 0xbe, 0x7f, 0x4a, 0x9c, |
|
6250 |
- 0x73, 0xbb, 0xfc, 0x9e, 0xdb, 0x98, 0x31, 0x3a, 0x05, 0xc8, 0x8f, 0xb9, 0x4b, 0x9b, 0xdb, 0xb0, |
|
6251 |
- 0xfe, 0x56, 0xa8, 0x51, 0x0d, 0x4a, 0x26, 0xd4, 0xb1, 0x46, 0xf2, 0x78, 0xd6, 0x6f, 0xde, 0x86, |
|
6252 |
- 0xb5, 0x85, 0xb0, 0x36, 0xff, 0x9e, 0x87, 0x52, 0x72, 0xd6, 0xa8, 0x0d, 0x65, 0x87, 0x33, 0x49, |
|
6253 |
- 0x3c, 0x46, 0x85, 0x91, 0x57, 0xe6, 0xc9, 0xec, 0x26, 0x20, 0xc5, 0x7a, 0xba, 0x84, 0xe7, 0x2c, |
|
6254 |
- 0xf4, 0x6b, 0x28, 0x0b, 0x1a, 0xf2, 0x48, 0x38, 0x34, 0x34, 0xfa, 0xda, 0xca, 0x56, 0x48, 0x0c, |
|
6255 |
- 0xc2, 0xf4, 0x0f, 0x91, 0x27, 0xa8, 0x8a, 0x72, 0x88, 0xe7, 0x54, 0xf4, 0x04, 0x8a, 0x82, 0x86, |
|
6256 |
- 0x92, 0x08, 0xf9, 0x2e, 0x89, 0xe0, 0x18, 0xd2, 0xe7, 0xbe, 0xe7, 0x4c, 0x71, 0xc2, 0x40, 0x4f, |
|
6257 |
- 0xa0, 0x1c, 0xf8, 0xc4, 0xd1, 0x5e, 0xed, 0x55, 0x4d, 0xff, 0x28, 0x8b, 0xde, 0x4f, 0x40, 0x78, |
|
6258 |
- 0x8e, 0x47, 0x9f, 0x03, 0xf8, 0x7c, 0x38, 0x70, 0x85, 0x37, 0xa1, 0xc2, 0x48, 0xac, 0x96, 0xc5, |
|
6259 |
- 0xee, 0x6a, 0x04, 0x2e, 0xfb, 0x7c, 0x18, 0x37, 0xd1, 0xde, 0xff, 0xa5, 0xaf, 0x94, 0xb6, 0x0e, |
|
6260 |
- 0x00, 0xc8, 0x6c, 0xd4, 0xa8, 0xeb, 0x93, 0xf7, 0x72, 0x65, 0x4e, 0x24, 0x45, 0x47, 0x0f, 0xa0, |
|
6261 |
- 0x72, 0xc6, 0x85, 0x43, 0x07, 0xe6, 0xd6, 0x94, 0xb5, 0x26, 0x2c, 0x6d, 0x8b, 0xf5, 0x85, 0x3a, |
|
6262 |
- 0x50, 0x1c, 0x52, 0x46, 0x85, 0xe7, 0xd8, 0xa0, 0x27, 0x7b, 0x94, 0x79, 0x21, 0x63, 0x08, 0x8e, |
|
6263 |
- 0x98, 0xf4, 0xc6, 0xd4, 0xcc, 0x94, 0x10, 0x3b, 0x65, 0x28, 0x8a, 0x78, 0xa4, 0xf9, 0x7b, 0x40, |
|
6264 |
- 0x6f, 0x63, 0x11, 0x82, 0xfc, 0xb9, 0xc7, 0x5c, 0x2d, 0xac, 0x32, 0xd6, 0x6d, 0xd4, 0x82, 0x62, |
|
6265 |
- 0x40, 0xa6, 0x3e, 0x27, 0xae, 0x11, 0xcb, 0x9d, 0x56, 0x9c, 0x2f, 0x5b, 0x49, 0xbe, 0x6c, 0xb5, |
|
6266 |
- 0xd9, 0x14, 0x27, 0xa0, 0xe6, 0x01, 0xdc, 0xcd, 0xdc, 0x32, 0xda, 0x81, 0xca, 0x4c, 0x84, 0x03, |
|
6267 |
- 0xcf, 0x4c, 0xd2, 0xb9, 0x7d, 0x75, 0xb9, 0x69, 0xcd, 0xd4, 0xba, 0xdf, 0xc5, 0xd6, 0x0c, 0xb4, |
|
6268 |
- 0xef, 0x36, 0xff, 0x54, 0x86, 0xb5, 0x05, 0x29, 0xa3, 0x3b, 0xb0, 0xea, 0x8d, 0xc9, 0x90, 0x9a, |
|
6269 |
- 0x35, 0xc6, 0x1d, 0xd4, 0x83, 0x82, 0x4f, 0x4e, 0xa9, 0xaf, 0x04, 0xad, 0x0e, 0xf5, 0x47, 0x37, |
|
6270 |
- 0xde, 0x89, 0xd6, 0x6f, 0x35, 0xbe, 0xc7, 0xa4, 0x98, 0x62, 0x43, 0x46, 0x36, 0x14, 0x1d, 0x3e, |
|
6271 |
- 0x1e, 0x13, 0xa6, 0x9e, 0xce, 0x95, 0xad, 0x32, 0x4e, 0xba, 0x2a, 0x32, 0x44, 0x0c, 0x43, 0x3b, |
|
6272 |
- 0xaf, 0xcd, 0xba, 0x8d, 0xaa, 0xb0, 0x42, 0xd9, 0xc4, 0x5e, 0xd5, 0x26, 0xd5, 0x54, 0x16, 0xd7, |
|
6273 |
- 0x8b, 0x15, 0x59, 0xc6, 0xaa, 0xa9, 0x78, 0x51, 0x48, 0x85, 0x5d, 0x8c, 0x23, 0xaa, 0xda, 0xe8, |
|
6274 |
- 0x67, 0x50, 0x18, 0xf3, 0x88, 0xc9, 0xd0, 0x2e, 0xe9, 0xc5, 0x6e, 0x64, 0x2d, 0xf6, 0x50, 0x21, |
|
6275 |
- 0xcc, 0xd3, 0x6e, 0xe0, 0xa8, 0x07, 0xeb, 0xa1, 0xe4, 0xc1, 0x60, 0x28, 0x88, 0x43, 0x07, 0x01, |
|
6276 |
- 0x15, 0x1e, 0x77, 0xcd, 0xd3, 0xb4, 0xf1, 0xd6, 0xa1, 0x74, 0x4d, 0x91, 0x83, 0x6f, 0x2b, 0xce, |
|
6277 |
- 0x9e, 0xa2, 0xf4, 0x35, 0x03, 0xf5, 0xa1, 0x12, 0x44, 0xbe, 0x3f, 0xe0, 0x41, 0x9c, 0xa5, 0x62, |
|
6278 |
- 0x3d, 0xbd, 0x47, 0xc8, 0xfa, 0x91, 0xef, 0x3f, 0x8b, 0x49, 0xd8, 0x0a, 0xe6, 0x1d, 0x74, 0x0f, |
|
6279 |
- 0x0a, 0x43, 0xc1, 0xa3, 0x20, 0xb4, 0x2d, 0x1d, 0x0c, 0xd3, 0x43, 0x5f, 0x42, 0x31, 0xa4, 0x8e, |
|
6280 |
- 0xa0, 0x32, 0xb4, 0x2b, 0x7a, 0xab, 0x1f, 0x67, 0x4d, 0x72, 0xac, 0x21, 0x98, 0x9e, 0x51, 0x41, |
|
6281 |
- 0x99, 0x43, 0x71, 0xc2, 0x41, 0x1b, 0xb0, 0x22, 0xe5, 0xd4, 0x5e, 0x6b, 0xe4, 0xb6, 0x4a, 0x9d, |
|
6282 |
- 0xe2, 0xd5, 0xe5, 0xe6, 0xca, 0xc9, 0xc9, 0x0b, 0xac, 0x6c, 0xea, 0x05, 0x1d, 0xf1, 0x50, 0x32, |
|
6283 |
- 0x32, 0xa6, 0xf6, 0x2d, 0x1d, 0xdb, 0x59, 0x1f, 0xbd, 0x00, 0x70, 0x59, 0x38, 0x70, 0xf4, 0x95, |
|
6284 |
- 0xb5, 0x6f, 0xeb, 0xdd, 0x7d, 0x7a, 0xf3, 0xee, 0xba, 0x47, 0xc7, 0x26, 0x8b, 0xac, 0x5d, 0x5d, |
|
6285 |
- 0x6e, 0x96, 0x67, 0x5d, 0x5c, 0x76, 0x59, 0x18, 0x37, 0x51, 0x07, 0xac, 0x11, 0x25, 0xbe, 0x1c, |
|
6286 |
- 0x39, 0x23, 0xea, 0x9c, 0xdb, 0xd5, 0xeb, 0xd3, 0xc2, 0x53, 0x0d, 0x33, 0x1e, 0xd2, 0x24, 0xa5, |
|
6287 |
- 0x60, 0xb5, 0xd4, 0xd0, 0x5e, 0xd7, 0xb1, 0x8a, 0x3b, 0xe8, 0x23, 0x00, 0x1e, 0x50, 0x36, 0x08, |
|
6288 |
- 0xa5, 0xeb, 0x31, 0x1b, 0xa9, 0x2d, 0xe3, 0xb2, 0xb2, 0x1c, 0x2b, 0x03, 0xba, 0xaf, 0x1e, 0x6d, |
|
6289 |
- 0xe2, 0x0e, 0x38, 0xf3, 0xa7, 0xf6, 0x77, 0xf4, 0x68, 0x49, 0x19, 0x9e, 0x31, 0x7f, 0x8a, 0x36, |
|
6290 |
- 0xc1, 0xd2, 0xba, 0x08, 0xbd, 0x21, 0x23, 0xbe, 0x7d, 0x47, 0xc7, 0x03, 0x94, 0xe9, 0x58, 0x5b, |
|
6291 |
- 0xd4, 0x39, 0xc4, 0xd1, 0x08, 0xed, 0xbb, 0xd7, 0x9f, 0x83, 0x59, 0xec, 0xfc, 0x1c, 0x0c, 0x07, |
|
6292 |
- 0xfd, 0x02, 0x20, 0x10, 0xde, 0xc4, 0xf3, 0xe9, 0x90, 0x86, 0xf6, 0x3d, 0xbd, 0xe9, 0x7a, 0xe6, |
|
6293 |
- 0x6b, 0x3d, 0x43, 0xe1, 0x14, 0xa3, 0xf6, 0x39, 0x58, 0xa9, 0xdb, 0xa6, 0x6e, 0xc9, 0x39, 0x9d, |
|
6294 |
- 0x9a, 0x0b, 0xac, 0x9a, 0x2a, 0x24, 0x13, 0xe2, 0x47, 0x71, 0x25, 0x5c, 0xc6, 0x71, 0xe7, 0x8b, |
|
6295 |
- 0xe5, 0xc7, 0xb9, 0xda, 0x0e, 0x58, 0x29, 0xd5, 0xa1, 0x8f, 0x61, 0x4d, 0xd0, 0xa1, 0x17, 0x4a, |
|
6296 |
- 0x31, 0x1d, 0x90, 0x48, 0x8e, 0xec, 0x5f, 0x69, 0x42, 0x25, 0x31, 0xb6, 0x23, 0x39, 0xaa, 0x0d, |
|
6297 |
- 0x60, 0x7e, 0x78, 0xa8, 0x01, 0x96, 0x12, 0x45, 0x48, 0xc5, 0x84, 0x0a, 0x95, 0x6d, 0x55, 0xcc, |
|
6298 |
- 0xd3, 0x26, 0x25, 0xde, 0x90, 0x12, 0xe1, 0x8c, 0xf4, 0xdb, 0x51, 0xc6, 0xa6, 0xa7, 0x1e, 0x83, |
|
6299 |
- 0xe4, 0x86, 0x98, 0xc7, 0xc0, 0x74, 0x9b, 0xff, 0xce, 0x41, 0x25, 0x5d, 0x34, 0xa0, 0xdd, 0x38, |
|
6300 |
- 0xd9, 0xeb, 0x2d, 0xdd, 0xda, 0xd9, 0xbe, 0xa9, 0xc8, 0xd0, 0xa9, 0xd5, 0x8f, 0x94, 0xb3, 0x43, |
|
6301 |
- 0x55, 0xdf, 0x6b, 0x32, 0xfa, 0x29, 0xac, 0x06, 0x5c, 0xc8, 0xe4, 0x09, 0xcb, 0x0e, 0x30, 0x17, |
|
6302 |
- 0x49, 0x2a, 0x8a, 0xc1, 0xcd, 0x11, 0xdc, 0x5a, 0xf4, 0x86, 0x1e, 0xc2, 0xca, 0xf3, 0xfd, 0x7e, |
|
6303 |
- 0x75, 0xa9, 0x76, 0xff, 0xe5, 0x45, 0xe3, 0xbb, 0x8b, 0x83, 0xcf, 0x3d, 0x21, 0x23, 0xe2, 0xef, |
|
6304 |
- 0xf7, 0xd1, 0x0f, 0x61, 0xb5, 0x7b, 0x74, 0x8c, 0x71, 0x35, 0x57, 0xdb, 0x7c, 0x79, 0xd1, 0xb8, |
|
6305 |
- 0xbf, 0x88, 0x53, 0x43, 0x3c, 0x62, 0x2e, 0xe6, 0xa7, 0xb3, 0x5a, 0xf7, 0x3f, 0xcb, 0x60, 0x99, |
|
6306 |
- 0x97, 0xfd, 0x43, 0x7f, 0x87, 0xd6, 0xe2, 0x54, 0x9e, 0x5c, 0xd9, 0xe5, 0x1b, 0x33, 0x7a, 0x25, |
|
6307 |
- 0x26, 0x98, 0x33, 0x7e, 0x00, 0x15, 0x2f, 0x98, 0x7c, 0x36, 0xa0, 0x8c, 0x9c, 0xfa, 0xa6, 0xec, |
|
6308 |
- 0x2d, 0x61, 0x4b, 0xd9, 0x7a, 0xb1, 0x49, 0xbd, 0x17, 0x1e, 0x93, 0x54, 0x30, 0x53, 0xd0, 0x96, |
|
6309 |
- 0xf0, 0xac, 0x8f, 0xbe, 0x84, 0xbc, 0x17, 0x90, 0xb1, 0x29, 0x43, 0x32, 0x77, 0xb0, 0xdf, 0x6f, |
|
6310 |
- 0x1f, 0x1a, 0x0d, 0x76, 0x4a, 0x57, 0x97, 0x9b, 0x79, 0x65, 0xc0, 0x9a, 0x86, 0xea, 0x49, 0x25, |
|
6311 |
- 0xa0, 0x66, 0xd2, 0x6f, 0x7f, 0x09, 0xa7, 0x2c, 0x4a, 0x47, 0x1e, 0x1b, 0x0a, 0x1a, 0x86, 0x3a, |
|
6312 |
- 0x0b, 0x94, 0x70, 0xd2, 0x45, 0x35, 0x28, 0x9a, 0x7a, 0x42, 0x17, 0x10, 0x65, 0x95, 0xab, 0x8d, |
|
6313 |
- 0xa1, 0xb3, 0x06, 0x56, 0x1c, 0x8d, 0xc1, 0x99, 0xe0, 0xe3, 0xe6, 0x7f, 0xf3, 0x60, 0xed, 0xfa, |
|
6314 |
- 0x51, 0x28, 0x4d, 0x1a, 0xfc, 0x60, 0xc1, 0x7f, 0x01, 0xeb, 0x44, 0x7f, 0xaf, 0x08, 0x53, 0x39, |
|
6315 |
- 0x45, 0x97, 0x69, 0xe6, 0x00, 0x1e, 0x66, 0xba, 0x9b, 0x81, 0xe3, 0x92, 0xae, 0x53, 0x50, 0x3e, |
|
6316 |
- 0xed, 0x1c, 0xae, 0x92, 0x37, 0x46, 0xd0, 0x31, 0xac, 0x71, 0xe1, 0x8c, 0x68, 0x28, 0xe3, 0x4c, |
|
6317 |
- 0x64, 0xbe, 0x23, 0x99, 0x1f, 0xd5, 0x67, 0x69, 0xa0, 0x79, 0x86, 0xe3, 0xd5, 0x2e, 0xfa, 0x40, |
|
6318 |
- 0x8f, 0x21, 0x2f, 0xc8, 0x59, 0x52, 0x72, 0x66, 0x5e, 0x12, 0x4c, 0xce, 0xe4, 0x82, 0x0b, 0xcd, |
|
6319 |
- 0x40, 0xbf, 0x01, 0x70, 0xbd, 0x30, 0x20, 0xd2, 0x19, 0x51, 0x61, 0x0e, 0x3b, 0x73, 0x8b, 0xdd, |
|
6320 |
- 0x19, 0x6a, 0xc1, 0x4b, 0x8a, 0x8d, 0x0e, 0xa0, 0xec, 0x90, 0x44, 0xae, 0x85, 0xeb, 0xff, 0x68, |
|
6321 |
- 0xbb, 0x6d, 0xe3, 0xa2, 0xaa, 0x5c, 0x5c, 0x5d, 0x6e, 0x96, 0x12, 0x0b, 0x2e, 0x39, 0xc4, 0xc8, |
|
6322 |
- 0xf7, 0x00, 0xd6, 0xd4, 0xdf, 0x6d, 0xe0, 0xd2, 0x33, 0x12, 0xf9, 0x32, 0x96, 0xc9, 0x35, 0x69, |
|
6323 |
- 0x45, 0x7d, 0x04, 0xba, 0x06, 0x67, 0xd6, 0x55, 0x91, 0x29, 0x1b, 0xfa, 0x1d, 0xac, 0x53, 0xe6, |
|
6324 |
- 0x88, 0xa9, 0x16, 0x6b, 0xb2, 0xc2, 0xd2, 0xf5, 0x9b, 0xed, 0xcd, 0xc0, 0x0b, 0x9b, 0xad, 0xd2, |
|
6325 |
- 0x37, 0xec, 0xcd, 0x7f, 0xe6, 0x00, 0xe2, 0x4c, 0xfd, 0x61, 0x05, 0x88, 0x20, 0xef, 0x12, 0x49, |
|
6326 |
- 0xb4, 0xe6, 0x2a, 0x58, 0xb7, 0xd1, 0x17, 0x00, 0x92, 0x8e, 0x03, 0x9f, 0x48, 0x8f, 0x0d, 0x8d, |
|
6327 |
- 0x6c, 0xde, 0xf5, 0x1c, 0xa4, 0xd0, 0x68, 0x07, 0x0a, 0xe6, 0x63, 0x90, 0xbf, 0x91, 0x67, 0x90, |
|
6328 |
- 0xcd, 0xbf, 0xe6, 0x00, 0xe2, 0x6d, 0x7e, 0xab, 0xf7, 0xd6, 0xb1, 0x5f, 0xbd, 0xae, 0x2f, 0xfd, |
|
6329 |
- 0xe3, 0x75, 0x7d, 0xe9, 0x8f, 0x57, 0xf5, 0xdc, 0xab, 0xab, 0x7a, 0xee, 0x6f, 0x57, 0xf5, 0xdc, |
|
6330 |
- 0xbf, 0xae, 0xea, 0xb9, 0xd3, 0x82, 0xae, 0xfb, 0x7e, 0xf2, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, |
|
6331 |
- 0xc1, 0xd8, 0x19, 0x9e, 0x30, 0x13, 0x00, 0x00, |
|
6213 |
+ // 2000 bytes of a gzipped FileDescriptorProto |
|
6214 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4f, 0x6f, 0x1b, 0xb9, |
|
6215 |
+ 0x15, 0xb7, 0x6c, 0x59, 0x7f, 0xde, 0xc8, 0x89, 0xc2, 0x4d, 0xb2, 0x13, 0xa5, 0x6b, 0x29, 0xda, |
|
6216 |
+ 0x6c, 0xea, 0xdd, 0x45, 0x65, 0xd4, 0x2d, 0xb6, 0xd9, 0x4d, 0xb7, 0xad, 0x64, 0xa9, 0x8e, 0x9b, |
|
6217 |
+ 0xc6, 0x11, 0x68, 0x6f, 0xda, 0x00, 0x05, 0x04, 0x7a, 0x86, 0x96, 0x08, 0x8f, 0x86, 0x53, 0x0e, |
|
6218 |
+ 0xc7, 0x0b, 0xdd, 0x7a, 0x5c, 0xa4, 0x9f, 0x21, 0xe8, 0xa1, 0xe8, 0xbd, 0x1f, 0xa0, 0x1f, 0x20, |
|
6219 |
+ 0xc7, 0x1e, 0xdb, 0x8b, 0xd1, 0xd5, 0x57, 0xe8, 0xad, 0x97, 0x16, 0xe4, 0x70, 0x46, 0xa3, 0x64, |
|
6220 |
+ 0x1c, 0x07, 0x68, 0x0e, 0x7b, 0x23, 0xdf, 0xfc, 0x7e, 0x6f, 0x1e, 0xc9, 0xdf, 0xe3, 0x7b, 0x84, |
|
6221 |
+ 0x4f, 0xc6, 0x4c, 0x4e, 0xa2, 0xe3, 0x8e, 0xc3, 0xa7, 0xdb, 0x2e, 0x77, 0x4e, 0xa9, 0xd8, 0x0e, |
|
6222 |
+ 0xbf, 0x26, 0x62, 0x7a, 0xca, 0xe4, 0x36, 0x09, 0xd8, 0x76, 0x18, 0x50, 0x27, 0xec, 0x04, 0x82, |
|
6223 |
+ 0x4b, 0x8e, 0x50, 0x0c, 0xe8, 0x24, 0x80, 0xce, 0xd9, 0x0f, 0x1b, 0x97, 0xf1, 0xe5, 0x2c, 0xa0, |
|
6224 |
+ 0x86, 0xdf, 0xb8, 0x3e, 0xe6, 0x63, 0xae, 0x87, 0xdb, 0x6a, 0x64, 0xac, 0x9b, 0x63, 0xce, 0xc7, |
|
6225 |
+ 0x1e, 0xdd, 0xd6, 0xb3, 0xe3, 0xe8, 0x64, 0xdb, 0x8d, 0x04, 0x91, 0x8c, 0xfb, 0xe6, 0xfb, 0xad, |
|
6226 |
+ 0x57, 0xbf, 0x13, 0x7f, 0x16, 0x7f, 0x6a, 0xbf, 0x28, 0x42, 0xe5, 0x80, 0xbb, 0xf4, 0x30, 0xa0, |
|
6227 |
+ 0x0e, 0xda, 0x03, 0x8b, 0xf8, 0x3e, 0x97, 0x9a, 0x1b, 0xda, 0x85, 0x56, 0x61, 0xcb, 0xda, 0x69, |
|
6228 |
+ 0x76, 0x5e, 0x8f, 0xb9, 0xd3, 0x5d, 0xc0, 0x7a, 0xc5, 0x97, 0xe7, 0xcd, 0x15, 0x9c, 0x65, 0xa2, |
|
6229 |
+ 0x9f, 0x43, 0xcd, 0xa5, 0x21, 0x13, 0xd4, 0x1d, 0x09, 0xee, 0x51, 0x7b, 0xb5, 0x55, 0xd8, 0xba, |
|
6230 |
+ 0xb2, 0xf3, 0xbd, 0x3c, 0x4f, 0xea, 0xe7, 0x98, 0x7b, 0x14, 0x5b, 0x86, 0xa1, 0x26, 0x68, 0x0f, |
|
6231 |
+ 0x60, 0x4a, 0xa7, 0xc7, 0x54, 0x84, 0x13, 0x16, 0xd8, 0x6b, 0x9a, 0xfe, 0xfd, 0x8b, 0xe8, 0x2a, |
|
6232 |
+ 0xf6, 0xce, 0xe3, 0x14, 0x8e, 0x33, 0x54, 0xf4, 0x18, 0x6a, 0xe4, 0x8c, 0x30, 0x8f, 0x1c, 0x33, |
|
6233 |
+ 0x8f, 0xc9, 0x99, 0x5d, 0xd4, 0xae, 0x3e, 0x7e, 0xa3, 0xab, 0x6e, 0x86, 0x80, 0x97, 0xe8, 0x6d, |
|
6234 |
+ 0x17, 0x60, 0xf1, 0x23, 0x74, 0x0f, 0xca, 0xc3, 0xc1, 0x41, 0x7f, 0xff, 0x60, 0xaf, 0xbe, 0xd2, |
|
6235 |
+ 0xb8, 0xf5, 0xfc, 0x45, 0xeb, 0x86, 0xf2, 0xb1, 0x00, 0x0c, 0xa9, 0xef, 0x32, 0x7f, 0x8c, 0xb6, |
|
6236 |
+ 0xa0, 0xd2, 0xdd, 0xdd, 0x1d, 0x0c, 0x8f, 0x06, 0xfd, 0x7a, 0xa1, 0xd1, 0x78, 0xfe, 0xa2, 0x75, |
|
6237 |
+ 0x73, 0x19, 0xd8, 0x75, 0x1c, 0x1a, 0x48, 0xea, 0x36, 0x8a, 0xdf, 0xfc, 0x79, 0x73, 0xa5, 0xfd, |
|
6238 |
+ 0x4d, 0x01, 0x6a, 0xd9, 0x20, 0xd0, 0x3d, 0x28, 0x75, 0x77, 0x8f, 0xf6, 0x9f, 0x0e, 0xea, 0x2b, |
|
6239 |
+ 0x0b, 0x7a, 0x16, 0xd1, 0x75, 0x24, 0x3b, 0xa3, 0xe8, 0x2e, 0xac, 0x0f, 0xbb, 0x5f, 0x1d, 0x0e, |
|
6240 |
+ 0xea, 0x85, 0x45, 0x38, 0x59, 0xd8, 0x90, 0x44, 0xa1, 0x46, 0xf5, 0x71, 0x77, 0xff, 0xa0, 0xbe, |
|
6241 |
+ 0x9a, 0x8f, 0xea, 0x0b, 0xc2, 0x7c, 0x13, 0xca, 0x9f, 0x8a, 0x60, 0x1d, 0x52, 0x71, 0xc6, 0x9c, |
|
6242 |
+ 0x77, 0x2c, 0x91, 0xcf, 0xa0, 0x28, 0x49, 0x78, 0xaa, 0xa5, 0x61, 0xe5, 0x4b, 0xe3, 0x88, 0x84, |
|
6243 |
+ 0xa7, 0xea, 0xa7, 0x86, 0xae, 0xf1, 0x4a, 0x19, 0x82, 0x06, 0x1e, 0x73, 0x88, 0xa4, 0xae, 0x56, |
|
6244 |
+ 0x86, 0xb5, 0xf3, 0x51, 0x1e, 0x1b, 0xa7, 0x28, 0x13, 0xff, 0xc3, 0x15, 0x9c, 0xa1, 0xa2, 0x07, |
|
6245 |
+ 0x50, 0x1a, 0x7b, 0xfc, 0x98, 0x78, 0x5a, 0x13, 0xd6, 0xce, 0x9d, 0x3c, 0x27, 0x7b, 0x1a, 0xb1, |
|
6246 |
+ 0x70, 0x60, 0x28, 0xe8, 0x3e, 0x94, 0xa2, 0xc0, 0x25, 0x92, 0xda, 0x25, 0x4d, 0x6e, 0xe5, 0x91, |
|
6247 |
+ 0xbf, 0xd2, 0x88, 0x5d, 0xee, 0x9f, 0xb0, 0x31, 0x36, 0x78, 0xf4, 0x08, 0x2a, 0x3e, 0x95, 0x5f, |
|
6248 |
+ 0x73, 0x71, 0x1a, 0xda, 0xe5, 0xd6, 0xda, 0x96, 0xb5, 0xf3, 0x69, 0xae, 0x18, 0x63, 0x4c, 0x57, |
|
6249 |
+ 0x4a, 0xe2, 0x4c, 0xa6, 0xd4, 0x97, 0xb1, 0x9b, 0xde, 0xaa, 0x5d, 0xc0, 0xa9, 0x03, 0xf4, 0x53, |
|
6250 |
+ 0xa8, 0x50, 0xdf, 0x0d, 0x38, 0xf3, 0xa5, 0x5d, 0xb9, 0x38, 0x90, 0x81, 0xc1, 0xa8, 0xcd, 0xc4, |
|
6251 |
+ 0x29, 0x43, 0xb1, 0x05, 0xf7, 0xbc, 0x63, 0xe2, 0x9c, 0xda, 0xd5, 0xb7, 0x5c, 0x46, 0xca, 0xe8, |
|
6252 |
+ 0x95, 0xa0, 0x38, 0xe5, 0x2e, 0x6d, 0x6f, 0xc3, 0xb5, 0xd7, 0xb6, 0x1a, 0x35, 0xa0, 0x62, 0xb6, |
|
6253 |
+ 0x3a, 0xd6, 0x48, 0x11, 0xa7, 0xf3, 0xf6, 0x55, 0xd8, 0x58, 0xda, 0xd6, 0xf6, 0x5f, 0xd7, 0xa1, |
|
6254 |
+ 0x92, 0x9c, 0x35, 0xea, 0x42, 0xd5, 0xe1, 0xbe, 0x24, 0xcc, 0xa7, 0xc2, 0xc8, 0x2b, 0xf7, 0x64, |
|
6255 |
+ 0x76, 0x13, 0x90, 0x62, 0x3d, 0x5c, 0xc1, 0x0b, 0x16, 0xfa, 0x25, 0x54, 0x05, 0x0d, 0x79, 0x24, |
|
6256 |
+ 0x1c, 0x1a, 0x1a, 0x7d, 0x6d, 0xe5, 0x2b, 0x24, 0x06, 0x61, 0xfa, 0xfb, 0x88, 0x09, 0xaa, 0x76, |
|
6257 |
+ 0x39, 0xc4, 0x0b, 0x2a, 0x7a, 0x00, 0x65, 0x41, 0x43, 0x49, 0x84, 0x7c, 0x93, 0x44, 0x70, 0x0c, |
|
6258 |
+ 0x19, 0x72, 0x8f, 0x39, 0x33, 0x9c, 0x30, 0xd0, 0x03, 0xa8, 0x06, 0x1e, 0x71, 0xb4, 0x57, 0x7b, |
|
6259 |
+ 0x5d, 0xd3, 0x3f, 0xc8, 0xa3, 0x0f, 0x13, 0x10, 0x5e, 0xe0, 0xd1, 0xe7, 0x00, 0x1e, 0x1f, 0x8f, |
|
6260 |
+ 0x5c, 0xc1, 0xce, 0xa8, 0x30, 0x12, 0x6b, 0xe4, 0xb1, 0xfb, 0x1a, 0x81, 0xab, 0x1e, 0x1f, 0xc7, |
|
6261 |
+ 0x43, 0xb4, 0xf7, 0x7f, 0xe9, 0x2b, 0xa3, 0xad, 0x47, 0x00, 0x24, 0xfd, 0x6a, 0xd4, 0xf5, 0xf1, |
|
6262 |
+ 0x5b, 0xb9, 0x32, 0x27, 0x92, 0xa1, 0xa3, 0x3b, 0x50, 0x3b, 0xe1, 0xc2, 0xa1, 0x23, 0x93, 0x35, |
|
6263 |
+ 0x55, 0xad, 0x09, 0x4b, 0xdb, 0x62, 0x7d, 0xa1, 0x1e, 0x94, 0xc7, 0xd4, 0xa7, 0x82, 0x39, 0x36, |
|
6264 |
+ 0xe8, 0x9f, 0xdd, 0xcb, 0x4d, 0xc8, 0x18, 0x82, 0x23, 0x5f, 0xb2, 0x29, 0x35, 0x7f, 0x4a, 0x88, |
|
6265 |
+ 0xe8, 0x77, 0xf0, 0x5e, 0x72, 0x7c, 0x23, 0x41, 0x4f, 0xa8, 0xa0, 0xbe, 0xd2, 0x80, 0xa5, 0xf7, |
|
6266 |
+ 0xe1, 0xa3, 0x37, 0x6b, 0xc0, 0xa0, 0xcd, 0x65, 0x83, 0xc4, 0xab, 0x1f, 0xc2, 0x5e, 0x15, 0xca, |
|
6267 |
+ 0x22, 0xfe, 0x6f, 0xfb, 0x8f, 0x05, 0xa5, 0xfa, 0x57, 0x10, 0x68, 0x1b, 0xac, 0xf4, 0xf7, 0xcc, |
|
6268 |
+ 0xd5, 0xea, 0xad, 0xf6, 0xae, 0xcc, 0xcf, 0x9b, 0x90, 0x60, 0xf7, 0xfb, 0xea, 0x0e, 0x32, 0x63, |
|
6269 |
+ 0x17, 0x0d, 0x60, 0x23, 0x25, 0xa8, 0x32, 0x6f, 0x0a, 0x65, 0xeb, 0x4d, 0x91, 0x1e, 0xcd, 0x02, |
|
6270 |
+ 0x8a, 0x6b, 0x22, 0x33, 0x6b, 0xff, 0x16, 0xd0, 0xeb, 0xfb, 0x82, 0x10, 0x14, 0x4f, 0x99, 0x6f, |
|
6271 |
+ 0xc2, 0xc0, 0x7a, 0x8c, 0x3a, 0x50, 0x0e, 0xc8, 0xcc, 0xe3, 0xc4, 0x35, 0x89, 0x71, 0xbd, 0x13, |
|
6272 |
+ 0xf7, 0x06, 0x9d, 0xa4, 0x37, 0xe8, 0x74, 0xfd, 0x19, 0x4e, 0x40, 0xed, 0x47, 0x70, 0x23, 0xf7, |
|
6273 |
+ 0x78, 0xd1, 0x0e, 0xd4, 0xd2, 0x84, 0x5b, 0xac, 0xf5, 0xea, 0xfc, 0xbc, 0x69, 0xa5, 0x99, 0xb9, |
|
6274 |
+ 0xdf, 0xc7, 0x56, 0x0a, 0xda, 0x77, 0xdb, 0x7f, 0xab, 0xc2, 0xc6, 0x52, 0xda, 0xa2, 0xeb, 0xb0, |
|
6275 |
+ 0xce, 0xa6, 0x64, 0x4c, 0x4d, 0x8c, 0xf1, 0x04, 0x0d, 0xa0, 0xe4, 0x91, 0x63, 0xea, 0xa9, 0xe4, |
|
6276 |
+ 0x55, 0x07, 0xf7, 0x83, 0x4b, 0xf3, 0xbf, 0xf3, 0x6b, 0x8d, 0x1f, 0xf8, 0x52, 0xcc, 0xb0, 0x21, |
|
6277 |
+ 0x23, 0x1b, 0xca, 0x0e, 0x9f, 0x4e, 0x89, 0xaf, 0xca, 0xc4, 0xda, 0x56, 0x15, 0x27, 0x53, 0xb5, |
|
6278 |
+ 0x33, 0x44, 0x8c, 0x43, 0xbb, 0xa8, 0xcd, 0x7a, 0x8c, 0xea, 0xb0, 0x46, 0xfd, 0x33, 0x7b, 0x5d, |
|
6279 |
+ 0x9b, 0xd4, 0x50, 0x59, 0x5c, 0x16, 0x67, 0x5f, 0x15, 0xab, 0xa1, 0xe2, 0x45, 0x21, 0x15, 0x76, |
|
6280 |
+ 0x39, 0xde, 0x51, 0x35, 0x46, 0x3f, 0x81, 0xd2, 0x94, 0x47, 0xbe, 0x0c, 0xed, 0x8a, 0x0e, 0xf6, |
|
6281 |
+ 0x56, 0x5e, 0xb0, 0x8f, 0x15, 0xc2, 0x28, 0xcb, 0xc0, 0xd1, 0x00, 0xae, 0x85, 0x92, 0x07, 0xa3, |
|
6282 |
+ 0xb1, 0x20, 0x0e, 0x1d, 0x05, 0x54, 0x30, 0xee, 0x9a, 0x6b, 0xf8, 0xd6, 0x6b, 0x87, 0xd2, 0x37, |
|
6283 |
+ 0x0d, 0x1d, 0xbe, 0xaa, 0x38, 0x7b, 0x8a, 0x32, 0xd4, 0x0c, 0x34, 0x84, 0x5a, 0x10, 0x79, 0xde, |
|
6284 |
+ 0x88, 0x07, 0x71, 0x45, 0x8e, 0x73, 0xe7, 0x2d, 0xb6, 0x6c, 0x18, 0x79, 0xde, 0x93, 0x98, 0x84, |
|
6285 |
+ 0xad, 0x60, 0x31, 0x41, 0x37, 0xa1, 0x34, 0x16, 0x3c, 0x0a, 0xe2, 0xbc, 0xa9, 0x62, 0x33, 0x43, |
|
6286 |
+ 0x5f, 0x42, 0x39, 0xa4, 0x8e, 0xa0, 0x32, 0xb4, 0x6b, 0x7a, 0xa9, 0x1f, 0xe6, 0xfd, 0xe4, 0x50, |
|
6287 |
+ 0x43, 0xd2, 0x9c, 0xc0, 0x09, 0x07, 0xdd, 0x82, 0x35, 0x29, 0x67, 0xf6, 0x46, 0xab, 0xb0, 0x55, |
|
6288 |
+ 0xe9, 0x95, 0xe7, 0xe7, 0xcd, 0xb5, 0xa3, 0xa3, 0x67, 0x58, 0xd9, 0x54, 0xb5, 0x98, 0xf0, 0x50, |
|
6289 |
+ 0xfa, 0x64, 0x4a, 0xed, 0x2b, 0x7a, 0x6f, 0xd3, 0x39, 0x7a, 0x06, 0xe0, 0xfa, 0xe1, 0xc8, 0xd1, |
|
6290 |
+ 0xd7, 0x93, 0x7d, 0x55, 0xaf, 0xee, 0xd3, 0xcb, 0x57, 0xd7, 0x3f, 0x38, 0x34, 0x15, 0x73, 0x63, |
|
6291 |
+ 0x7e, 0xde, 0xac, 0xa6, 0x53, 0x5c, 0x75, 0xfd, 0x30, 0x1e, 0xa2, 0x1e, 0x58, 0x13, 0x4a, 0x3c, |
|
6292 |
+ 0x39, 0x71, 0x26, 0xd4, 0x39, 0xb5, 0xeb, 0x17, 0x97, 0xc0, 0x87, 0x1a, 0x66, 0x3c, 0x64, 0x49, |
|
6293 |
+ 0x4a, 0xc1, 0x2a, 0xd4, 0xd0, 0xbe, 0xa6, 0xf7, 0x2a, 0x9e, 0xa0, 0x0f, 0x00, 0x78, 0x40, 0xfd, |
|
6294 |
+ 0x51, 0x28, 0x5d, 0xe6, 0xdb, 0x48, 0x2d, 0x19, 0x57, 0x95, 0xe5, 0x50, 0x19, 0xd0, 0x6d, 0x55, |
|
6295 |
+ 0xa0, 0x88, 0x3b, 0xe2, 0xbe, 0x37, 0xb3, 0xdf, 0xd3, 0x5f, 0x2b, 0xca, 0xf0, 0xc4, 0xf7, 0x66, |
|
6296 |
+ 0xa8, 0x09, 0x96, 0xd6, 0x45, 0xc8, 0xc6, 0x3e, 0xf1, 0xec, 0xeb, 0x7a, 0x3f, 0x40, 0x99, 0x0e, |
|
6297 |
+ 0xb5, 0x45, 0x9d, 0x43, 0xbc, 0x1b, 0xa1, 0x7d, 0xe3, 0xe2, 0x73, 0x30, 0xc1, 0x2e, 0xce, 0xc1, |
|
6298 |
+ 0x70, 0xd0, 0xcf, 0x00, 0x02, 0xc1, 0xce, 0x98, 0x47, 0xc7, 0x34, 0xb4, 0x6f, 0xea, 0x45, 0x6f, |
|
6299 |
+ 0xe6, 0x56, 0xa6, 0x14, 0x85, 0x33, 0x0c, 0xd4, 0x04, 0x60, 0x3e, 0x93, 0xa3, 0x33, 0xe2, 0x45, |
|
6300 |
+ 0xd4, 0x7e, 0x5f, 0x45, 0xaf, 0xca, 0xaf, 0xb2, 0x3d, 0x55, 0xa6, 0xc6, 0xe7, 0x60, 0x65, 0xd2, |
|
6301 |
+ 0x51, 0xa5, 0xd1, 0x29, 0x9d, 0x99, 0x0c, 0x57, 0x43, 0xb5, 0x67, 0x31, 0x79, 0x35, 0xce, 0x7a, |
|
6302 |
+ 0x3d, 0xf9, 0x62, 0xf5, 0x7e, 0xa1, 0xb1, 0x03, 0x56, 0x46, 0x96, 0xe8, 0x43, 0x75, 0x3d, 0x8e, |
|
6303 |
+ 0x59, 0x28, 0xc5, 0x6c, 0x44, 0x22, 0x39, 0xb1, 0x7f, 0xa1, 0x09, 0xb5, 0xc4, 0xd8, 0x8d, 0xe4, |
|
6304 |
+ 0xa4, 0x31, 0x82, 0xc5, 0xe9, 0xa2, 0x16, 0x58, 0x4a, 0x35, 0x21, 0x15, 0x67, 0x54, 0xa8, 0xd6, |
|
6305 |
+ 0x43, 0x1d, 0x4a, 0xd6, 0xa4, 0xd4, 0x1d, 0x52, 0x22, 0x9c, 0x89, 0xbe, 0x5c, 0xaa, 0xd8, 0xcc, |
|
6306 |
+ 0xd4, 0x6d, 0x91, 0xa4, 0x90, 0xb9, 0x2d, 0xcc, 0x54, 0x35, 0x3a, 0x6a, 0x71, 0xed, 0x7f, 0x17, |
|
6307 |
+ 0xa0, 0x96, 0xed, 0xa4, 0xd0, 0x6e, 0xdc, 0x01, 0xe9, 0xa5, 0x5d, 0xd9, 0xd9, 0xbe, 0xac, 0xf3, |
|
6308 |
+ 0xd2, 0x37, 0xb8, 0x17, 0x29, 0xa7, 0x8f, 0xd5, 0xa3, 0x47, 0x93, 0xd1, 0x8f, 0x61, 0x3d, 0xe0, |
|
6309 |
+ 0x42, 0x26, 0x77, 0x5d, 0xfe, 0x49, 0x70, 0x91, 0xd4, 0xe7, 0x18, 0xdc, 0x9e, 0xc0, 0x95, 0x65, |
|
6310 |
+ 0x6f, 0xe8, 0x2e, 0xac, 0x3d, 0xdd, 0x1f, 0xd6, 0x57, 0x1a, 0xb7, 0x9f, 0xbf, 0x68, 0xbd, 0xbf, |
|
6311 |
+ 0xfc, 0xf1, 0x29, 0x13, 0x32, 0x22, 0xde, 0xfe, 0x10, 0x7d, 0x02, 0xeb, 0xfd, 0x83, 0x43, 0x8c, |
|
6312 |
+ 0xeb, 0x85, 0x46, 0xf3, 0xf9, 0x8b, 0xd6, 0xed, 0x65, 0x9c, 0xfa, 0xc4, 0x23, 0xdf, 0xc5, 0xfc, |
|
6313 |
+ 0x38, 0x7d, 0x00, 0xfc, 0x67, 0x15, 0x2c, 0x53, 0x02, 0xde, 0xf5, 0x1b, 0x71, 0x23, 0xee, 0x6f, |
|
6314 |
+ 0x92, 0xdc, 0x5e, 0xbd, 0xb4, 0xcd, 0xa9, 0xc5, 0x04, 0x73, 0xd6, 0x77, 0xa0, 0xc6, 0x82, 0xb3, |
|
6315 |
+ 0xcf, 0x46, 0xd4, 0x27, 0xc7, 0x9e, 0x79, 0x0b, 0x54, 0xb0, 0xa5, 0x6c, 0x83, 0xd8, 0xa4, 0x2e, |
|
6316 |
+ 0x16, 0xe6, 0x4b, 0x2a, 0x7c, 0xd3, 0xe5, 0x57, 0x70, 0x3a, 0x47, 0x5f, 0x42, 0x91, 0x05, 0x64, |
|
6317 |
+ 0x6a, 0x7a, 0xb3, 0xdc, 0x15, 0xec, 0x0f, 0xbb, 0x8f, 0x8d, 0x16, 0x7b, 0x95, 0xf9, 0x79, 0xb3, |
|
6318 |
+ 0xa8, 0x0c, 0x58, 0xd3, 0xd0, 0x66, 0xd2, 0x1e, 0xa9, 0x3f, 0xe9, 0x22, 0x51, 0xc1, 0x19, 0x8b, |
|
6319 |
+ 0xd2, 0x13, 0xf3, 0xc7, 0x82, 0x86, 0xa1, 0x2e, 0x17, 0x15, 0x9c, 0x4c, 0x51, 0x03, 0xca, 0xa6, |
|
6320 |
+ 0xc9, 0xd2, 0x5d, 0x55, 0x55, 0x35, 0x30, 0xc6, 0xd0, 0xdb, 0x00, 0x2b, 0xde, 0x8d, 0xd1, 0x89, |
|
6321 |
+ 0xe0, 0xd3, 0xf6, 0x7f, 0x8b, 0x60, 0xed, 0x7a, 0x51, 0x28, 0x4d, 0xbd, 0x7c, 0x67, 0x9b, 0xff, |
|
6322 |
+ 0x0c, 0xae, 0x11, 0xfd, 0xe6, 0x24, 0xbe, 0x2a, 0x3e, 0xba, 0x77, 0x35, 0x07, 0x70, 0x37, 0xd7, |
|
6323 |
+ 0x5d, 0x0a, 0x8e, 0xfb, 0xdc, 0x5e, 0x49, 0xf9, 0xb4, 0x0b, 0xb8, 0x4e, 0x5e, 0xf9, 0x82, 0x0e, |
|
6324 |
+ 0x61, 0x83, 0x0b, 0x67, 0x42, 0x43, 0x19, 0x97, 0x2c, 0xf3, 0x46, 0xcb, 0x7d, 0xbd, 0x3f, 0xc9, |
|
6325 |
+ 0x02, 0xcd, 0x7d, 0x1d, 0x47, 0xbb, 0xec, 0x03, 0xdd, 0x87, 0xa2, 0x20, 0x27, 0x49, 0x1f, 0x9e, |
|
6326 |
+ 0x9b, 0x24, 0x98, 0x9c, 0xc8, 0x25, 0x17, 0x9a, 0x81, 0x7e, 0x05, 0xe0, 0xb2, 0x30, 0x20, 0xd2, |
|
6327 |
+ 0x99, 0x50, 0x61, 0x0e, 0x3b, 0x77, 0x89, 0xfd, 0x14, 0xb5, 0xe4, 0x25, 0xc3, 0x46, 0x8f, 0xa0, |
|
6328 |
+ 0xea, 0x90, 0x44, 0xae, 0xa5, 0x8b, 0x1f, 0xae, 0xbb, 0x5d, 0xe3, 0xa2, 0xae, 0x5c, 0xcc, 0xcf, |
|
6329 |
+ 0x9b, 0x95, 0xc4, 0x82, 0x2b, 0x0e, 0x31, 0xf2, 0x7d, 0x04, 0x1b, 0xea, 0x41, 0x3b, 0x72, 0xe9, |
|
6330 |
+ 0x09, 0x89, 0x3c, 0x19, 0xcb, 0xe4, 0x82, 0xfa, 0xa3, 0x5e, 0x47, 0x7d, 0x83, 0x33, 0x71, 0xd5, |
|
6331 |
+ 0x64, 0xc6, 0x86, 0x7e, 0x03, 0xd7, 0xa8, 0xef, 0x88, 0x99, 0x16, 0x6b, 0x12, 0x61, 0xe5, 0xe2, |
|
6332 |
+ 0xc5, 0x0e, 0x52, 0xf0, 0xd2, 0x62, 0xeb, 0xf4, 0x15, 0x7b, 0xfb, 0x9f, 0x05, 0x80, 0xb8, 0xa4, |
|
6333 |
+ 0xbf, 0x5b, 0x01, 0x22, 0x28, 0xba, 0x44, 0x12, 0xad, 0xb9, 0x1a, 0xd6, 0x63, 0xf4, 0x05, 0x80, |
|
6334 |
+ 0xa4, 0xd3, 0xc0, 0x23, 0x92, 0xf9, 0x63, 0x23, 0x9b, 0x37, 0x5d, 0x07, 0x19, 0x34, 0xda, 0x81, |
|
6335 |
+ 0x92, 0x79, 0x2d, 0x15, 0x2f, 0xe5, 0x19, 0x64, 0xfb, 0x2f, 0x05, 0x80, 0x78, 0x99, 0xdf, 0xe9, |
|
6336 |
+ 0xb5, 0xf5, 0xec, 0x97, 0xdf, 0x6e, 0xae, 0xfc, 0xe3, 0xdb, 0xcd, 0x95, 0x3f, 0xcc, 0x37, 0x0b, |
|
6337 |
+ 0x2f, 0xe7, 0x9b, 0x85, 0xbf, 0xcf, 0x37, 0x0b, 0xff, 0x9a, 0x6f, 0x16, 0x8e, 0x4b, 0xba, 0x41, |
|
6338 |
+ 0xfc, 0xd1, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4f, 0xdf, 0x5d, 0x60, 0x83, 0x14, 0x00, 0x00, |
|
6332 | 6339 |
} |
... | ... |
@@ -2,7 +2,7 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "types.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
6 | 6 |
import "gogoproto/gogo.proto"; |
7 | 7 |
import "google/protobuf/duration.proto"; |
8 | 8 |
import "google/protobuf/any.proto"; |
... | ... |
@@ -128,6 +128,21 @@ message TaskSpec { |
128 | 128 |
// using the same reconciliation-based mechanism that performs rolling |
129 | 129 |
// updates. |
130 | 130 |
uint64 force_update = 9; |
131 |
+ |
|
132 |
+ // ResourceReferences provides a generic way to specify resources that |
|
133 |
+ // are used by this task, and should be sent down to agents along with |
|
134 |
+ // the task. Inside the runtime field there may be more specific |
|
135 |
+ // information about how to use the resource, but ResourceReferences |
|
136 |
+ // establishes the relationship at the store level, and instructs the |
|
137 |
+ // dispatcher to send the related objects. |
|
138 |
+ // |
|
139 |
+ // ResourceReferences is a list of ResourceReferences used by the task. |
|
140 |
+ repeated ResourceReference resource_references = 11 [(gogoproto.nullable) = false]; |
|
141 |
+} |
|
142 |
+ |
|
143 |
+message ResourceReference { |
|
144 |
+ string resource_id = 1; |
|
145 |
+ ResourceType resource_type = 2; |
|
131 | 146 |
} |
132 | 147 |
|
133 | 148 |
message GenericRuntimeSpec { |
... | ... |
@@ -278,6 +293,11 @@ message ContainerSpec { |
278 | 278 |
// task will exit and a new task will be rescheduled elsewhere. A container |
279 | 279 |
// is considered unhealthy after `Retries` number of consecutive failures. |
280 | 280 |
HealthConfig healthcheck = 16; |
281 |
+ |
|
282 |
+ // Run a custom init inside the container, if null, use the daemon's configured settings |
|
283 |
+ oneof init { |
|
284 |
+ bool init_value = 23; |
|
285 |
+ } |
|
281 | 286 |
} |
282 | 287 |
|
283 | 288 |
// EndpointSpec defines the properties that can be configured to |
... | ... |
@@ -1,222 +1,7 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: types.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/types.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 |
-/* |
|
6 |
- Package api is a generated protocol buffer package. |
|
7 |
- |
|
8 |
- It is generated from these files: |
|
9 |
- types.proto |
|
10 |
- specs.proto |
|
11 |
- objects.proto |
|
12 |
- control.proto |
|
13 |
- dispatcher.proto |
|
14 |
- ca.proto |
|
15 |
- snapshot.proto |
|
16 |
- raft.proto |
|
17 |
- health.proto |
|
18 |
- resource.proto |
|
19 |
- logbroker.proto |
|
20 |
- watch.proto |
|
21 |
- |
|
22 |
- It has these top-level messages: |
|
23 |
- Version |
|
24 |
- IndexEntry |
|
25 |
- Annotations |
|
26 |
- NamedGenericResource |
|
27 |
- DiscreteGenericResource |
|
28 |
- GenericResource |
|
29 |
- Resources |
|
30 |
- ResourceRequirements |
|
31 |
- Platform |
|
32 |
- PluginDescription |
|
33 |
- EngineDescription |
|
34 |
- NodeDescription |
|
35 |
- NodeTLSInfo |
|
36 |
- RaftMemberStatus |
|
37 |
- NodeStatus |
|
38 |
- Image |
|
39 |
- Mount |
|
40 |
- RestartPolicy |
|
41 |
- UpdateConfig |
|
42 |
- UpdateStatus |
|
43 |
- ContainerStatus |
|
44 |
- PortStatus |
|
45 |
- TaskStatus |
|
46 |
- NetworkAttachmentConfig |
|
47 |
- IPAMConfig |
|
48 |
- PortConfig |
|
49 |
- Driver |
|
50 |
- IPAMOptions |
|
51 |
- Peer |
|
52 |
- WeightedPeer |
|
53 |
- IssuanceStatus |
|
54 |
- AcceptancePolicy |
|
55 |
- ExternalCA |
|
56 |
- CAConfig |
|
57 |
- OrchestrationConfig |
|
58 |
- TaskDefaults |
|
59 |
- DispatcherConfig |
|
60 |
- RaftConfig |
|
61 |
- EncryptionConfig |
|
62 |
- SpreadOver |
|
63 |
- PlacementPreference |
|
64 |
- Placement |
|
65 |
- JoinTokens |
|
66 |
- RootCA |
|
67 |
- Certificate |
|
68 |
- EncryptionKey |
|
69 |
- ManagerStatus |
|
70 |
- FileTarget |
|
71 |
- SecretReference |
|
72 |
- ConfigReference |
|
73 |
- BlacklistedCertificate |
|
74 |
- HealthConfig |
|
75 |
- MaybeEncryptedRecord |
|
76 |
- RootRotation |
|
77 |
- Privileges |
|
78 |
- NodeSpec |
|
79 |
- ServiceSpec |
|
80 |
- ReplicatedService |
|
81 |
- GlobalService |
|
82 |
- TaskSpec |
|
83 |
- GenericRuntimeSpec |
|
84 |
- NetworkAttachmentSpec |
|
85 |
- ContainerSpec |
|
86 |
- EndpointSpec |
|
87 |
- NetworkSpec |
|
88 |
- ClusterSpec |
|
89 |
- SecretSpec |
|
90 |
- ConfigSpec |
|
91 |
- Meta |
|
92 |
- Node |
|
93 |
- Service |
|
94 |
- Endpoint |
|
95 |
- Task |
|
96 |
- NetworkAttachment |
|
97 |
- Network |
|
98 |
- Cluster |
|
99 |
- Secret |
|
100 |
- Config |
|
101 |
- Resource |
|
102 |
- Extension |
|
103 |
- GetNodeRequest |
|
104 |
- GetNodeResponse |
|
105 |
- ListNodesRequest |
|
106 |
- ListNodesResponse |
|
107 |
- UpdateNodeRequest |
|
108 |
- UpdateNodeResponse |
|
109 |
- RemoveNodeRequest |
|
110 |
- RemoveNodeResponse |
|
111 |
- GetTaskRequest |
|
112 |
- GetTaskResponse |
|
113 |
- RemoveTaskRequest |
|
114 |
- RemoveTaskResponse |
|
115 |
- ListTasksRequest |
|
116 |
- ListTasksResponse |
|
117 |
- CreateServiceRequest |
|
118 |
- CreateServiceResponse |
|
119 |
- GetServiceRequest |
|
120 |
- GetServiceResponse |
|
121 |
- UpdateServiceRequest |
|
122 |
- UpdateServiceResponse |
|
123 |
- RemoveServiceRequest |
|
124 |
- RemoveServiceResponse |
|
125 |
- ListServicesRequest |
|
126 |
- ListServicesResponse |
|
127 |
- CreateNetworkRequest |
|
128 |
- CreateNetworkResponse |
|
129 |
- GetNetworkRequest |
|
130 |
- GetNetworkResponse |
|
131 |
- RemoveNetworkRequest |
|
132 |
- RemoveNetworkResponse |
|
133 |
- ListNetworksRequest |
|
134 |
- ListNetworksResponse |
|
135 |
- GetClusterRequest |
|
136 |
- GetClusterResponse |
|
137 |
- ListClustersRequest |
|
138 |
- ListClustersResponse |
|
139 |
- KeyRotation |
|
140 |
- UpdateClusterRequest |
|
141 |
- UpdateClusterResponse |
|
142 |
- GetSecretRequest |
|
143 |
- GetSecretResponse |
|
144 |
- UpdateSecretRequest |
|
145 |
- UpdateSecretResponse |
|
146 |
- ListSecretsRequest |
|
147 |
- ListSecretsResponse |
|
148 |
- CreateSecretRequest |
|
149 |
- CreateSecretResponse |
|
150 |
- RemoveSecretRequest |
|
151 |
- RemoveSecretResponse |
|
152 |
- GetConfigRequest |
|
153 |
- GetConfigResponse |
|
154 |
- UpdateConfigRequest |
|
155 |
- UpdateConfigResponse |
|
156 |
- ListConfigsRequest |
|
157 |
- ListConfigsResponse |
|
158 |
- CreateConfigRequest |
|
159 |
- CreateConfigResponse |
|
160 |
- RemoveConfigRequest |
|
161 |
- RemoveConfigResponse |
|
162 |
- SessionRequest |
|
163 |
- SessionMessage |
|
164 |
- HeartbeatRequest |
|
165 |
- HeartbeatResponse |
|
166 |
- UpdateTaskStatusRequest |
|
167 |
- UpdateTaskStatusResponse |
|
168 |
- TasksRequest |
|
169 |
- TasksMessage |
|
170 |
- AssignmentsRequest |
|
171 |
- Assignment |
|
172 |
- AssignmentChange |
|
173 |
- AssignmentsMessage |
|
174 |
- NodeCertificateStatusRequest |
|
175 |
- NodeCertificateStatusResponse |
|
176 |
- IssueNodeCertificateRequest |
|
177 |
- IssueNodeCertificateResponse |
|
178 |
- GetRootCACertificateRequest |
|
179 |
- GetRootCACertificateResponse |
|
180 |
- GetUnlockKeyRequest |
|
181 |
- GetUnlockKeyResponse |
|
182 |
- StoreSnapshot |
|
183 |
- ClusterSnapshot |
|
184 |
- Snapshot |
|
185 |
- RaftMember |
|
186 |
- JoinRequest |
|
187 |
- JoinResponse |
|
188 |
- LeaveRequest |
|
189 |
- LeaveResponse |
|
190 |
- ProcessRaftMessageRequest |
|
191 |
- ProcessRaftMessageResponse |
|
192 |
- ResolveAddressRequest |
|
193 |
- ResolveAddressResponse |
|
194 |
- InternalRaftRequest |
|
195 |
- StoreAction |
|
196 |
- HealthCheckRequest |
|
197 |
- HealthCheckResponse |
|
198 |
- AttachNetworkRequest |
|
199 |
- AttachNetworkResponse |
|
200 |
- DetachNetworkRequest |
|
201 |
- DetachNetworkResponse |
|
202 |
- LogSubscriptionOptions |
|
203 |
- LogSelector |
|
204 |
- LogContext |
|
205 |
- LogAttr |
|
206 |
- LogMessage |
|
207 |
- SubscribeLogsRequest |
|
208 |
- SubscribeLogsMessage |
|
209 |
- ListenSubscriptionsRequest |
|
210 |
- SubscriptionMessage |
|
211 |
- PublishLogsMessage |
|
212 |
- PublishLogsResponse |
|
213 |
- Object |
|
214 |
- SelectBySlot |
|
215 |
- SelectByCustom |
|
216 |
- SelectBy |
|
217 |
- WatchRequest |
|
218 |
- WatchMessage |
|
219 |
-*/ |
|
220 | 5 |
package api |
221 | 6 |
|
222 | 7 |
import proto "github.com/gogo/protobuf/proto" |
... | ... |
@@ -245,11 +30,29 @@ var _ = fmt.Errorf |
245 | 245 |
var _ = math.Inf |
246 | 246 |
var _ = time.Kitchen |
247 | 247 |
|
248 |
-// This is a compile-time assertion to ensure that this generated file |
|
249 |
-// is compatible with the proto package it is being compiled against. |
|
250 |
-// A compilation error at this line likely means your copy of the |
|
251 |
-// proto package needs to be updated. |
|
252 |
-const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package |
|
248 |
+type ResourceType int32 |
|
249 |
+ |
|
250 |
+const ( |
|
251 |
+ ResourceType_TASK ResourceType = 0 |
|
252 |
+ ResourceType_SECRET ResourceType = 1 |
|
253 |
+ ResourceType_CONFIG ResourceType = 2 |
|
254 |
+) |
|
255 |
+ |
|
256 |
+var ResourceType_name = map[int32]string{ |
|
257 |
+ 0: "TASK", |
|
258 |
+ 1: "SECRET", |
|
259 |
+ 2: "CONFIG", |
|
260 |
+} |
|
261 |
+var ResourceType_value = map[string]int32{ |
|
262 |
+ "TASK": 0, |
|
263 |
+ "SECRET": 1, |
|
264 |
+ "CONFIG": 2, |
|
265 |
+} |
|
266 |
+ |
|
267 |
+func (x ResourceType) String() string { |
|
268 |
+ return proto.EnumName(ResourceType_name, int32(x)) |
|
269 |
+} |
|
270 |
+func (ResourceType) EnumDescriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } |
|
253 | 271 |
|
254 | 272 |
// TaskState enumerates the states that a task progresses through within an |
255 | 273 |
// agent. States are designed to be monotonically increasing, such that if two |
... | ... |
@@ -306,7 +109,7 @@ var TaskState_value = map[string]int32{ |
306 | 306 |
func (x TaskState) String() string { |
307 | 307 |
return proto.EnumName(TaskState_name, int32(x)) |
308 | 308 |
} |
309 |
-func (TaskState) EnumDescriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } |
|
309 |
+func (TaskState) EnumDescriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } |
|
310 | 310 |
|
311 | 311 |
type NodeRole int32 |
312 | 312 |
|
... | ... |
@@ -327,7 +130,7 @@ var NodeRole_value = map[string]int32{ |
327 | 327 |
func (x NodeRole) String() string { |
328 | 328 |
return proto.EnumName(NodeRole_name, int32(x)) |
329 | 329 |
} |
330 |
-func (NodeRole) EnumDescriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } |
|
330 |
+func (NodeRole) EnumDescriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } |
|
331 | 331 |
|
332 | 332 |
type RaftMemberStatus_Reachability int32 |
333 | 333 |
|
... | ... |
@@ -1267,6 +1070,13 @@ type TaskStatus struct { |
1267 | 1267 |
// HostPorts provides a list of ports allocated at the host |
1268 | 1268 |
// level. |
1269 | 1269 |
PortStatus *PortStatus `protobuf:"bytes,6,opt,name=port_status,json=portStatus" json:"port_status,omitempty"` |
1270 |
+ // AppliedBy gives the node ID of the manager that applied this task |
|
1271 |
+ // status update to the Task object. |
|
1272 |
+ AppliedBy string `protobuf:"bytes,7,opt,name=applied_by,json=appliedBy,proto3" json:"applied_by,omitempty"` |
|
1273 |
+ // AppliedAt gives a timestamp of when this status update was applied to |
|
1274 |
+ // the Task object. |
|
1275 |
+ // Note: can't use stdtime because this field is nullable. |
|
1276 |
+ AppliedAt *google_protobuf.Timestamp `protobuf:"bytes,8,opt,name=applied_at,json=appliedAt" json:"applied_at,omitempty"` |
|
1270 | 1277 |
} |
1271 | 1278 |
|
1272 | 1279 |
func (m *TaskStatus) Reset() { *m = TaskStatus{} } |
... | ... |
@@ -2311,6 +2121,7 @@ func init() { |
2311 | 2311 |
proto.RegisterType((*Privileges)(nil), "docker.swarmkit.v1.Privileges") |
2312 | 2312 |
proto.RegisterType((*Privileges_CredentialSpec)(nil), "docker.swarmkit.v1.Privileges.CredentialSpec") |
2313 | 2313 |
proto.RegisterType((*Privileges_SELinuxContext)(nil), "docker.swarmkit.v1.Privileges.SELinuxContext") |
2314 |
+ proto.RegisterEnum("docker.swarmkit.v1.ResourceType", ResourceType_name, ResourceType_value) |
|
2314 | 2315 |
proto.RegisterEnum("docker.swarmkit.v1.TaskState", TaskState_name, TaskState_value) |
2315 | 2316 |
proto.RegisterEnum("docker.swarmkit.v1.NodeRole", NodeRole_name, NodeRole_value) |
2316 | 2317 |
proto.RegisterEnum("docker.swarmkit.v1.RaftMemberStatus_Reachability", RaftMemberStatus_Reachability_name, RaftMemberStatus_Reachability_value) |
... | ... |
@@ -2867,6 +2678,10 @@ func (m *TaskStatus) CopyFrom(src interface{}) { |
2867 | 2867 |
m.PortStatus = &PortStatus{} |
2868 | 2868 |
github_com_docker_swarmkit_api_deepcopy.Copy(m.PortStatus, o.PortStatus) |
2869 | 2869 |
} |
2870 |
+ if o.AppliedAt != nil { |
|
2871 |
+ m.AppliedAt = &google_protobuf.Timestamp{} |
|
2872 |
+ github_com_docker_swarmkit_api_deepcopy.Copy(m.AppliedAt, o.AppliedAt) |
|
2873 |
+ } |
|
2870 | 2874 |
if o.RuntimeStatus != nil { |
2871 | 2875 |
switch o.RuntimeStatus.(type) { |
2872 | 2876 |
case *TaskStatus_Container: |
... | ... |
@@ -4730,6 +4545,22 @@ func (m *TaskStatus) MarshalTo(dAtA []byte) (int, error) { |
4730 | 4730 |
} |
4731 | 4731 |
i += n22 |
4732 | 4732 |
} |
4733 |
+ if len(m.AppliedBy) > 0 { |
|
4734 |
+ dAtA[i] = 0x3a |
|
4735 |
+ i++ |
|
4736 |
+ i = encodeVarintTypes(dAtA, i, uint64(len(m.AppliedBy))) |
|
4737 |
+ i += copy(dAtA[i:], m.AppliedBy) |
|
4738 |
+ } |
|
4739 |
+ if m.AppliedAt != nil { |
|
4740 |
+ dAtA[i] = 0x42 |
|
4741 |
+ i++ |
|
4742 |
+ i = encodeVarintTypes(dAtA, i, uint64(m.AppliedAt.Size())) |
|
4743 |
+ n23, err := m.AppliedAt.MarshalTo(dAtA[i:]) |
|
4744 |
+ if err != nil { |
|
4745 |
+ return 0, err |
|
4746 |
+ } |
|
4747 |
+ i += n23 |
|
4748 |
+ } |
|
4733 | 4749 |
return i, nil |
4734 | 4750 |
} |
4735 | 4751 |
|
... | ... |
@@ -4739,11 +4570,11 @@ func (m *TaskStatus_Container) MarshalTo(dAtA []byte) (int, error) { |
4739 | 4739 |
dAtA[i] = 0x2a |
4740 | 4740 |
i++ |
4741 | 4741 |
i = encodeVarintTypes(dAtA, i, uint64(m.Container.Size())) |
4742 |
- n23, err := m.Container.MarshalTo(dAtA[i:]) |
|
4742 |
+ n24, err := m.Container.MarshalTo(dAtA[i:]) |
|
4743 | 4743 |
if err != nil { |
4744 | 4744 |
return 0, err |
4745 | 4745 |
} |
4746 |
- i += n23 |
|
4746 |
+ i += n24 |
|
4747 | 4747 |
} |
4748 | 4748 |
return i, nil |
4749 | 4749 |
} |
... | ... |
@@ -4980,11 +4811,11 @@ func (m *IPAMOptions) MarshalTo(dAtA []byte) (int, error) { |
4980 | 4980 |
dAtA[i] = 0xa |
4981 | 4981 |
i++ |
4982 | 4982 |
i = encodeVarintTypes(dAtA, i, uint64(m.Driver.Size())) |
4983 |
- n24, err := m.Driver.MarshalTo(dAtA[i:]) |
|
4983 |
+ n25, err := m.Driver.MarshalTo(dAtA[i:]) |
|
4984 | 4984 |
if err != nil { |
4985 | 4985 |
return 0, err |
4986 | 4986 |
} |
4987 |
- i += n24 |
|
4987 |
+ i += n25 |
|
4988 | 4988 |
} |
4989 | 4989 |
if len(m.Configs) > 0 { |
4990 | 4990 |
for _, msg := range m.Configs { |
... | ... |
@@ -5050,11 +4881,11 @@ func (m *WeightedPeer) MarshalTo(dAtA []byte) (int, error) { |
5050 | 5050 |
dAtA[i] = 0xa |
5051 | 5051 |
i++ |
5052 | 5052 |
i = encodeVarintTypes(dAtA, i, uint64(m.Peer.Size())) |
5053 |
- n25, err := m.Peer.MarshalTo(dAtA[i:]) |
|
5053 |
+ n26, err := m.Peer.MarshalTo(dAtA[i:]) |
|
5054 | 5054 |
if err != nil { |
5055 | 5055 |
return 0, err |
5056 | 5056 |
} |
5057 |
- i += n25 |
|
5057 |
+ i += n26 |
|
5058 | 5058 |
} |
5059 | 5059 |
if m.Weight != 0 { |
5060 | 5060 |
dAtA[i] = 0x10 |
... | ... |
@@ -5157,11 +4988,11 @@ func (m *AcceptancePolicy_RoleAdmissionPolicy) MarshalTo(dAtA []byte) (int, erro |
5157 | 5157 |
dAtA[i] = 0x1a |
5158 | 5158 |
i++ |
5159 | 5159 |
i = encodeVarintTypes(dAtA, i, uint64(m.Secret.Size())) |
5160 |
- n26, err := m.Secret.MarshalTo(dAtA[i:]) |
|
5160 |
+ n27, err := m.Secret.MarshalTo(dAtA[i:]) |
|
5161 | 5161 |
if err != nil { |
5162 | 5162 |
return 0, err |
5163 | 5163 |
} |
5164 |
- i += n26 |
|
5164 |
+ i += n27 |
|
5165 | 5165 |
} |
5166 | 5166 |
return i, nil |
5167 | 5167 |
} |
... | ... |
@@ -5267,11 +5098,11 @@ func (m *CAConfig) MarshalTo(dAtA []byte) (int, error) { |
5267 | 5267 |
dAtA[i] = 0xa |
5268 | 5268 |
i++ |
5269 | 5269 |
i = encodeVarintTypes(dAtA, i, uint64(m.NodeCertExpiry.Size())) |
5270 |
- n27, err := m.NodeCertExpiry.MarshalTo(dAtA[i:]) |
|
5270 |
+ n28, err := m.NodeCertExpiry.MarshalTo(dAtA[i:]) |
|
5271 | 5271 |
if err != nil { |
5272 | 5272 |
return 0, err |
5273 | 5273 |
} |
5274 |
- i += n27 |
|
5274 |
+ i += n28 |
|
5275 | 5275 |
} |
5276 | 5276 |
if len(m.ExternalCAs) > 0 { |
5277 | 5277 |
for _, msg := range m.ExternalCAs { |
... | ... |
@@ -5347,11 +5178,11 @@ func (m *TaskDefaults) MarshalTo(dAtA []byte) (int, error) { |
5347 | 5347 |
dAtA[i] = 0xa |
5348 | 5348 |
i++ |
5349 | 5349 |
i = encodeVarintTypes(dAtA, i, uint64(m.LogDriver.Size())) |
5350 |
- n28, err := m.LogDriver.MarshalTo(dAtA[i:]) |
|
5350 |
+ n29, err := m.LogDriver.MarshalTo(dAtA[i:]) |
|
5351 | 5351 |
if err != nil { |
5352 | 5352 |
return 0, err |
5353 | 5353 |
} |
5354 |
- i += n28 |
|
5354 |
+ i += n29 |
|
5355 | 5355 |
} |
5356 | 5356 |
return i, nil |
5357 | 5357 |
} |
... | ... |
@@ -5375,11 +5206,11 @@ func (m *DispatcherConfig) MarshalTo(dAtA []byte) (int, error) { |
5375 | 5375 |
dAtA[i] = 0xa |
5376 | 5376 |
i++ |
5377 | 5377 |
i = encodeVarintTypes(dAtA, i, uint64(m.HeartbeatPeriod.Size())) |
5378 |
- n29, err := m.HeartbeatPeriod.MarshalTo(dAtA[i:]) |
|
5378 |
+ n30, err := m.HeartbeatPeriod.MarshalTo(dAtA[i:]) |
|
5379 | 5379 |
if err != nil { |
5380 | 5380 |
return 0, err |
5381 | 5381 |
} |
5382 |
- i += n29 |
|
5382 |
+ i += n30 |
|
5383 | 5383 |
} |
5384 | 5384 |
return i, nil |
5385 | 5385 |
} |
... | ... |
@@ -5495,11 +5326,11 @@ func (m *PlacementPreference) MarshalTo(dAtA []byte) (int, error) { |
5495 | 5495 |
var l int |
5496 | 5496 |
_ = l |
5497 | 5497 |
if m.Preference != nil { |
5498 |
- nn30, err := m.Preference.MarshalTo(dAtA[i:]) |
|
5498 |
+ nn31, err := m.Preference.MarshalTo(dAtA[i:]) |
|
5499 | 5499 |
if err != nil { |
5500 | 5500 |
return 0, err |
5501 | 5501 |
} |
5502 |
- i += nn30 |
|
5502 |
+ i += nn31 |
|
5503 | 5503 |
} |
5504 | 5504 |
return i, nil |
5505 | 5505 |
} |
... | ... |
@@ -5510,11 +5341,11 @@ func (m *PlacementPreference_Spread) MarshalTo(dAtA []byte) (int, error) { |
5510 | 5510 |
dAtA[i] = 0xa |
5511 | 5511 |
i++ |
5512 | 5512 |
i = encodeVarintTypes(dAtA, i, uint64(m.Spread.Size())) |
5513 |
- n31, err := m.Spread.MarshalTo(dAtA[i:]) |
|
5513 |
+ n32, err := m.Spread.MarshalTo(dAtA[i:]) |
|
5514 | 5514 |
if err != nil { |
5515 | 5515 |
return 0, err |
5516 | 5516 |
} |
5517 |
- i += n31 |
|
5517 |
+ i += n32 |
|
5518 | 5518 |
} |
5519 | 5519 |
return i, nil |
5520 | 5520 |
} |
... | ... |
@@ -5641,20 +5472,20 @@ func (m *RootCA) MarshalTo(dAtA []byte) (int, error) { |
5641 | 5641 |
dAtA[i] = 0x22 |
5642 | 5642 |
i++ |
5643 | 5643 |
i = encodeVarintTypes(dAtA, i, uint64(m.JoinTokens.Size())) |
5644 |
- n32, err := m.JoinTokens.MarshalTo(dAtA[i:]) |
|
5644 |
+ n33, err := m.JoinTokens.MarshalTo(dAtA[i:]) |
|
5645 | 5645 |
if err != nil { |
5646 | 5646 |
return 0, err |
5647 | 5647 |
} |
5648 |
- i += n32 |
|
5648 |
+ i += n33 |
|
5649 | 5649 |
if m.RootRotation != nil { |
5650 | 5650 |
dAtA[i] = 0x2a |
5651 | 5651 |
i++ |
5652 | 5652 |
i = encodeVarintTypes(dAtA, i, uint64(m.RootRotation.Size())) |
5653 |
- n33, err := m.RootRotation.MarshalTo(dAtA[i:]) |
|
5653 |
+ n34, err := m.RootRotation.MarshalTo(dAtA[i:]) |
|
5654 | 5654 |
if err != nil { |
5655 | 5655 |
return 0, err |
5656 | 5656 |
} |
5657 |
- i += n33 |
|
5657 |
+ i += n34 |
|
5658 | 5658 |
} |
5659 | 5659 |
if m.LastForcedRotation != 0 { |
5660 | 5660 |
dAtA[i] = 0x30 |
... | ... |
@@ -5693,11 +5524,11 @@ func (m *Certificate) MarshalTo(dAtA []byte) (int, error) { |
5693 | 5693 |
dAtA[i] = 0x1a |
5694 | 5694 |
i++ |
5695 | 5695 |
i = encodeVarintTypes(dAtA, i, uint64(m.Status.Size())) |
5696 |
- n34, err := m.Status.MarshalTo(dAtA[i:]) |
|
5696 |
+ n35, err := m.Status.MarshalTo(dAtA[i:]) |
|
5697 | 5697 |
if err != nil { |
5698 | 5698 |
return 0, err |
5699 | 5699 |
} |
5700 |
- i += n34 |
|
5700 |
+ i += n35 |
|
5701 | 5701 |
if len(m.Certificate) > 0 { |
5702 | 5702 |
dAtA[i] = 0x22 |
5703 | 5703 |
i++ |
... | ... |
@@ -5866,11 +5697,11 @@ func (m *SecretReference) MarshalTo(dAtA []byte) (int, error) { |
5866 | 5866 |
i += copy(dAtA[i:], m.SecretName) |
5867 | 5867 |
} |
5868 | 5868 |
if m.Target != nil { |
5869 |
- nn35, err := m.Target.MarshalTo(dAtA[i:]) |
|
5869 |
+ nn36, err := m.Target.MarshalTo(dAtA[i:]) |
|
5870 | 5870 |
if err != nil { |
5871 | 5871 |
return 0, err |
5872 | 5872 |
} |
5873 |
- i += nn35 |
|
5873 |
+ i += nn36 |
|
5874 | 5874 |
} |
5875 | 5875 |
return i, nil |
5876 | 5876 |
} |
... | ... |
@@ -5881,11 +5712,11 @@ func (m *SecretReference_File) MarshalTo(dAtA []byte) (int, error) { |
5881 | 5881 |
dAtA[i] = 0x1a |
5882 | 5882 |
i++ |
5883 | 5883 |
i = encodeVarintTypes(dAtA, i, uint64(m.File.Size())) |
5884 |
- n36, err := m.File.MarshalTo(dAtA[i:]) |
|
5884 |
+ n37, err := m.File.MarshalTo(dAtA[i:]) |
|
5885 | 5885 |
if err != nil { |
5886 | 5886 |
return 0, err |
5887 | 5887 |
} |
5888 |
- i += n36 |
|
5888 |
+ i += n37 |
|
5889 | 5889 |
} |
5890 | 5890 |
return i, nil |
5891 | 5891 |
} |
... | ... |
@@ -5917,11 +5748,11 @@ func (m *ConfigReference) MarshalTo(dAtA []byte) (int, error) { |
5917 | 5917 |
i += copy(dAtA[i:], m.ConfigName) |
5918 | 5918 |
} |
5919 | 5919 |
if m.Target != nil { |
5920 |
- nn37, err := m.Target.MarshalTo(dAtA[i:]) |
|
5920 |
+ nn38, err := m.Target.MarshalTo(dAtA[i:]) |
|
5921 | 5921 |
if err != nil { |
5922 | 5922 |
return 0, err |
5923 | 5923 |
} |
5924 |
- i += nn37 |
|
5924 |
+ i += nn38 |
|
5925 | 5925 |
} |
5926 | 5926 |
return i, nil |
5927 | 5927 |
} |
... | ... |
@@ -5932,11 +5763,11 @@ func (m *ConfigReference_File) MarshalTo(dAtA []byte) (int, error) { |
5932 | 5932 |
dAtA[i] = 0x1a |
5933 | 5933 |
i++ |
5934 | 5934 |
i = encodeVarintTypes(dAtA, i, uint64(m.File.Size())) |
5935 |
- n38, err := m.File.MarshalTo(dAtA[i:]) |
|
5935 |
+ n39, err := m.File.MarshalTo(dAtA[i:]) |
|
5936 | 5936 |
if err != nil { |
5937 | 5937 |
return 0, err |
5938 | 5938 |
} |
5939 |
- i += n38 |
|
5939 |
+ i += n39 |
|
5940 | 5940 |
} |
5941 | 5941 |
return i, nil |
5942 | 5942 |
} |
... | ... |
@@ -5959,11 +5790,11 @@ func (m *BlacklistedCertificate) MarshalTo(dAtA []byte) (int, error) { |
5959 | 5959 |
dAtA[i] = 0xa |
5960 | 5960 |
i++ |
5961 | 5961 |
i = encodeVarintTypes(dAtA, i, uint64(m.Expiry.Size())) |
5962 |
- n39, err := m.Expiry.MarshalTo(dAtA[i:]) |
|
5962 |
+ n40, err := m.Expiry.MarshalTo(dAtA[i:]) |
|
5963 | 5963 |
if err != nil { |
5964 | 5964 |
return 0, err |
5965 | 5965 |
} |
5966 |
- i += n39 |
|
5966 |
+ i += n40 |
|
5967 | 5967 |
} |
5968 | 5968 |
return i, nil |
5969 | 5969 |
} |
... | ... |
@@ -6002,21 +5833,21 @@ func (m *HealthConfig) MarshalTo(dAtA []byte) (int, error) { |
6002 | 6002 |
dAtA[i] = 0x12 |
6003 | 6003 |
i++ |
6004 | 6004 |
i = encodeVarintTypes(dAtA, i, uint64(m.Interval.Size())) |
6005 |
- n40, err := m.Interval.MarshalTo(dAtA[i:]) |
|
6005 |
+ n41, err := m.Interval.MarshalTo(dAtA[i:]) |
|
6006 | 6006 |
if err != nil { |
6007 | 6007 |
return 0, err |
6008 | 6008 |
} |
6009 |
- i += n40 |
|
6009 |
+ i += n41 |
|
6010 | 6010 |
} |
6011 | 6011 |
if m.Timeout != nil { |
6012 | 6012 |
dAtA[i] = 0x1a |
6013 | 6013 |
i++ |
6014 | 6014 |
i = encodeVarintTypes(dAtA, i, uint64(m.Timeout.Size())) |
6015 |
- n41, err := m.Timeout.MarshalTo(dAtA[i:]) |
|
6015 |
+ n42, err := m.Timeout.MarshalTo(dAtA[i:]) |
|
6016 | 6016 |
if err != nil { |
6017 | 6017 |
return 0, err |
6018 | 6018 |
} |
6019 |
- i += n41 |
|
6019 |
+ i += n42 |
|
6020 | 6020 |
} |
6021 | 6021 |
if m.Retries != 0 { |
6022 | 6022 |
dAtA[i] = 0x20 |
... | ... |
@@ -6027,11 +5858,11 @@ func (m *HealthConfig) MarshalTo(dAtA []byte) (int, error) { |
6027 | 6027 |
dAtA[i] = 0x2a |
6028 | 6028 |
i++ |
6029 | 6029 |
i = encodeVarintTypes(dAtA, i, uint64(m.StartPeriod.Size())) |
6030 |
- n42, err := m.StartPeriod.MarshalTo(dAtA[i:]) |
|
6030 |
+ n43, err := m.StartPeriod.MarshalTo(dAtA[i:]) |
|
6031 | 6031 |
if err != nil { |
6032 | 6032 |
return 0, err |
6033 | 6033 |
} |
6034 |
- i += n42 |
|
6034 |
+ i += n43 |
|
6035 | 6035 |
} |
6036 | 6036 |
return i, nil |
6037 | 6037 |
} |
... | ... |
@@ -6126,21 +5957,21 @@ func (m *Privileges) MarshalTo(dAtA []byte) (int, error) { |
6126 | 6126 |
dAtA[i] = 0xa |
6127 | 6127 |
i++ |
6128 | 6128 |
i = encodeVarintTypes(dAtA, i, uint64(m.CredentialSpec.Size())) |
6129 |
- n43, err := m.CredentialSpec.MarshalTo(dAtA[i:]) |
|
6129 |
+ n44, err := m.CredentialSpec.MarshalTo(dAtA[i:]) |
|
6130 | 6130 |
if err != nil { |
6131 | 6131 |
return 0, err |
6132 | 6132 |
} |
6133 |
- i += n43 |
|
6133 |
+ i += n44 |
|
6134 | 6134 |
} |
6135 | 6135 |
if m.SELinuxContext != nil { |
6136 | 6136 |
dAtA[i] = 0x12 |
6137 | 6137 |
i++ |
6138 | 6138 |
i = encodeVarintTypes(dAtA, i, uint64(m.SELinuxContext.Size())) |
6139 |
- n44, err := m.SELinuxContext.MarshalTo(dAtA[i:]) |
|
6139 |
+ n45, err := m.SELinuxContext.MarshalTo(dAtA[i:]) |
|
6140 | 6140 |
if err != nil { |
6141 | 6141 |
return 0, err |
6142 | 6142 |
} |
6143 |
- i += n44 |
|
6143 |
+ i += n45 |
|
6144 | 6144 |
} |
6145 | 6145 |
return i, nil |
6146 | 6146 |
} |
... | ... |
@@ -6161,11 +5992,11 @@ func (m *Privileges_CredentialSpec) MarshalTo(dAtA []byte) (int, error) { |
6161 | 6161 |
var l int |
6162 | 6162 |
_ = l |
6163 | 6163 |
if m.Source != nil { |
6164 |
- nn45, err := m.Source.MarshalTo(dAtA[i:]) |
|
6164 |
+ nn46, err := m.Source.MarshalTo(dAtA[i:]) |
|
6165 | 6165 |
if err != nil { |
6166 | 6166 |
return 0, err |
6167 | 6167 |
} |
6168 |
- i += nn45 |
|
6168 |
+ i += nn46 |
|
6169 | 6169 |
} |
6170 | 6170 |
return i, nil |
6171 | 6171 |
} |
... | ... |
@@ -6730,6 +6561,14 @@ func (m *TaskStatus) Size() (n int) { |
6730 | 6730 |
l = m.PortStatus.Size() |
6731 | 6731 |
n += 1 + l + sovTypes(uint64(l)) |
6732 | 6732 |
} |
6733 |
+ l = len(m.AppliedBy) |
|
6734 |
+ if l > 0 { |
|
6735 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
6736 |
+ } |
|
6737 |
+ if m.AppliedAt != nil { |
|
6738 |
+ l = m.AppliedAt.Size() |
|
6739 |
+ n += 1 + l + sovTypes(uint64(l)) |
|
6740 |
+ } |
|
6733 | 6741 |
return n |
6734 | 6742 |
} |
6735 | 6743 |
|
... | ... |
@@ -7780,6 +7619,8 @@ func (this *TaskStatus) String() string { |
7780 | 7780 |
`Err:` + fmt.Sprintf("%v", this.Err) + `,`, |
7781 | 7781 |
`RuntimeStatus:` + fmt.Sprintf("%v", this.RuntimeStatus) + `,`, |
7782 | 7782 |
`PortStatus:` + strings.Replace(fmt.Sprintf("%v", this.PortStatus), "PortStatus", "PortStatus", 1) + `,`, |
7783 |
+ `AppliedBy:` + fmt.Sprintf("%v", this.AppliedBy) + `,`, |
|
7784 |
+ `AppliedAt:` + strings.Replace(fmt.Sprintf("%v", this.AppliedAt), "Timestamp", "google_protobuf.Timestamp", 1) + `,`, |
|
7783 | 7785 |
`}`, |
7784 | 7786 |
}, "") |
7785 | 7787 |
return s |
... | ... |
@@ -11924,6 +11765,68 @@ func (m *TaskStatus) Unmarshal(dAtA []byte) error { |
11924 | 11924 |
return err |
11925 | 11925 |
} |
11926 | 11926 |
iNdEx = postIndex |
11927 |
+ case 7: |
|
11928 |
+ if wireType != 2 { |
|
11929 |
+ return fmt.Errorf("proto: wrong wireType = %d for field AppliedBy", wireType) |
|
11930 |
+ } |
|
11931 |
+ var stringLen uint64 |
|
11932 |
+ for shift := uint(0); ; shift += 7 { |
|
11933 |
+ if shift >= 64 { |
|
11934 |
+ return ErrIntOverflowTypes |
|
11935 |
+ } |
|
11936 |
+ if iNdEx >= l { |
|
11937 |
+ return io.ErrUnexpectedEOF |
|
11938 |
+ } |
|
11939 |
+ b := dAtA[iNdEx] |
|
11940 |
+ iNdEx++ |
|
11941 |
+ stringLen |= (uint64(b) & 0x7F) << shift |
|
11942 |
+ if b < 0x80 { |
|
11943 |
+ break |
|
11944 |
+ } |
|
11945 |
+ } |
|
11946 |
+ intStringLen := int(stringLen) |
|
11947 |
+ if intStringLen < 0 { |
|
11948 |
+ return ErrInvalidLengthTypes |
|
11949 |
+ } |
|
11950 |
+ postIndex := iNdEx + intStringLen |
|
11951 |
+ if postIndex > l { |
|
11952 |
+ return io.ErrUnexpectedEOF |
|
11953 |
+ } |
|
11954 |
+ m.AppliedBy = string(dAtA[iNdEx:postIndex]) |
|
11955 |
+ iNdEx = postIndex |
|
11956 |
+ case 8: |
|
11957 |
+ if wireType != 2 { |
|
11958 |
+ return fmt.Errorf("proto: wrong wireType = %d for field AppliedAt", wireType) |
|
11959 |
+ } |
|
11960 |
+ var msglen int |
|
11961 |
+ for shift := uint(0); ; shift += 7 { |
|
11962 |
+ if shift >= 64 { |
|
11963 |
+ return ErrIntOverflowTypes |
|
11964 |
+ } |
|
11965 |
+ if iNdEx >= l { |
|
11966 |
+ return io.ErrUnexpectedEOF |
|
11967 |
+ } |
|
11968 |
+ b := dAtA[iNdEx] |
|
11969 |
+ iNdEx++ |
|
11970 |
+ msglen |= (int(b) & 0x7F) << shift |
|
11971 |
+ if b < 0x80 { |
|
11972 |
+ break |
|
11973 |
+ } |
|
11974 |
+ } |
|
11975 |
+ if msglen < 0 { |
|
11976 |
+ return ErrInvalidLengthTypes |
|
11977 |
+ } |
|
11978 |
+ postIndex := iNdEx + msglen |
|
11979 |
+ if postIndex > l { |
|
11980 |
+ return io.ErrUnexpectedEOF |
|
11981 |
+ } |
|
11982 |
+ if m.AppliedAt == nil { |
|
11983 |
+ m.AppliedAt = &google_protobuf.Timestamp{} |
|
11984 |
+ } |
|
11985 |
+ if err := m.AppliedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { |
|
11986 |
+ return err |
|
11987 |
+ } |
|
11988 |
+ iNdEx = postIndex |
|
11927 | 11989 |
default: |
11928 | 11990 |
iNdEx = preIndex |
11929 | 11991 |
skippy, err := skipTypes(dAtA[iNdEx:]) |
... | ... |
@@ -17058,310 +16961,315 @@ var ( |
17058 | 17058 |
ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") |
17059 | 17059 |
) |
17060 | 17060 |
|
17061 |
-func init() { proto.RegisterFile("types.proto", fileDescriptorTypes) } |
|
17061 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/types.proto", fileDescriptorTypes) } |
|
17062 | 17062 |
|
17063 | 17063 |
var fileDescriptorTypes = []byte{ |
17064 |
- // 4822 bytes of a gzipped FileDescriptorProto |
|
17064 |
+ // 4905 bytes of a gzipped FileDescriptorProto |
|
17065 | 17065 |
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x7a, 0x4d, 0x6c, 0x24, 0x49, |
17066 |
- 0x56, 0xbf, 0xeb, 0xd3, 0x55, 0xaf, 0xca, 0x76, 0x3a, 0xda, 0xdb, 0xe3, 0xae, 0xed, 0xb1, 0x6b, |
|
17067 |
- 0x72, 0xa6, 0x77, 0x66, 0x67, 0xe7, 0x5f, 0xd3, 0x1f, 0xbb, 0xab, 0x9e, 0x99, 0xff, 0x7c, 0xd4, |
|
17068 |
- 0x97, 0xdb, 0xb5, 0x6d, 0x57, 0x95, 0xa2, 0xca, 0xdd, 0x3b, 0x48, 0x90, 0x4a, 0x67, 0x86, 0xcb, |
|
17069 |
- 0x39, 0xce, 0xca, 0x28, 0x32, 0xb3, 0xec, 0x2e, 0x16, 0x44, 0x8b, 0x03, 0x20, 0x9f, 0xe0, 0xb6, |
|
17070 |
- 0x12, 0x32, 0x17, 0x38, 0x21, 0x24, 0x0e, 0x20, 0x21, 0xb8, 0x30, 0x48, 0x1c, 0xe6, 0xc6, 0x02, |
|
17071 |
- 0x12, 0x5a, 0x81, 0x64, 0x18, 0x1f, 0xb8, 0x21, 0xb8, 0xac, 0xb8, 0x80, 0x84, 0xe2, 0x23, 0xb3, |
|
17072 |
- 0xb2, 0xaa, 0xd3, 0x76, 0x0f, 0xb3, 0x17, 0x3b, 0xe3, 0xbd, 0xdf, 0x7b, 0xf1, 0xe2, 0x45, 0xc4, |
|
17073 |
- 0x8b, 0xf7, 0x22, 0x0a, 0x0a, 0xfe, 0x64, 0x44, 0xbc, 0xca, 0xc8, 0xa5, 0x3e, 0x45, 0xc8, 0xa4, |
|
17074 |
- 0xc6, 0x11, 0x71, 0x2b, 0xde, 0x89, 0xee, 0x0e, 0x8f, 0x2c, 0xbf, 0x72, 0x7c, 0xaf, 0xb4, 0x39, |
|
17075 |
- 0xa0, 0x74, 0x60, 0x93, 0x77, 0x39, 0x62, 0x7f, 0x7c, 0xf0, 0xae, 0x6f, 0x0d, 0x89, 0xe7, 0xeb, |
|
17076 |
- 0xc3, 0x91, 0x10, 0x2a, 0x6d, 0xcc, 0x03, 0xcc, 0xb1, 0xab, 0xfb, 0x16, 0x75, 0x24, 0x7f, 0x6d, |
|
17077 |
- 0x40, 0x07, 0x94, 0x7f, 0xbe, 0xcb, 0xbe, 0x04, 0x55, 0xdd, 0x84, 0xc5, 0x27, 0xc4, 0xf5, 0x2c, |
|
17078 |
- 0xea, 0xa0, 0x35, 0xc8, 0x58, 0x8e, 0x49, 0x9e, 0xad, 0x27, 0xca, 0x89, 0xb7, 0xd2, 0x58, 0x34, |
|
17079 |
- 0xd4, 0xbb, 0x00, 0x2d, 0xf6, 0xd1, 0x74, 0x7c, 0x77, 0x82, 0x14, 0x48, 0x1d, 0x91, 0x09, 0x47, |
|
17080 |
- 0xe4, 0x31, 0xfb, 0x64, 0x94, 0x63, 0xdd, 0x5e, 0x4f, 0x0a, 0xca, 0xb1, 0x6e, 0xab, 0x5f, 0x26, |
|
17081 |
- 0xa0, 0x50, 0x75, 0x1c, 0xea, 0xf3, 0xde, 0x3d, 0x84, 0x20, 0xed, 0xe8, 0x43, 0x22, 0x85, 0xf8, |
|
17082 |
- 0x37, 0xaa, 0x43, 0xd6, 0xd6, 0xf7, 0x89, 0xed, 0xad, 0x27, 0xcb, 0xa9, 0xb7, 0x0a, 0xf7, 0xbf, |
|
17083 |
- 0x53, 0x79, 0x71, 0xc8, 0x95, 0x88, 0x92, 0xca, 0x0e, 0x47, 0x73, 0x23, 0xb0, 0x14, 0x45, 0x1f, |
|
17084 |
- 0xc1, 0xa2, 0xe5, 0x98, 0x96, 0x41, 0xbc, 0xf5, 0x34, 0xd7, 0xb2, 0x11, 0xa7, 0x65, 0x6a, 0x7d, |
|
17085 |
- 0x2d, 0xfd, 0xc5, 0xf9, 0xe6, 0x02, 0x0e, 0x84, 0x4a, 0xef, 0x41, 0x21, 0xa2, 0x36, 0x66, 0x6c, |
|
17086 |
- 0x6b, 0x90, 0x39, 0xd6, 0xed, 0x31, 0x91, 0xa3, 0x13, 0x8d, 0xf7, 0x93, 0x0f, 0x13, 0xea, 0x27, |
|
17087 |
- 0xb0, 0xd6, 0xd6, 0x87, 0xc4, 0x7c, 0x44, 0x1c, 0xe2, 0x5a, 0x06, 0x26, 0x1e, 0x1d, 0xbb, 0x06, |
|
17088 |
- 0x61, 0x63, 0x3d, 0xb2, 0x1c, 0x33, 0x18, 0x2b, 0xfb, 0x8e, 0xd7, 0xa2, 0xd6, 0xe1, 0x95, 0x86, |
|
17089 |
- 0xe5, 0x19, 0x2e, 0xf1, 0xc9, 0x57, 0x56, 0x92, 0x0a, 0x94, 0x9c, 0x27, 0x60, 0x65, 0x5e, 0xfa, |
|
17090 |
- 0x17, 0xe0, 0x06, 0x73, 0xb1, 0xa9, 0xb9, 0x92, 0xa2, 0x79, 0x23, 0x62, 0x70, 0x65, 0x85, 0xfb, |
|
17091 |
- 0x6f, 0xc5, 0x79, 0x28, 0x6e, 0x24, 0xdb, 0x0b, 0x78, 0x95, 0xab, 0x09, 0x08, 0xbd, 0x11, 0x31, |
|
17092 |
- 0x90, 0x01, 0x37, 0x4d, 0x69, 0xf4, 0x9c, 0xfa, 0x24, 0x57, 0x1f, 0x3b, 0x8d, 0x97, 0x0c, 0x73, |
|
17093 |
- 0x7b, 0x01, 0xaf, 0x05, 0xca, 0xa2, 0x9d, 0xd4, 0x00, 0x72, 0x81, 0x6e, 0xf5, 0xc7, 0x09, 0xc8, |
|
17094 |
- 0x07, 0x4c, 0x0f, 0x7d, 0x1b, 0xf2, 0x8e, 0xee, 0x50, 0xcd, 0x18, 0x8d, 0x3d, 0x3e, 0xa0, 0x54, |
|
17095 |
- 0xad, 0x78, 0x71, 0xbe, 0x99, 0x6b, 0xeb, 0x0e, 0xad, 0x77, 0xf7, 0x3c, 0x9c, 0x63, 0xec, 0xfa, |
|
17096 |
- 0x68, 0xec, 0xa1, 0xd7, 0xa0, 0x38, 0x24, 0x43, 0xea, 0x4e, 0xb4, 0xfd, 0x89, 0x4f, 0x3c, 0xe9, |
|
17097 |
- 0xb6, 0x82, 0xa0, 0xd5, 0x18, 0x09, 0x7d, 0x08, 0x8b, 0x03, 0x61, 0xd2, 0x7a, 0x8a, 0x2f, 0x9f, |
|
17098 |
- 0xd7, 0xe3, 0xac, 0x9f, 0xb3, 0x1a, 0x07, 0x32, 0xea, 0xef, 0x24, 0x60, 0x2d, 0xa4, 0x92, 0x5f, |
|
17099 |
- 0x1e, 0x5b, 0x2e, 0x19, 0x12, 0xc7, 0xf7, 0xd0, 0xf7, 0x20, 0x6b, 0x5b, 0x43, 0xcb, 0xf7, 0xa4, |
|
17100 |
- 0xcf, 0x5f, 0x8d, 0x53, 0x1b, 0x0e, 0x0a, 0x4b, 0x30, 0xaa, 0x42, 0xd1, 0x25, 0x1e, 0x71, 0x8f, |
|
17101 |
- 0xc5, 0x8a, 0x97, 0x1e, 0xbd, 0x46, 0x78, 0x46, 0x44, 0xdd, 0x82, 0x5c, 0xd7, 0xd6, 0xfd, 0x03, |
|
17102 |
- 0xea, 0x0e, 0x91, 0x0a, 0x45, 0xdd, 0x35, 0x0e, 0x2d, 0x9f, 0x18, 0xfe, 0xd8, 0x0d, 0x76, 0xdf, |
|
17103 |
- 0x0c, 0x0d, 0xdd, 0x84, 0x24, 0x15, 0x1d, 0xe5, 0x6b, 0xd9, 0x8b, 0xf3, 0xcd, 0x64, 0xa7, 0x87, |
|
17104 |
- 0x93, 0xd4, 0x53, 0x3f, 0x80, 0xd5, 0xae, 0x3d, 0x1e, 0x58, 0x4e, 0x83, 0x78, 0x86, 0x6b, 0x8d, |
|
17105 |
- 0x98, 0x76, 0xb6, 0x2a, 0x59, 0x8c, 0x0a, 0x56, 0x25, 0xfb, 0x0e, 0xb7, 0x76, 0x72, 0xba, 0xb5, |
|
17106 |
- 0xd5, 0xdf, 0x4a, 0xc2, 0x6a, 0xd3, 0x19, 0x58, 0x0e, 0x89, 0x4a, 0xdf, 0x81, 0x65, 0xc2, 0x89, |
|
17107 |
- 0xda, 0xb1, 0x08, 0x37, 0x52, 0xcf, 0x92, 0xa0, 0x06, 0x31, 0xa8, 0x35, 0x17, 0x17, 0xee, 0xc5, |
|
17108 |
- 0x0d, 0xff, 0x05, 0xed, 0xb1, 0xd1, 0xa1, 0x09, 0x8b, 0x23, 0x3e, 0x08, 0x4f, 0x4e, 0xef, 0x9d, |
|
17109 |
- 0x38, 0x5d, 0x2f, 0x8c, 0x33, 0x08, 0x12, 0x52, 0xf6, 0xeb, 0x04, 0x89, 0x3f, 0x4e, 0xc2, 0x4a, |
|
17110 |
- 0x9b, 0x9a, 0x33, 0x7e, 0x28, 0x41, 0xee, 0x90, 0x7a, 0x7e, 0x24, 0x20, 0x86, 0x6d, 0xf4, 0x10, |
|
17111 |
- 0x72, 0x23, 0x39, 0x7d, 0x72, 0xf6, 0x6f, 0xc7, 0x9b, 0x2c, 0x30, 0x38, 0x44, 0xa3, 0x0f, 0x20, |
|
17112 |
- 0x1f, 0x6c, 0x19, 0x36, 0xda, 0x97, 0x58, 0x38, 0x53, 0x3c, 0xfa, 0x10, 0xb2, 0x62, 0x12, 0xd6, |
|
17113 |
- 0xd3, 0x5c, 0xf2, 0xce, 0x4b, 0xf9, 0x1c, 0x4b, 0x21, 0xf4, 0x08, 0x72, 0xbe, 0xed, 0x69, 0x96, |
|
17114 |
- 0x73, 0x40, 0xd7, 0x33, 0x5c, 0xc1, 0x66, 0x6c, 0x90, 0xa1, 0x26, 0xe9, 0xef, 0xf4, 0x5a, 0xce, |
|
17115 |
- 0x01, 0xad, 0x15, 0x2e, 0xce, 0x37, 0x17, 0x65, 0x03, 0x2f, 0xfa, 0xb6, 0xc7, 0x3e, 0xd4, 0xdf, |
|
17116 |
- 0x4d, 0x40, 0x21, 0x82, 0x42, 0xaf, 0x02, 0xf8, 0xee, 0xd8, 0xf3, 0x35, 0x97, 0x52, 0x9f, 0x3b, |
|
17117 |
- 0xab, 0x88, 0xf3, 0x9c, 0x82, 0x29, 0xf5, 0x51, 0x05, 0x6e, 0x18, 0xc4, 0xf5, 0x35, 0xcb, 0xf3, |
|
17118 |
- 0xc6, 0xc4, 0xd5, 0xbc, 0xf1, 0xfe, 0x67, 0xc4, 0xf0, 0xb9, 0xe3, 0x8a, 0x78, 0x95, 0xb1, 0x5a, |
|
17119 |
- 0x9c, 0xd3, 0x13, 0x0c, 0xf4, 0x00, 0x6e, 0x46, 0xf1, 0xa3, 0xf1, 0xbe, 0x6d, 0x19, 0x1a, 0x9b, |
|
17120 |
- 0xcc, 0x14, 0x17, 0xb9, 0x31, 0x15, 0xe9, 0x72, 0xde, 0x63, 0x32, 0x51, 0x7f, 0x9a, 0x00, 0x05, |
|
17121 |
- 0xeb, 0x07, 0xfe, 0x2e, 0x19, 0xee, 0x13, 0xb7, 0xe7, 0xeb, 0xfe, 0xd8, 0x43, 0x37, 0x21, 0x6b, |
|
17122 |
- 0x13, 0xdd, 0x24, 0x2e, 0x37, 0x2a, 0x87, 0x65, 0x0b, 0xed, 0xb1, 0x1d, 0xac, 0x1b, 0x87, 0xfa, |
|
17123 |
- 0xbe, 0x65, 0x5b, 0xfe, 0x84, 0x9b, 0xb2, 0x1c, 0xbf, 0x84, 0xe7, 0x75, 0x56, 0x70, 0x44, 0x10, |
|
17124 |
- 0xcf, 0xa8, 0x41, 0xeb, 0xb0, 0x38, 0x24, 0x9e, 0xa7, 0x0f, 0x08, 0xb7, 0x34, 0x8f, 0x83, 0xa6, |
|
17125 |
- 0xfa, 0x01, 0x14, 0xa3, 0x72, 0xa8, 0x00, 0x8b, 0x7b, 0xed, 0xc7, 0xed, 0xce, 0xd3, 0xb6, 0xb2, |
|
17126 |
- 0x80, 0x56, 0xa0, 0xb0, 0xd7, 0xc6, 0xcd, 0x6a, 0x7d, 0xbb, 0x5a, 0xdb, 0x69, 0x2a, 0x09, 0xb4, |
|
17127 |
- 0x04, 0xf9, 0x69, 0x33, 0xa9, 0xfe, 0x69, 0x02, 0x80, 0xb9, 0x5b, 0x0e, 0xea, 0x7d, 0xc8, 0x78, |
|
17128 |
- 0xbe, 0xee, 0x8b, 0x55, 0xb9, 0x7c, 0xff, 0x8d, 0xcb, 0xe6, 0x50, 0xda, 0xcb, 0xfe, 0x11, 0x2c, |
|
17129 |
- 0x44, 0xa2, 0x16, 0x26, 0x67, 0x2c, 0x64, 0x01, 0x42, 0x37, 0x4d, 0x57, 0x1a, 0xce, 0xbf, 0xd5, |
|
17130 |
- 0x0f, 0x20, 0xc3, 0xa5, 0x67, 0xcd, 0xcd, 0x41, 0xba, 0xc1, 0xbe, 0x12, 0x28, 0x0f, 0x19, 0xdc, |
|
17131 |
- 0xac, 0x36, 0x3e, 0x55, 0x92, 0x48, 0x81, 0x62, 0xa3, 0xd5, 0xab, 0x77, 0xda, 0xed, 0x66, 0xbd, |
|
17132 |
- 0xdf, 0x6c, 0x28, 0x29, 0xf5, 0x0e, 0x64, 0x5a, 0x43, 0xa6, 0xf9, 0x36, 0x5b, 0xf2, 0x07, 0xc4, |
|
17133 |
- 0x25, 0x8e, 0x11, 0xec, 0xa4, 0x29, 0x41, 0xfd, 0x49, 0x1e, 0x32, 0xbb, 0x74, 0xec, 0xf8, 0xe8, |
|
17134 |
- 0x7e, 0x24, 0x6c, 0x2d, 0xc7, 0x67, 0x08, 0x1c, 0x58, 0xe9, 0x4f, 0x46, 0x44, 0x86, 0xb5, 0x9b, |
|
17135 |
- 0x90, 0x15, 0x9b, 0x43, 0x0e, 0x47, 0xb6, 0x18, 0xdd, 0xd7, 0xdd, 0x01, 0xf1, 0xe5, 0x78, 0x64, |
|
17136 |
- 0x0b, 0xbd, 0xc5, 0x4e, 0x2c, 0xdd, 0xa4, 0x8e, 0x3d, 0xe1, 0x7b, 0x28, 0x27, 0x8e, 0x25, 0x4c, |
|
17137 |
- 0x74, 0xb3, 0xe3, 0xd8, 0x13, 0x1c, 0x72, 0xd1, 0x36, 0x14, 0xf7, 0x2d, 0xc7, 0xd4, 0xe8, 0x48, |
|
17138 |
- 0x04, 0xf9, 0xcc, 0xe5, 0x3b, 0x4e, 0x58, 0x55, 0xb3, 0x1c, 0xb3, 0x23, 0xc0, 0xb8, 0xb0, 0x3f, |
|
17139 |
- 0x6d, 0xa0, 0x36, 0x2c, 0x1f, 0x53, 0x7b, 0x3c, 0x24, 0xa1, 0xae, 0x2c, 0xd7, 0xf5, 0xe6, 0xe5, |
|
17140 |
- 0xba, 0x9e, 0x70, 0x7c, 0xa0, 0x6d, 0xe9, 0x38, 0xda, 0x44, 0x8f, 0x61, 0xc9, 0x1f, 0x8e, 0x0e, |
|
17141 |
- 0xbc, 0x50, 0xdd, 0x22, 0x57, 0xf7, 0xad, 0x2b, 0x1c, 0xc6, 0xe0, 0x81, 0xb6, 0xa2, 0x1f, 0x69, |
|
17142 |
- 0x95, 0x7e, 0x23, 0x05, 0x85, 0x88, 0xe5, 0xa8, 0x07, 0x85, 0x91, 0x4b, 0x47, 0xfa, 0x80, 0x1f, |
|
17143 |
- 0x54, 0x72, 0x2e, 0xee, 0xbd, 0xd4, 0xa8, 0x2b, 0xdd, 0xa9, 0x20, 0x8e, 0x6a, 0x51, 0xcf, 0x92, |
|
17144 |
- 0x50, 0x88, 0x30, 0xd1, 0xdb, 0x90, 0xc3, 0x5d, 0xdc, 0x7a, 0x52, 0xed, 0x37, 0x95, 0x85, 0xd2, |
|
17145 |
- 0xed, 0xd3, 0xb3, 0xf2, 0x3a, 0xd7, 0x16, 0x55, 0xd0, 0x75, 0xad, 0x63, 0xb6, 0xf4, 0xde, 0x82, |
|
17146 |
- 0xc5, 0x00, 0x9a, 0x28, 0x7d, 0xf3, 0xf4, 0xac, 0xfc, 0xca, 0x3c, 0x34, 0x82, 0xc4, 0xbd, 0xed, |
|
17147 |
- 0x2a, 0x6e, 0x36, 0x94, 0x64, 0x3c, 0x12, 0xf7, 0x0e, 0x75, 0x97, 0x98, 0xe8, 0x5b, 0x90, 0x95, |
|
17148 |
- 0xc0, 0x54, 0xa9, 0x74, 0x7a, 0x56, 0xbe, 0x39, 0x0f, 0x9c, 0xe2, 0x70, 0x6f, 0xa7, 0xfa, 0xa4, |
|
17149 |
- 0xa9, 0xa4, 0xe3, 0x71, 0xb8, 0x67, 0xeb, 0xc7, 0x04, 0xbd, 0x01, 0x19, 0x01, 0xcb, 0x94, 0x6e, |
|
17150 |
- 0x9d, 0x9e, 0x95, 0xbf, 0xf1, 0x82, 0x3a, 0x86, 0x2a, 0xad, 0xff, 0xf6, 0x1f, 0x6c, 0x2c, 0xfc, |
|
17151 |
- 0xe5, 0x1f, 0x6e, 0x28, 0xf3, 0xec, 0xd2, 0x7f, 0x27, 0x60, 0x69, 0x66, 0xca, 0x91, 0x0a, 0x59, |
|
17152 |
- 0x87, 0x1a, 0x74, 0x24, 0xce, 0xaf, 0x5c, 0x0d, 0x2e, 0xce, 0x37, 0xb3, 0x6d, 0x5a, 0xa7, 0xa3, |
|
17153 |
- 0x09, 0x96, 0x1c, 0xf4, 0x78, 0xee, 0x04, 0x7e, 0xf0, 0x92, 0xeb, 0x29, 0xf6, 0x0c, 0xfe, 0x18, |
|
17154 |
- 0x96, 0x4c, 0xd7, 0x3a, 0x26, 0xae, 0x66, 0x50, 0xe7, 0xc0, 0x1a, 0xc8, 0xb3, 0xa9, 0x14, 0x9b, |
|
17155 |
- 0x26, 0x72, 0x20, 0x2e, 0x0a, 0x81, 0x3a, 0xc7, 0x7f, 0x8d, 0xd3, 0xb7, 0xf4, 0x04, 0x8a, 0xd1, |
|
17156 |
- 0x15, 0xca, 0x8e, 0x13, 0xcf, 0xfa, 0x15, 0x22, 0xf3, 0x41, 0x9e, 0x3d, 0xe2, 0x3c, 0xa3, 0x88, |
|
17157 |
- 0x6c, 0xf0, 0x4d, 0x48, 0x0f, 0xa9, 0x29, 0xf4, 0x2c, 0xd5, 0x6e, 0xb0, 0x24, 0xe0, 0x9f, 0xce, |
|
17158 |
- 0x37, 0x0b, 0xd4, 0xab, 0x6c, 0x59, 0x36, 0xd9, 0xa5, 0x26, 0xc1, 0x1c, 0xa0, 0x1e, 0x43, 0x9a, |
|
17159 |
- 0x85, 0x0a, 0xf4, 0x4d, 0x48, 0xd7, 0x5a, 0xed, 0x86, 0xb2, 0x50, 0x5a, 0x3d, 0x3d, 0x2b, 0x2f, |
|
17160 |
- 0x71, 0x97, 0x30, 0x06, 0x5b, 0xbb, 0x68, 0x13, 0xb2, 0x4f, 0x3a, 0x3b, 0x7b, 0xbb, 0x6c, 0x79, |
|
17161 |
- 0xdd, 0x38, 0x3d, 0x2b, 0xaf, 0x84, 0x6c, 0xe1, 0x34, 0xf4, 0x2a, 0x64, 0xfa, 0xbb, 0xdd, 0xad, |
|
17162 |
- 0x9e, 0x92, 0x2c, 0xa1, 0xd3, 0xb3, 0xf2, 0x72, 0xc8, 0xe7, 0x36, 0x97, 0x56, 0xe5, 0xac, 0xe6, |
|
17163 |
- 0x43, 0xba, 0xfa, 0xb3, 0x24, 0x2c, 0x61, 0x56, 0xf1, 0xb9, 0x7e, 0x97, 0xda, 0x96, 0x31, 0x41, |
|
17164 |
- 0x5d, 0xc8, 0x1b, 0xd4, 0x31, 0xad, 0xc8, 0x9e, 0xba, 0x7f, 0xc9, 0xa9, 0x3f, 0x95, 0x0a, 0x5a, |
|
17165 |
- 0xf5, 0x40, 0x12, 0x4f, 0x95, 0xa0, 0x77, 0x21, 0x63, 0x12, 0x5b, 0x9f, 0xc8, 0xf4, 0xe3, 0x56, |
|
17166 |
- 0x45, 0xd4, 0x94, 0x95, 0xa0, 0xa6, 0xac, 0x34, 0x64, 0x4d, 0x89, 0x05, 0x8e, 0xa7, 0xd9, 0xfa, |
|
17167 |
- 0x33, 0x4d, 0xf7, 0x7d, 0x32, 0x1c, 0xf9, 0x22, 0xf7, 0x48, 0xe3, 0xc2, 0x50, 0x7f, 0x56, 0x95, |
|
17168 |
- 0x24, 0x74, 0x0f, 0xb2, 0x27, 0x96, 0x63, 0xd2, 0x13, 0x99, 0x5e, 0x5c, 0xa1, 0x54, 0x02, 0xd5, |
|
17169 |
- 0x53, 0x76, 0xea, 0xce, 0x99, 0xc9, 0xfc, 0xdd, 0xee, 0xb4, 0x9b, 0x81, 0xbf, 0x25, 0xbf, 0xe3, |
|
17170 |
- 0xb4, 0xa9, 0xc3, 0xf6, 0x0a, 0x74, 0xda, 0xda, 0x56, 0xb5, 0xb5, 0xb3, 0x87, 0x99, 0xcf, 0xd7, |
|
17171 |
- 0x4e, 0xcf, 0xca, 0x4a, 0x08, 0xd9, 0xd2, 0x2d, 0x9b, 0xe5, 0xbb, 0xb7, 0x20, 0x55, 0x6d, 0x7f, |
|
17172 |
- 0xaa, 0x24, 0x4b, 0xca, 0xe9, 0x59, 0xb9, 0x18, 0xb2, 0xab, 0xce, 0x64, 0xba, 0x8d, 0xe6, 0xfb, |
|
17173 |
- 0x55, 0xff, 0x36, 0x05, 0xc5, 0xbd, 0x91, 0xa9, 0xfb, 0x44, 0xac, 0x49, 0x54, 0x86, 0xc2, 0x48, |
|
17174 |
- 0x77, 0x75, 0xdb, 0x26, 0xb6, 0xe5, 0x0d, 0x65, 0xb5, 0x1c, 0x25, 0xa1, 0xf7, 0x5e, 0xd6, 0x8d, |
|
17175 |
- 0xb5, 0x1c, 0x5b, 0x67, 0x3f, 0xfe, 0x97, 0xcd, 0x44, 0xe0, 0xd0, 0x3d, 0x58, 0x3e, 0x10, 0xd6, |
|
17176 |
- 0x6a, 0xba, 0xc1, 0x27, 0x36, 0xc5, 0x27, 0xb6, 0x12, 0x37, 0xb1, 0x51, 0xb3, 0x2a, 0x72, 0x90, |
|
17177 |
- 0x55, 0x2e, 0x85, 0x97, 0x0e, 0xa2, 0x4d, 0xf4, 0x00, 0x16, 0x87, 0xd4, 0xb1, 0x7c, 0xea, 0x5e, |
|
17178 |
- 0x3f, 0x0b, 0x01, 0x12, 0xbd, 0x0d, 0xab, 0x6c, 0x72, 0x03, 0x7b, 0x38, 0x9b, 0x9f, 0x58, 0x49, |
|
17179 |
- 0xbc, 0x32, 0xd4, 0x9f, 0xc9, 0x0e, 0x31, 0x23, 0xa3, 0x1a, 0x64, 0xa8, 0xcb, 0x52, 0xa2, 0x2c, |
|
17180 |
- 0x37, 0xf7, 0x9d, 0x6b, 0xcd, 0x15, 0x8d, 0x0e, 0x93, 0xc1, 0x42, 0x54, 0xfd, 0x3e, 0x2c, 0xcd, |
|
17181 |
- 0x0c, 0x82, 0x65, 0x02, 0xdd, 0xea, 0x5e, 0xaf, 0xa9, 0x2c, 0xa0, 0x22, 0xe4, 0xea, 0x9d, 0x76, |
|
17182 |
- 0xbf, 0xd5, 0xde, 0x63, 0xa9, 0x4c, 0x11, 0x72, 0xb8, 0xb3, 0xb3, 0x53, 0xab, 0xd6, 0x1f, 0x2b, |
|
17183 |
- 0x49, 0xb5, 0x02, 0x85, 0x88, 0x36, 0xb4, 0x0c, 0xd0, 0xeb, 0x77, 0xba, 0xda, 0x56, 0x0b, 0xf7, |
|
17184 |
- 0xfa, 0x22, 0x11, 0xea, 0xf5, 0xab, 0xb8, 0x2f, 0x09, 0x09, 0xf5, 0x3f, 0x92, 0xc1, 0x8c, 0xca, |
|
17185 |
- 0xdc, 0xa7, 0x36, 0x9b, 0xfb, 0x5c, 0x61, 0xbc, 0xcc, 0x7e, 0xa6, 0x8d, 0x30, 0x07, 0x7a, 0x0f, |
|
17186 |
- 0x80, 0x2f, 0x1c, 0x62, 0x6a, 0xba, 0x2f, 0x27, 0xbe, 0xf4, 0x82, 0x93, 0xfb, 0xc1, 0xa5, 0x0d, |
|
17187 |
- 0xce, 0x4b, 0x74, 0xd5, 0x47, 0x1f, 0x42, 0xd1, 0xa0, 0xc3, 0x91, 0x4d, 0xa4, 0x70, 0xea, 0x5a, |
|
17188 |
- 0xe1, 0x42, 0x88, 0xaf, 0xfa, 0xd1, 0xec, 0x2b, 0x3d, 0x9b, 0x1f, 0xfe, 0x66, 0x22, 0xf0, 0x4c, |
|
17189 |
- 0x4c, 0xc2, 0x55, 0x84, 0xdc, 0x5e, 0xb7, 0x51, 0xed, 0xb7, 0xda, 0x8f, 0x94, 0x04, 0x02, 0xc8, |
|
17190 |
- 0x72, 0x57, 0x37, 0x94, 0x24, 0x4b, 0x14, 0xeb, 0x9d, 0xdd, 0xee, 0x4e, 0x93, 0xa7, 0x5c, 0x68, |
|
17191 |
- 0x0d, 0x94, 0xc0, 0xd9, 0x1a, 0x77, 0x64, 0xb3, 0xa1, 0xa4, 0xd1, 0x0d, 0x58, 0x09, 0xa9, 0x52, |
|
17192 |
- 0x32, 0x83, 0x6e, 0x02, 0x0a, 0x89, 0x53, 0x15, 0x59, 0xf5, 0xd7, 0x60, 0xa5, 0x4e, 0x1d, 0x5f, |
|
17193 |
- 0xb7, 0x9c, 0x30, 0x89, 0xbe, 0xcf, 0x06, 0x2d, 0x49, 0x9a, 0x25, 0x2f, 0x3b, 0x6a, 0x2b, 0x17, |
|
17194 |
- 0xe7, 0x9b, 0x85, 0x10, 0xda, 0x6a, 0xb0, 0x91, 0x06, 0x0d, 0x93, 0xed, 0xdf, 0x91, 0x65, 0x72, |
|
17195 |
- 0xe7, 0x66, 0x6a, 0x8b, 0x17, 0xe7, 0x9b, 0xa9, 0x6e, 0xab, 0x81, 0x19, 0x0d, 0x7d, 0x13, 0xf2, |
|
17196 |
- 0xe4, 0x99, 0xe5, 0x6b, 0x06, 0x8b, 0xe1, 0xcc, 0x81, 0x19, 0x9c, 0x63, 0x84, 0x3a, 0x0b, 0xd9, |
|
17197 |
- 0x35, 0x80, 0x2e, 0x75, 0x7d, 0xd9, 0xf3, 0x77, 0x21, 0x33, 0xa2, 0x2e, 0x2f, 0xcf, 0x2f, 0xbd, |
|
17198 |
- 0x34, 0x62, 0x70, 0xb1, 0x50, 0xb1, 0x00, 0xab, 0x7f, 0x95, 0x04, 0xe8, 0xeb, 0xde, 0x91, 0x54, |
|
17199 |
- 0xf2, 0x10, 0xf2, 0xe1, 0x05, 0x9c, 0xac, 0xf3, 0xaf, 0x9c, 0xed, 0x10, 0x8c, 0x1e, 0x04, 0x8b, |
|
17200 |
- 0x4d, 0x94, 0x07, 0xb1, 0x75, 0x5a, 0xd0, 0x51, 0x5c, 0x86, 0x3d, 0x5b, 0x03, 0xb0, 0x23, 0x91, |
|
17201 |
- 0xb8, 0xae, 0x9c, 0x79, 0xf6, 0x89, 0xea, 0xfc, 0x58, 0x10, 0x4e, 0x93, 0x09, 0x66, 0xec, 0xcd, |
|
17202 |
- 0xc6, 0xdc, 0x8c, 0x6c, 0x2f, 0xe0, 0xa9, 0x1c, 0xfa, 0x18, 0x0a, 0x6c, 0xdc, 0x9a, 0xc7, 0x79, |
|
17203 |
- 0x32, 0xb7, 0xbc, 0xd4, 0x55, 0x42, 0x03, 0x86, 0x51, 0xf8, 0x5d, 0x53, 0x60, 0xd9, 0x1d, 0x3b, |
|
17204 |
- 0x6c, 0xd8, 0x52, 0x87, 0xfa, 0x27, 0x49, 0x78, 0xa5, 0x4d, 0xfc, 0x13, 0xea, 0x1e, 0x55, 0x7d, |
|
17205 |
- 0x5f, 0x37, 0x0e, 0x87, 0xc4, 0x91, 0x4e, 0x8e, 0x64, 0xd6, 0x89, 0x99, 0xcc, 0x7a, 0x1d, 0x16, |
|
17206 |
- 0x75, 0xdb, 0xd2, 0x3d, 0x22, 0xd2, 0x91, 0x3c, 0x0e, 0x9a, 0x2c, 0xff, 0x67, 0xd5, 0x04, 0xf1, |
|
17207 |
- 0x3c, 0x22, 0x0a, 0xfc, 0x3c, 0x9e, 0x12, 0xd0, 0x8f, 0xe0, 0xa6, 0x4c, 0x3c, 0xf4, 0xb0, 0x2b, |
|
17208 |
- 0x96, 0xd9, 0x06, 0x37, 0x85, 0xcd, 0xd8, 0xf2, 0x26, 0xde, 0x38, 0x99, 0x99, 0x4c, 0xc9, 0x9d, |
|
17209 |
- 0x91, 0x2f, 0xf3, 0x9c, 0x35, 0x33, 0x86, 0x55, 0x7a, 0x04, 0xb7, 0x2e, 0x15, 0xf9, 0x4a, 0x17, |
|
17210 |
- 0x08, 0xff, 0x90, 0x04, 0x68, 0x75, 0xab, 0xbb, 0xd2, 0x49, 0x0d, 0xc8, 0x1e, 0xe8, 0x43, 0xcb, |
|
17211 |
- 0x9e, 0x5c, 0x15, 0xa7, 0xa6, 0xf8, 0x4a, 0x55, 0xb8, 0x63, 0x8b, 0xcb, 0x60, 0x29, 0xcb, 0x8b, |
|
17212 |
- 0x9b, 0xf1, 0xbe, 0x43, 0xfc, 0xb0, 0xb8, 0xe1, 0x2d, 0x66, 0x86, 0xab, 0x3b, 0xe1, 0x02, 0x13, |
|
17213 |
- 0x0d, 0x36, 0x01, 0x03, 0xdd, 0x27, 0x27, 0xfa, 0x24, 0x08, 0x2e, 0xb2, 0x89, 0xb6, 0xf9, 0x35, |
|
17214 |
- 0x1d, 0x71, 0x8f, 0x89, 0xb9, 0x9e, 0xe1, 0x4e, 0xbd, 0xce, 0x1e, 0x2c, 0xe1, 0xc2, 0x77, 0xa1, |
|
17215 |
- 0x74, 0xe9, 0x03, 0x9e, 0xd8, 0x4c, 0x59, 0x5f, 0xc9, 0x47, 0x77, 0x61, 0x69, 0x66, 0x9c, 0x2f, |
|
17216 |
- 0x54, 0x95, 0xad, 0xee, 0x93, 0xef, 0x2a, 0x69, 0xf9, 0xf5, 0x7d, 0x25, 0xab, 0xfe, 0x51, 0x4a, |
|
17217 |
- 0x84, 0x03, 0xe9, 0xd5, 0xf8, 0xeb, 0xe9, 0x1c, 0xdf, 0xc4, 0x06, 0xb5, 0xe5, 0x36, 0x7d, 0xf3, |
|
17218 |
- 0xea, 0x28, 0xc1, 0xaa, 0x14, 0x0e, 0xc7, 0xa1, 0x20, 0xda, 0x84, 0x82, 0x58, 0xc5, 0x1a, 0xdb, |
|
17219 |
- 0x16, 0xdc, 0xad, 0x4b, 0x18, 0x04, 0x89, 0x49, 0xa2, 0x3b, 0xb0, 0xcc, 0x6f, 0x21, 0xbc, 0x43, |
|
17220 |
- 0x62, 0x0a, 0x4c, 0x9a, 0x63, 0x96, 0x42, 0x2a, 0x87, 0xed, 0x42, 0x51, 0x12, 0x34, 0x9e, 0xa1, |
|
17221 |
- 0x66, 0xb8, 0x41, 0x6f, 0x5f, 0x67, 0x90, 0x10, 0xe1, 0x89, 0x6b, 0x61, 0x34, 0x6d, 0xa8, 0x0d, |
|
17222 |
- 0xc8, 0x05, 0xc6, 0xa2, 0x75, 0x48, 0xf5, 0xeb, 0x5d, 0x65, 0xa1, 0xb4, 0x72, 0x7a, 0x56, 0x2e, |
|
17223 |
- 0x04, 0xe4, 0x7e, 0xbd, 0xcb, 0x38, 0x7b, 0x8d, 0xae, 0x92, 0x98, 0xe5, 0xec, 0x35, 0xba, 0xa5, |
|
17224 |
- 0x34, 0xcb, 0x94, 0xd4, 0x03, 0x28, 0x44, 0x7a, 0x40, 0xaf, 0xc3, 0x62, 0xab, 0xfd, 0x08, 0x37, |
|
17225 |
- 0x7b, 0x3d, 0x65, 0xa1, 0x74, 0xf3, 0xf4, 0xac, 0x8c, 0x22, 0xdc, 0x96, 0x33, 0x60, 0xf3, 0x83, |
|
17226 |
- 0x5e, 0x85, 0xf4, 0x76, 0x87, 0x9d, 0xc0, 0x22, 0x25, 0x8e, 0x20, 0xb6, 0xa9, 0xe7, 0x97, 0x6e, |
|
17227 |
- 0xc8, 0x14, 0x2c, 0xaa, 0x58, 0xfd, 0xbd, 0x04, 0x64, 0xc5, 0x66, 0x8a, 0x9d, 0xa8, 0x2a, 0x2c, |
|
17228 |
- 0x06, 0xf5, 0xaa, 0x28, 0x57, 0xde, 0xbc, 0xbc, 0xb4, 0xa8, 0xc8, 0x4a, 0x40, 0x2c, 0xbf, 0x40, |
|
17229 |
- 0xae, 0xf4, 0x3e, 0x14, 0xa3, 0x8c, 0xaf, 0xb4, 0xf8, 0x7e, 0x04, 0x05, 0xb6, 0xbe, 0x83, 0x12, |
|
17230 |
- 0xe3, 0x3e, 0x64, 0x45, 0x40, 0x08, 0x4f, 0x84, 0xcb, 0xeb, 0x1c, 0x89, 0x44, 0x0f, 0x61, 0x51, |
|
17231 |
- 0xd4, 0x46, 0xc1, 0x35, 0xe5, 0xc6, 0xd5, 0xbb, 0x08, 0x07, 0x70, 0xf5, 0x63, 0x48, 0x77, 0x09, |
|
17232 |
- 0x71, 0x99, 0xef, 0x1d, 0x6a, 0x92, 0xe9, 0x21, 0x2a, 0xcb, 0x3a, 0x93, 0xb4, 0x1a, 0xac, 0xac, |
|
17233 |
- 0x33, 0x49, 0xcb, 0x0c, 0x2f, 0x62, 0x92, 0x91, 0x8b, 0x98, 0x3e, 0x14, 0x9f, 0x12, 0x6b, 0x70, |
|
17234 |
- 0xe8, 0x13, 0x93, 0x2b, 0x7a, 0x07, 0xd2, 0x23, 0x12, 0x1a, 0xbf, 0x1e, 0xbb, 0xc0, 0x08, 0x71, |
|
17235 |
- 0x31, 0x47, 0xb1, 0x38, 0x72, 0xc2, 0xa5, 0xe5, 0xdd, 0xba, 0x6c, 0xa9, 0x7f, 0x9f, 0x84, 0xe5, |
|
17236 |
- 0x96, 0xe7, 0x8d, 0x75, 0xc7, 0x08, 0xf2, 0xab, 0x8f, 0x66, 0xf3, 0xab, 0xd8, 0x47, 0x88, 0x59, |
|
17237 |
- 0x91, 0xd9, 0xfb, 0x25, 0x79, 0xc6, 0x25, 0xc3, 0x33, 0x4e, 0xfd, 0xf7, 0x44, 0x70, 0x89, 0x74, |
|
17238 |
- 0x27, 0xb2, 0xdd, 0x4b, 0xeb, 0xa7, 0x67, 0xe5, 0xb5, 0xa8, 0x26, 0xb2, 0xe7, 0x1c, 0x39, 0xf4, |
|
17239 |
- 0xc4, 0x41, 0xaf, 0x41, 0x06, 0x37, 0xdb, 0xcd, 0xa7, 0x4a, 0x42, 0x2c, 0xcf, 0x19, 0x10, 0x26, |
|
17240 |
- 0x0e, 0x39, 0x61, 0x9a, 0xba, 0xcd, 0x76, 0x83, 0xe5, 0x43, 0xc9, 0x18, 0x4d, 0x5d, 0xe2, 0x98, |
|
17241 |
- 0x96, 0x33, 0x40, 0xaf, 0x43, 0xb6, 0xd5, 0xeb, 0xed, 0xf1, 0x32, 0xff, 0x95, 0xd3, 0xb3, 0xf2, |
|
17242 |
- 0x8d, 0x19, 0x14, 0xbf, 0x40, 0x34, 0x19, 0x88, 0x15, 0x23, 0x2c, 0x53, 0x8a, 0x01, 0xb1, 0x2c, |
|
17243 |
- 0x57, 0x80, 0x70, 0xa7, 0x5f, 0xed, 0xb3, 0x0a, 0xff, 0x45, 0x10, 0xa6, 0xec, 0xaf, 0xdc, 0x6e, |
|
17244 |
- 0xff, 0x9c, 0x04, 0xa5, 0x6a, 0x18, 0x64, 0xe4, 0x33, 0xbe, 0xac, 0xff, 0xfa, 0x90, 0x1b, 0xb1, |
|
17245 |
- 0x2f, 0x8b, 0x04, 0xb9, 0xcc, 0xc3, 0xd8, 0x67, 0xb4, 0x39, 0xb9, 0x0a, 0xa6, 0x36, 0xa9, 0x9a, |
|
17246 |
- 0x43, 0xcb, 0xf3, 0x2c, 0xea, 0x08, 0x1a, 0x0e, 0x35, 0x95, 0xfe, 0x33, 0x01, 0x37, 0x62, 0x10, |
|
17247 |
- 0xe8, 0x2e, 0xa4, 0x5d, 0x6a, 0x07, 0x73, 0x78, 0xfb, 0xb2, 0xfb, 0x41, 0x26, 0x8a, 0x39, 0x12, |
|
17248 |
- 0x6d, 0x00, 0xe8, 0x63, 0x9f, 0xea, 0xbc, 0x7f, 0x3e, 0x7b, 0x39, 0x1c, 0xa1, 0xa0, 0xa7, 0x90, |
|
17249 |
- 0xf5, 0x88, 0xe1, 0x92, 0x20, 0xe3, 0xfd, 0xf8, 0xff, 0x6a, 0x7d, 0xa5, 0xc7, 0xd5, 0x60, 0xa9, |
|
17250 |
- 0xae, 0x54, 0x81, 0xac, 0xa0, 0xb0, 0x65, 0x6f, 0xea, 0xbe, 0x2e, 0x6f, 0x8f, 0xf9, 0x37, 0x5b, |
|
17251 |
- 0x4d, 0xba, 0x3d, 0x08, 0x56, 0x93, 0x6e, 0x0f, 0xd4, 0xbf, 0x49, 0x02, 0x34, 0x9f, 0xf9, 0xc4, |
|
17252 |
- 0x75, 0x74, 0xbb, 0x5e, 0x45, 0xcd, 0x48, 0xf4, 0x17, 0xa3, 0xfd, 0x76, 0xec, 0x95, 0x78, 0x28, |
|
17253 |
- 0x51, 0xa9, 0x57, 0x63, 0xe2, 0xff, 0x2d, 0x48, 0x8d, 0x5d, 0xf9, 0x32, 0x2a, 0xb2, 0xd5, 0x3d, |
|
17254 |
- 0xbc, 0x83, 0x19, 0x0d, 0x35, 0xa7, 0x61, 0x2b, 0x75, 0xf9, 0xfb, 0x67, 0xa4, 0x83, 0xd8, 0xd0, |
|
17255 |
- 0xc5, 0x76, 0xbe, 0xa1, 0x6b, 0x06, 0x91, 0x27, 0x47, 0x51, 0xec, 0xfc, 0x7a, 0xb5, 0x4e, 0x5c, |
|
17256 |
- 0x1f, 0x67, 0x0d, 0x9d, 0xfd, 0xff, 0x5a, 0xf1, 0xed, 0x1d, 0x80, 0xe9, 0xd0, 0xd0, 0x06, 0x64, |
|
17257 |
- 0xea, 0x5b, 0xbd, 0xde, 0x8e, 0xb2, 0x20, 0x02, 0xf8, 0x94, 0xc5, 0xc9, 0xea, 0x5f, 0x24, 0x21, |
|
17258 |
- 0x57, 0xaf, 0xca, 0x63, 0xb5, 0x0e, 0x0a, 0x8f, 0x4a, 0xfc, 0xce, 0x9d, 0x3c, 0x1b, 0x59, 0xee, |
|
17259 |
- 0x44, 0x06, 0x96, 0x2b, 0x4a, 0xcf, 0x65, 0x26, 0xc2, 0xac, 0x6e, 0x72, 0x01, 0x84, 0xa1, 0x48, |
|
17260 |
- 0xa4, 0x13, 0x34, 0x43, 0x0f, 0x62, 0xfc, 0xc6, 0xd5, 0xce, 0x12, 0x45, 0xc4, 0xb4, 0xed, 0xe1, |
|
17261 |
- 0x42, 0xa0, 0xa4, 0xae, 0x7b, 0xe8, 0x3d, 0x58, 0xf1, 0xac, 0x81, 0x63, 0x39, 0x03, 0x2d, 0x70, |
|
17262 |
- 0x1e, 0x7f, 0x00, 0xa8, 0xad, 0x5e, 0x9c, 0x6f, 0x2e, 0xf5, 0x04, 0x4b, 0xfa, 0x70, 0x49, 0x22, |
|
17263 |
- 0xeb, 0xdc, 0x95, 0xe8, 0xfb, 0xb0, 0x1c, 0x11, 0x65, 0x5e, 0x14, 0x6e, 0x57, 0x2e, 0xce, 0x37, |
|
17264 |
- 0x8b, 0xa1, 0xe4, 0x63, 0x32, 0xc1, 0xc5, 0x50, 0xf0, 0x31, 0xe1, 0xb7, 0x24, 0x07, 0xd4, 0x35, |
|
17265 |
- 0x88, 0xe6, 0xf2, 0x3d, 0xcd, 0x4f, 0xf0, 0x34, 0x2e, 0x70, 0x9a, 0xd8, 0xe6, 0xea, 0x13, 0xb8, |
|
17266 |
- 0xd1, 0x71, 0x8d, 0x43, 0xe2, 0xf9, 0xc2, 0x15, 0xd2, 0x8b, 0x1f, 0xc3, 0x6d, 0x5f, 0xf7, 0x8e, |
|
17267 |
- 0xb4, 0x43, 0xcb, 0xf3, 0xa9, 0x3b, 0xd1, 0x5c, 0xe2, 0x13, 0x87, 0xf1, 0x35, 0xfe, 0x6a, 0x28, |
|
17268 |
- 0xaf, 0xb1, 0x6e, 0x31, 0xcc, 0xb6, 0x80, 0xe0, 0x00, 0xb1, 0xc3, 0x00, 0x6a, 0x0b, 0x8a, 0xac, |
|
17269 |
- 0x98, 0x68, 0x90, 0x03, 0x7d, 0x6c, 0xfb, 0x6c, 0xf4, 0x60, 0xd3, 0x81, 0xf6, 0xd2, 0xc7, 0x54, |
|
17270 |
- 0xde, 0xa6, 0x03, 0xf1, 0xa9, 0xfe, 0x10, 0x94, 0x86, 0xe5, 0x8d, 0x74, 0xdf, 0x38, 0x0c, 0xee, |
|
17271 |
- 0xe7, 0x50, 0x03, 0x94, 0x43, 0xa2, 0xbb, 0xfe, 0x3e, 0xd1, 0x7d, 0x6d, 0x44, 0x5c, 0x8b, 0x9a, |
|
17272 |
- 0xd7, 0xcf, 0xf2, 0x4a, 0x28, 0xd2, 0xe5, 0x12, 0xea, 0x7f, 0x25, 0x00, 0xb0, 0x7e, 0x10, 0x64, |
|
17273 |
- 0x64, 0xdf, 0x81, 0x55, 0xcf, 0xd1, 0x47, 0xde, 0x21, 0xf5, 0x35, 0xcb, 0xf1, 0x89, 0x7b, 0xac, |
|
17274 |
- 0xdb, 0xf2, 0x9a, 0x45, 0x09, 0x18, 0x2d, 0x49, 0x47, 0xef, 0x00, 0x3a, 0x22, 0x64, 0xa4, 0x51, |
|
17275 |
- 0xdb, 0xd4, 0x02, 0xa6, 0x78, 0xd3, 0x4c, 0x63, 0x85, 0x71, 0x3a, 0xb6, 0xd9, 0x0b, 0xe8, 0xa8, |
|
17276 |
- 0x06, 0x1b, 0x6c, 0xf8, 0xc4, 0xf1, 0x5d, 0x8b, 0x78, 0xda, 0x01, 0x75, 0x35, 0xcf, 0xa6, 0x27, |
|
17277 |
- 0xda, 0x01, 0xb5, 0x6d, 0x7a, 0x42, 0xdc, 0xe0, 0x06, 0xab, 0x64, 0xd3, 0x41, 0x53, 0x80, 0xb6, |
|
17278 |
- 0xa8, 0xdb, 0xb3, 0xe9, 0xc9, 0x56, 0x80, 0x60, 0x69, 0xdb, 0x74, 0xcc, 0xbe, 0x65, 0x1c, 0x05, |
|
17279 |
- 0x69, 0x5b, 0x48, 0xed, 0x5b, 0xc6, 0x11, 0x7a, 0x1d, 0x96, 0x88, 0x4d, 0xf8, 0x45, 0x86, 0x40, |
|
17280 |
- 0x65, 0x38, 0xaa, 0x18, 0x10, 0x19, 0x48, 0xfd, 0x04, 0x94, 0xa6, 0x63, 0xb8, 0x93, 0x51, 0x64, |
|
17281 |
- 0xce, 0xdf, 0x01, 0xc4, 0x82, 0xa4, 0x66, 0x53, 0xe3, 0x48, 0x1b, 0xea, 0x8e, 0x3e, 0x60, 0x76, |
|
17282 |
- 0x89, 0xa7, 0x26, 0x85, 0x71, 0x76, 0xa8, 0x71, 0xb4, 0x2b, 0xe9, 0xea, 0x7b, 0x00, 0xbd, 0x91, |
|
17283 |
- 0x4b, 0x74, 0xb3, 0xc3, 0xb2, 0x09, 0xe6, 0x3a, 0xde, 0xd2, 0x4c, 0xf9, 0x54, 0x47, 0x5d, 0xb9, |
|
17284 |
- 0xd5, 0x15, 0xc1, 0x68, 0x84, 0x74, 0xf5, 0x17, 0xe1, 0x46, 0xd7, 0xd6, 0x0d, 0xfe, 0x6c, 0xdd, |
|
17285 |
- 0x0d, 0xdf, 0x4e, 0xd0, 0x43, 0xc8, 0x0a, 0xa8, 0x9c, 0xc9, 0xd8, 0xed, 0x36, 0xed, 0x73, 0x7b, |
|
17286 |
- 0x01, 0x4b, 0x7c, 0xad, 0x08, 0x30, 0xd5, 0xa3, 0xfe, 0x59, 0x02, 0xf2, 0xa1, 0x7e, 0x54, 0x06, |
|
17287 |
- 0x56, 0xca, 0xb3, 0xe5, 0x6d, 0x39, 0xb2, 0xf6, 0xce, 0xe3, 0x28, 0x09, 0xb5, 0xa0, 0x30, 0x0a, |
|
17288 |
- 0xa5, 0xaf, 0xcc, 0xe7, 0x62, 0xac, 0xc6, 0x51, 0x59, 0xf4, 0x3e, 0xe4, 0x83, 0xb7, 0xd1, 0x20, |
|
17289 |
- 0xc2, 0x5e, 0xfd, 0x94, 0x3a, 0x85, 0xab, 0x1f, 0x01, 0xfc, 0x80, 0x5a, 0x4e, 0x9f, 0x1e, 0x11, |
|
17290 |
- 0x87, 0xbf, 0xf5, 0xb1, 0x9a, 0x90, 0x04, 0x5e, 0x94, 0x2d, 0x5e, 0x90, 0x8b, 0x29, 0x08, 0x9f, |
|
17291 |
- 0xbc, 0x44, 0x53, 0xfd, 0xeb, 0x24, 0x64, 0x31, 0xa5, 0x7e, 0xbd, 0x8a, 0xca, 0x90, 0x95, 0x71, |
|
17292 |
- 0x82, 0x9f, 0x3f, 0xb5, 0xfc, 0xc5, 0xf9, 0x66, 0x46, 0x04, 0x88, 0x8c, 0xc1, 0x23, 0x43, 0x24, |
|
17293 |
- 0x82, 0x27, 0x2f, 0x8b, 0xe0, 0xe8, 0x2e, 0x14, 0x25, 0x48, 0x3b, 0xd4, 0xbd, 0x43, 0x51, 0xa0, |
|
17294 |
- 0xd5, 0x96, 0x2f, 0xce, 0x37, 0x41, 0x20, 0xb7, 0x75, 0xef, 0x10, 0x83, 0x40, 0xb3, 0x6f, 0xd4, |
|
17295 |
- 0x84, 0xc2, 0x67, 0xd4, 0x72, 0x34, 0x9f, 0x0f, 0x42, 0x5e, 0xf9, 0xc5, 0xce, 0xe3, 0x74, 0xa8, |
|
17296 |
- 0xf2, 0xe1, 0x1b, 0x3e, 0x9b, 0x0e, 0xbe, 0x09, 0x4b, 0x2e, 0xa5, 0xbe, 0x08, 0x5b, 0x16, 0x75, |
|
17297 |
- 0xe4, 0x6d, 0x42, 0x39, 0xf6, 0x92, 0x99, 0x52, 0x1f, 0x4b, 0x1c, 0x2e, 0xba, 0x91, 0x16, 0xba, |
|
17298 |
- 0x0b, 0x6b, 0xb6, 0xee, 0xf9, 0x1a, 0x8f, 0x77, 0xe6, 0x54, 0x5b, 0x96, 0x6f, 0x35, 0xc4, 0x78, |
|
17299 |
- 0x5b, 0x9c, 0x15, 0x48, 0xa8, 0xff, 0x98, 0x80, 0x02, 0x1b, 0x8c, 0x75, 0x60, 0x19, 0x2c, 0xc9, |
|
17300 |
- 0xfb, 0xea, 0xb9, 0xc7, 0x2d, 0x48, 0x19, 0x9e, 0x2b, 0x9d, 0xca, 0x0f, 0xdf, 0x7a, 0x0f, 0x63, |
|
17301 |
- 0x46, 0x43, 0x9f, 0x40, 0x56, 0xde, 0x6a, 0x88, 0xb4, 0x43, 0xbd, 0x3e, 0x1d, 0x95, 0xbe, 0x91, |
|
17302 |
- 0x72, 0x7c, 0x2d, 0x4f, 0xad, 0x13, 0x87, 0x00, 0x8e, 0x92, 0xd0, 0x4d, 0x48, 0x1a, 0xc2, 0x5d, |
|
17303 |
- 0xf2, 0x97, 0x15, 0xf5, 0x36, 0x4e, 0x1a, 0x8e, 0xfa, 0x77, 0x09, 0x58, 0x9a, 0x6e, 0x78, 0xb6, |
|
17304 |
- 0x02, 0x6e, 0x43, 0xde, 0x1b, 0xef, 0x7b, 0x13, 0xcf, 0x27, 0xc3, 0xe0, 0x1d, 0x33, 0x24, 0xa0, |
|
17305 |
- 0x16, 0xe4, 0x75, 0x7b, 0x40, 0x5d, 0xcb, 0x3f, 0x1c, 0xca, 0x4a, 0x34, 0x3e, 0x55, 0x88, 0xea, |
|
17306 |
- 0xac, 0x54, 0x03, 0x11, 0x3c, 0x95, 0x0e, 0xce, 0x7d, 0xf1, 0xd8, 0xcd, 0xcf, 0xfd, 0xd7, 0xa0, |
|
17307 |
- 0x68, 0xeb, 0x43, 0x7e, 0xcd, 0xe3, 0x5b, 0x43, 0x31, 0x8e, 0x34, 0x2e, 0x48, 0x5a, 0xdf, 0x1a, |
|
17308 |
- 0x12, 0x55, 0x85, 0x7c, 0xa8, 0x0c, 0xad, 0x40, 0xa1, 0xda, 0xec, 0x69, 0xf7, 0xee, 0x3f, 0xd4, |
|
17309 |
- 0x1e, 0xd5, 0x77, 0x95, 0x05, 0x99, 0x9b, 0xfe, 0x79, 0x02, 0x96, 0x64, 0x38, 0x92, 0xf9, 0xfe, |
|
17310 |
- 0xeb, 0xb0, 0xe8, 0xea, 0x07, 0x7e, 0x50, 0x91, 0xa4, 0xc5, 0xaa, 0x66, 0x11, 0x9e, 0x55, 0x24, |
|
17311 |
- 0x8c, 0x15, 0x5f, 0x91, 0x44, 0x5e, 0xd6, 0x53, 0x57, 0xbe, 0xac, 0xa7, 0x7f, 0x2e, 0x2f, 0xeb, |
|
17312 |
- 0xea, 0xaf, 0x03, 0x6c, 0x59, 0x36, 0xe9, 0x8b, 0xbb, 0xa6, 0xb8, 0xfa, 0x92, 0xe5, 0x70, 0xf2, |
|
17313 |
- 0xc6, 0x31, 0xc8, 0xe1, 0x5a, 0x0d, 0xcc, 0x68, 0x8c, 0x35, 0xb0, 0x4c, 0xb9, 0x19, 0x39, 0xeb, |
|
17314 |
- 0x11, 0x63, 0x0d, 0x2c, 0x33, 0x7c, 0x4b, 0x4a, 0x5f, 0xf7, 0x96, 0x74, 0x96, 0x80, 0x15, 0x99, |
|
17315 |
- 0xbb, 0x86, 0xe1, 0xf7, 0xdb, 0x90, 0x17, 0x69, 0xec, 0xb4, 0xa0, 0xe3, 0xaf, 0xc9, 0x02, 0xd7, |
|
17316 |
- 0x6a, 0xe0, 0x9c, 0x60, 0xb7, 0x4c, 0xb4, 0x09, 0x05, 0x09, 0x8d, 0xfc, 0x0a, 0x07, 0x04, 0xa9, |
|
17317 |
- 0xcd, 0xcc, 0xff, 0x2e, 0xa4, 0x0f, 0x2c, 0x9b, 0xc8, 0x85, 0x1e, 0x1b, 0x00, 0xa6, 0x0e, 0xd8, |
|
17318 |
- 0x5e, 0xc0, 0x1c, 0x5d, 0xcb, 0x05, 0x97, 0x71, 0xdc, 0x3e, 0x59, 0x76, 0x46, 0xed, 0x13, 0x15, |
|
17319 |
- 0xe8, 0x9c, 0x7d, 0x02, 0xc7, 0xec, 0x13, 0x6c, 0x61, 0x9f, 0x84, 0x46, 0xed, 0x13, 0xa4, 0x9f, |
|
17320 |
- 0x8b, 0x7d, 0x3b, 0x70, 0xb3, 0x66, 0xeb, 0xc6, 0x91, 0x6d, 0x79, 0x3e, 0x31, 0xa3, 0x11, 0xe3, |
|
17321 |
- 0x3e, 0x64, 0x67, 0x92, 0xce, 0xab, 0x2e, 0x67, 0x25, 0x52, 0xfd, 0xb7, 0x04, 0x14, 0xb7, 0x89, |
|
17322 |
- 0x6e, 0xfb, 0x87, 0xd3, 0xab, 0x21, 0x9f, 0x78, 0xbe, 0x3c, 0xac, 0xf8, 0x37, 0xfa, 0x1e, 0xe4, |
|
17323 |
- 0xc2, 0x9c, 0xe4, 0xda, 0x57, 0xb2, 0x10, 0x8a, 0x1e, 0xc0, 0x22, 0xdb, 0x63, 0x74, 0x1c, 0x14, |
|
17324 |
- 0x3b, 0x57, 0x3d, 0xc0, 0x48, 0x24, 0x3b, 0x64, 0x5c, 0xc2, 0x93, 0x10, 0xbe, 0x94, 0x32, 0x38, |
|
17325 |
- 0x68, 0xa2, 0xff, 0x0f, 0x45, 0xfe, 0x7e, 0x10, 0xe4, 0x5c, 0x99, 0xeb, 0x74, 0x16, 0xc4, 0x13, |
|
17326 |
- 0xa0, 0xc8, 0xb7, 0xfe, 0x27, 0x01, 0x6b, 0xbb, 0xfa, 0x64, 0x9f, 0xc8, 0xb0, 0x41, 0x4c, 0x4c, |
|
17327 |
- 0x0c, 0xea, 0x9a, 0xa8, 0x1b, 0x0d, 0x37, 0x57, 0xbc, 0x28, 0xc6, 0x09, 0xc7, 0x47, 0x9d, 0xa0, |
|
17328 |
- 0x00, 0x4b, 0x46, 0x0a, 0xb0, 0x35, 0xc8, 0x38, 0xd4, 0x31, 0x88, 0x8c, 0x45, 0xa2, 0xa1, 0x5a, |
|
17329 |
- 0xd1, 0x50, 0x53, 0x0a, 0x1f, 0xfb, 0xf8, 0x53, 0x5d, 0x9b, 0xfa, 0x61, 0x6f, 0xe8, 0x13, 0x28, |
|
17330 |
- 0xf5, 0x9a, 0x75, 0xdc, 0xec, 0xd7, 0x3a, 0x3f, 0xd4, 0x7a, 0xd5, 0x9d, 0x5e, 0xf5, 0xfe, 0x5d, |
|
17331 |
- 0xad, 0xdb, 0xd9, 0xf9, 0xf4, 0xde, 0x83, 0xbb, 0xdf, 0x53, 0x12, 0xa5, 0xf2, 0xe9, 0x59, 0xf9, |
|
17332 |
- 0x76, 0xbb, 0x5a, 0xdf, 0x11, 0x3b, 0x66, 0x9f, 0x3e, 0xeb, 0xe9, 0xb6, 0xa7, 0xdf, 0xbf, 0xdb, |
|
17333 |
- 0xa5, 0xf6, 0x84, 0x61, 0xd8, 0xb2, 0x2e, 0x46, 0xcf, 0xab, 0xe8, 0x31, 0x9c, 0xb8, 0xf4, 0x18, |
|
17334 |
- 0x9e, 0x9e, 0xe6, 0xc9, 0x4b, 0x4e, 0xf3, 0x2d, 0x58, 0x33, 0x5c, 0xea, 0x79, 0x1a, 0xcb, 0xfe, |
|
17335 |
- 0x89, 0x39, 0x57, 0x5f, 0x7c, 0xe3, 0xe2, 0x7c, 0x73, 0xb5, 0xce, 0xf8, 0x3d, 0xce, 0x96, 0xea, |
|
17336 |
- 0x57, 0x8d, 0x08, 0x89, 0xf7, 0xa4, 0xfe, 0x7e, 0x8a, 0x25, 0x52, 0xd6, 0xb1, 0x65, 0x93, 0x01, |
|
17337 |
- 0xf1, 0xd0, 0x13, 0x58, 0x31, 0x5c, 0x62, 0xb2, 0xb4, 0x5e, 0xb7, 0xa3, 0xbf, 0xe6, 0xfc, 0x7f, |
|
17338 |
- 0xb1, 0x39, 0x4d, 0x28, 0x58, 0xa9, 0x87, 0x52, 0xbd, 0x11, 0x31, 0xf0, 0xb2, 0x31, 0xd3, 0x46, |
|
17339 |
- 0x9f, 0xc1, 0x8a, 0x47, 0x6c, 0xcb, 0x19, 0x3f, 0xd3, 0x0c, 0xea, 0xf8, 0xe4, 0x59, 0xf0, 0x6e, |
|
17340 |
- 0x75, 0x9d, 0xde, 0x5e, 0x73, 0x87, 0x49, 0xd5, 0x85, 0x50, 0x0d, 0x5d, 0x9c, 0x6f, 0x2e, 0xcf, |
|
17341 |
- 0xd2, 0xf0, 0xb2, 0xd4, 0x2c, 0xdb, 0xa5, 0x36, 0x2c, 0xcf, 0x5a, 0x83, 0xd6, 0xe4, 0xde, 0xe7, |
|
17342 |
- 0x21, 0x24, 0xd8, 0xdb, 0xe8, 0x36, 0xe4, 0x5c, 0x32, 0xb0, 0x3c, 0xdf, 0x15, 0x6e, 0x66, 0x9c, |
|
17343 |
- 0x90, 0xc2, 0x76, 0xbe, 0xf8, 0x29, 0x4e, 0xe9, 0x57, 0x61, 0xae, 0x47, 0xb6, 0x59, 0x4c, 0xcb, |
|
17344 |
- 0xd3, 0xf7, 0xa5, 0xca, 0x1c, 0x0e, 0x9a, 0x6c, 0x0d, 0x8e, 0xbd, 0x30, 0x51, 0xe3, 0xdf, 0x8c, |
|
17345 |
- 0xc6, 0x33, 0x0a, 0xf9, 0xc3, 0x24, 0x9e, 0x33, 0x04, 0xbf, 0x70, 0x4c, 0x47, 0x7e, 0xe1, 0xb8, |
|
17346 |
- 0x06, 0x19, 0x9b, 0x1c, 0x13, 0x5b, 0x9c, 0xe5, 0x58, 0x34, 0xde, 0xfe, 0x59, 0x0a, 0xf2, 0xe1, |
|
17347 |
- 0x1b, 0x0d, 0x3b, 0x09, 0xda, 0xcd, 0xa7, 0xc1, 0x5a, 0x0d, 0xe9, 0x6d, 0x72, 0x82, 0x5e, 0x9b, |
|
17348 |
- 0xde, 0x29, 0x7d, 0x22, 0x1e, 0xa5, 0x43, 0x76, 0x70, 0x9f, 0xf4, 0x06, 0xe4, 0xaa, 0xbd, 0x5e, |
|
17349 |
- 0xeb, 0x51, 0xbb, 0xd9, 0x50, 0x3e, 0x4f, 0x94, 0xbe, 0x71, 0x7a, 0x56, 0x5e, 0x0d, 0x41, 0x55, |
|
17350 |
- 0x4f, 0x2c, 0x25, 0x8e, 0xaa, 0xd7, 0x9b, 0xdd, 0x7e, 0xb3, 0xa1, 0x3c, 0x4f, 0xce, 0xa3, 0xf8, |
|
17351 |
- 0x1d, 0x09, 0xff, 0x69, 0x49, 0xbe, 0x8b, 0x9b, 0xdd, 0x2a, 0x66, 0x1d, 0x7e, 0x9e, 0x14, 0x57, |
|
17352 |
- 0x5d, 0xd3, 0x1e, 0x5d, 0x32, 0xd2, 0x5d, 0xd6, 0xe7, 0x46, 0xf0, 0x13, 0xab, 0xe7, 0x29, 0xf1, |
|
17353 |
- 0xf3, 0x83, 0xe9, 0x83, 0x13, 0xd1, 0xcd, 0x09, 0xeb, 0x8d, 0xbf, 0xf4, 0x71, 0x35, 0xa9, 0xb9, |
|
17354 |
- 0xde, 0x7a, 0x2c, 0x92, 0x30, 0x2d, 0x2a, 0x2c, 0xe2, 0xbd, 0x76, 0x9b, 0x81, 0x9e, 0xa7, 0xe7, |
|
17355 |
- 0x46, 0x87, 0xc7, 0x0e, 0xab, 0x7f, 0xd1, 0x1d, 0xc8, 0x05, 0x0f, 0x81, 0xca, 0xe7, 0xe9, 0x39, |
|
17356 |
- 0x83, 0xea, 0xc1, 0x2b, 0x26, 0xef, 0x70, 0x7b, 0xaf, 0xcf, 0x7f, 0x01, 0xf6, 0x3c, 0x33, 0xdf, |
|
17357 |
- 0xe1, 0xe1, 0xd8, 0x37, 0xe9, 0x89, 0xc3, 0x76, 0xa0, 0xbc, 0x55, 0xfb, 0x3c, 0x23, 0xae, 0x20, |
|
17358 |
- 0x42, 0x8c, 0xbc, 0x52, 0x7b, 0x03, 0x72, 0xb8, 0xf9, 0x03, 0xf1, 0x63, 0xb1, 0xe7, 0xd9, 0x39, |
|
17359 |
- 0x3d, 0x98, 0x7c, 0x46, 0x0c, 0xd9, 0x5b, 0x07, 0x77, 0xb7, 0xab, 0xdc, 0xe5, 0xf3, 0xa8, 0x8e, |
|
17360 |
- 0x3b, 0x3a, 0xd4, 0x1d, 0x62, 0x4e, 0x7f, 0x83, 0x11, 0xb2, 0xde, 0xfe, 0x25, 0xc8, 0x05, 0x79, |
|
17361 |
- 0x26, 0xda, 0x80, 0xec, 0xd3, 0x0e, 0x7e, 0xdc, 0xc4, 0xca, 0x82, 0xf0, 0x61, 0xc0, 0x79, 0x2a, |
|
17362 |
- 0x2a, 0x84, 0x32, 0x2c, 0xee, 0x56, 0xdb, 0xd5, 0x47, 0x4d, 0x1c, 0x5c, 0x78, 0x07, 0x00, 0x99, |
|
17363 |
- 0x2c, 0x95, 0x14, 0xd9, 0x41, 0xa8, 0xb3, 0xb6, 0xfe, 0xc5, 0x97, 0x1b, 0x0b, 0x3f, 0xfd, 0x72, |
|
17364 |
- 0x63, 0xe1, 0xf9, 0xc5, 0x46, 0xe2, 0x8b, 0x8b, 0x8d, 0xc4, 0x4f, 0x2e, 0x36, 0x12, 0xff, 0x7a, |
|
17365 |
- 0xb1, 0x91, 0xd8, 0xcf, 0xf2, 0x90, 0xfe, 0xe0, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x48, 0x1c, |
|
17366 |
- 0x30, 0x25, 0x28, 0x30, 0x00, 0x00, |
|
17066 |
+ 0x56, 0xbf, 0xeb, 0xd3, 0x55, 0xaf, 0xca, 0x76, 0x3a, 0xda, 0xdb, 0xe3, 0xae, 0xed, 0xb1, 0x3d, |
|
17067 |
+ 0x39, 0xd3, 0x3b, 0x33, 0xbd, 0xf3, 0xaf, 0xfe, 0x9a, 0x19, 0xf5, 0xcc, 0xfc, 0xe7, 0xa3, 0xbe, |
|
17068 |
+ 0xdc, 0xae, 0x6d, 0xbb, 0xaa, 0x14, 0x55, 0xee, 0xde, 0x41, 0x82, 0x54, 0x3a, 0x33, 0x5c, 0xce, |
|
17069 |
+ 0x71, 0x56, 0x46, 0x91, 0x99, 0x65, 0x77, 0xb1, 0x20, 0x5a, 0x1c, 0x00, 0xf9, 0x04, 0xb7, 0x45, |
|
17070 |
+ 0xc8, 0x5c, 0xe0, 0x84, 0x90, 0x38, 0x80, 0x84, 0xe0, 0x34, 0x48, 0x1c, 0xe6, 0xc6, 0x02, 0x12, |
|
17071 |
+ 0x5a, 0x81, 0x64, 0x18, 0x1f, 0xb8, 0x21, 0xb8, 0xac, 0xb8, 0x80, 0x84, 0xe2, 0x23, 0xb3, 0xb2, |
|
17072 |
+ 0xaa, 0xd3, 0x76, 0x0f, 0xb3, 0x17, 0x3b, 0xe3, 0xbd, 0xdf, 0x7b, 0xf1, 0xe2, 0x45, 0xc4, 0x8b, |
|
17073 |
+ 0xf7, 0x22, 0x0a, 0x6e, 0xf7, 0x2d, 0xff, 0x60, 0xb4, 0x57, 0x36, 0xe8, 0xe0, 0x8e, 0x49, 0x8d, |
|
17074 |
+ 0x43, 0xe2, 0xde, 0xf1, 0x8e, 0x75, 0x77, 0x70, 0x68, 0xf9, 0x77, 0xf4, 0xa1, 0x75, 0xc7, 0x1f, |
|
17075 |
+ 0x0f, 0x89, 0x57, 0x1e, 0xba, 0xd4, 0xa7, 0x08, 0x09, 0x40, 0x39, 0x00, 0x94, 0x8f, 0xee, 0x95, |
|
17076 |
+ 0xd6, 0xfb, 0x94, 0xf6, 0x6d, 0x72, 0x87, 0x23, 0xf6, 0x46, 0xfb, 0x77, 0x7c, 0x6b, 0x40, 0x3c, |
|
17077 |
+ 0x5f, 0x1f, 0x0c, 0x85, 0x50, 0x69, 0x6d, 0x16, 0x60, 0x8e, 0x5c, 0xdd, 0xb7, 0xa8, 0x23, 0xf9, |
|
17078 |
+ 0x2b, 0x7d, 0xda, 0xa7, 0xfc, 0xf3, 0x0e, 0xfb, 0x12, 0x54, 0x75, 0x1d, 0xe6, 0x9f, 0x10, 0xd7, |
|
17079 |
+ 0xb3, 0xa8, 0x83, 0x56, 0x20, 0x63, 0x39, 0x26, 0x79, 0xb6, 0x9a, 0xd8, 0x48, 0xbc, 0x95, 0xc6, |
|
17080 |
+ 0xa2, 0xa1, 0xde, 0x05, 0x68, 0xb2, 0x8f, 0x86, 0xe3, 0xbb, 0x63, 0xa4, 0x40, 0xea, 0x90, 0x8c, |
|
17081 |
+ 0x39, 0x22, 0x8f, 0xd9, 0x27, 0xa3, 0x1c, 0xe9, 0xf6, 0x6a, 0x52, 0x50, 0x8e, 0x74, 0x5b, 0xfd, |
|
17082 |
+ 0x3a, 0x01, 0x85, 0x8a, 0xe3, 0x50, 0x9f, 0xf7, 0xee, 0x21, 0x04, 0x69, 0x47, 0x1f, 0x10, 0x29, |
|
17083 |
+ 0xc4, 0xbf, 0x51, 0x0d, 0xb2, 0xb6, 0xbe, 0x47, 0x6c, 0x6f, 0x35, 0xb9, 0x91, 0x7a, 0xab, 0x70, |
|
17084 |
+ 0xff, 0xfb, 0xe5, 0x17, 0x87, 0x5c, 0x8e, 0x28, 0x29, 0x6f, 0x73, 0x34, 0x37, 0x02, 0x4b, 0x51, |
|
17085 |
+ 0xf4, 0x09, 0xcc, 0x5b, 0x8e, 0x69, 0x19, 0xc4, 0x5b, 0x4d, 0x73, 0x2d, 0x6b, 0x71, 0x5a, 0x26, |
|
17086 |
+ 0xd6, 0x57, 0xd3, 0x5f, 0x9d, 0xad, 0xcf, 0xe1, 0x40, 0xa8, 0xf4, 0x01, 0x14, 0x22, 0x6a, 0x63, |
|
17087 |
+ 0xc6, 0xb6, 0x02, 0x99, 0x23, 0xdd, 0x1e, 0x11, 0x39, 0x3a, 0xd1, 0xf8, 0x30, 0xf9, 0x30, 0xa1, |
|
17088 |
+ 0x7e, 0x06, 0x2b, 0x2d, 0x7d, 0x40, 0xcc, 0x47, 0xc4, 0x21, 0xae, 0x65, 0x60, 0xe2, 0xd1, 0x91, |
|
17089 |
+ 0x6b, 0x10, 0x36, 0xd6, 0x43, 0xcb, 0x31, 0x83, 0xb1, 0xb2, 0xef, 0x78, 0x2d, 0x6a, 0x0d, 0x5e, |
|
17090 |
+ 0xa9, 0x5b, 0x9e, 0xe1, 0x12, 0x9f, 0x7c, 0x63, 0x25, 0xa9, 0x40, 0xc9, 0x59, 0x02, 0x96, 0x66, |
|
17091 |
+ 0xa5, 0x7f, 0x01, 0xae, 0x31, 0x17, 0x9b, 0x9a, 0x2b, 0x29, 0x9a, 0x37, 0x24, 0x06, 0x57, 0x56, |
|
17092 |
+ 0xb8, 0xff, 0x56, 0x9c, 0x87, 0xe2, 0x46, 0xb2, 0x35, 0x87, 0x97, 0xb9, 0x9a, 0x80, 0xd0, 0x1d, |
|
17093 |
+ 0x12, 0x03, 0x19, 0x70, 0xdd, 0x94, 0x46, 0xcf, 0xa8, 0x4f, 0x72, 0xf5, 0xb1, 0xd3, 0x78, 0xc1, |
|
17094 |
+ 0x30, 0xb7, 0xe6, 0xf0, 0x4a, 0xa0, 0x2c, 0xda, 0x49, 0x15, 0x20, 0x17, 0xe8, 0x56, 0x7f, 0x9c, |
|
17095 |
+ 0x80, 0x7c, 0xc0, 0xf4, 0xd0, 0xdb, 0x90, 0x77, 0x74, 0x87, 0x6a, 0xc6, 0x70, 0xe4, 0xf1, 0x01, |
|
17096 |
+ 0xa5, 0xaa, 0xc5, 0xf3, 0xb3, 0xf5, 0x5c, 0x4b, 0x77, 0x68, 0xad, 0xb3, 0xeb, 0xe1, 0x1c, 0x63, |
|
17097 |
+ 0xd7, 0x86, 0x23, 0x0f, 0xbd, 0x06, 0xc5, 0x01, 0x19, 0x50, 0x77, 0xac, 0xed, 0x8d, 0x7d, 0xe2, |
|
17098 |
+ 0x49, 0xb7, 0x15, 0x04, 0xad, 0xca, 0x48, 0xe8, 0x63, 0x98, 0xef, 0x0b, 0x93, 0x56, 0x53, 0x7c, |
|
17099 |
+ 0xf9, 0xbc, 0x1e, 0x67, 0xfd, 0x8c, 0xd5, 0x38, 0x90, 0x51, 0x7f, 0x27, 0x01, 0x2b, 0x21, 0x95, |
|
17100 |
+ 0xfc, 0xf2, 0xc8, 0x72, 0xc9, 0x80, 0x38, 0xbe, 0x87, 0xde, 0x83, 0xac, 0x6d, 0x0d, 0x2c, 0xdf, |
|
17101 |
+ 0x93, 0x3e, 0x7f, 0x35, 0x4e, 0x6d, 0x38, 0x28, 0x2c, 0xc1, 0xa8, 0x02, 0x45, 0x97, 0x78, 0xc4, |
|
17102 |
+ 0x3d, 0x12, 0x2b, 0x5e, 0x7a, 0xf4, 0x0a, 0xe1, 0x29, 0x11, 0x75, 0x13, 0x72, 0x1d, 0x5b, 0xf7, |
|
17103 |
+ 0xf7, 0xa9, 0x3b, 0x40, 0x2a, 0x14, 0x75, 0xd7, 0x38, 0xb0, 0x7c, 0x62, 0xf8, 0x23, 0x37, 0xd8, |
|
17104 |
+ 0x7d, 0x53, 0x34, 0x74, 0x1d, 0x92, 0x54, 0x74, 0x94, 0xaf, 0x66, 0xcf, 0xcf, 0xd6, 0x93, 0xed, |
|
17105 |
+ 0x2e, 0x4e, 0x52, 0x4f, 0xfd, 0x08, 0x96, 0x3b, 0xf6, 0xa8, 0x6f, 0x39, 0x75, 0xe2, 0x19, 0xae, |
|
17106 |
+ 0x35, 0x64, 0xda, 0xd9, 0xaa, 0x64, 0x31, 0x2a, 0x58, 0x95, 0xec, 0x3b, 0xdc, 0xda, 0xc9, 0xc9, |
|
17107 |
+ 0xd6, 0x56, 0x7f, 0x2b, 0x09, 0xcb, 0x0d, 0xa7, 0x6f, 0x39, 0x24, 0x2a, 0x7d, 0x0b, 0x16, 0x09, |
|
17108 |
+ 0x27, 0x6a, 0x47, 0x22, 0xdc, 0x48, 0x3d, 0x0b, 0x82, 0x1a, 0xc4, 0xa0, 0xe6, 0x4c, 0x5c, 0xb8, |
|
17109 |
+ 0x17, 0x37, 0xfc, 0x17, 0xb4, 0xc7, 0x46, 0x87, 0x06, 0xcc, 0x0f, 0xf9, 0x20, 0x3c, 0x39, 0xbd, |
|
17110 |
+ 0xb7, 0xe2, 0x74, 0xbd, 0x30, 0xce, 0x20, 0x48, 0x48, 0xd9, 0x6f, 0x13, 0x24, 0xfe, 0x24, 0x09, |
|
17111 |
+ 0x4b, 0x2d, 0x6a, 0x4e, 0xf9, 0xa1, 0x04, 0xb9, 0x03, 0xea, 0xf9, 0x91, 0x80, 0x18, 0xb6, 0xd1, |
|
17112 |
+ 0x43, 0xc8, 0x0d, 0xe5, 0xf4, 0xc9, 0xd9, 0xbf, 0x19, 0x6f, 0xb2, 0xc0, 0xe0, 0x10, 0x8d, 0x3e, |
|
17113 |
+ 0x82, 0x7c, 0xb0, 0x65, 0xd8, 0x68, 0x5f, 0x62, 0xe1, 0x4c, 0xf0, 0xe8, 0x63, 0xc8, 0x8a, 0x49, |
|
17114 |
+ 0x58, 0x4d, 0x73, 0xc9, 0x5b, 0x2f, 0xe5, 0x73, 0x2c, 0x85, 0xd0, 0x23, 0xc8, 0xf9, 0xb6, 0xa7, |
|
17115 |
+ 0x59, 0xce, 0x3e, 0x5d, 0xcd, 0x70, 0x05, 0xeb, 0xb1, 0x41, 0x86, 0x9a, 0xa4, 0xb7, 0xdd, 0x6d, |
|
17116 |
+ 0x3a, 0xfb, 0xb4, 0x5a, 0x38, 0x3f, 0x5b, 0x9f, 0x97, 0x0d, 0x3c, 0xef, 0xdb, 0x1e, 0xfb, 0x50, |
|
17117 |
+ 0x7f, 0x37, 0x01, 0x85, 0x08, 0x0a, 0xbd, 0x0a, 0xe0, 0xbb, 0x23, 0xcf, 0xd7, 0x5c, 0x4a, 0x7d, |
|
17118 |
+ 0xee, 0xac, 0x22, 0xce, 0x73, 0x0a, 0xa6, 0xd4, 0x47, 0x65, 0xb8, 0x66, 0x10, 0xd7, 0xd7, 0x2c, |
|
17119 |
+ 0xcf, 0x1b, 0x11, 0x57, 0xf3, 0x46, 0x7b, 0x5f, 0x10, 0xc3, 0xe7, 0x8e, 0x2b, 0xe2, 0x65, 0xc6, |
|
17120 |
+ 0x6a, 0x72, 0x4e, 0x57, 0x30, 0xd0, 0x03, 0xb8, 0x1e, 0xc5, 0x0f, 0x47, 0x7b, 0xb6, 0x65, 0x68, |
|
17121 |
+ 0x6c, 0x32, 0x53, 0x5c, 0xe4, 0xda, 0x44, 0xa4, 0xc3, 0x79, 0x8f, 0xc9, 0x58, 0xfd, 0x69, 0x02, |
|
17122 |
+ 0x14, 0xac, 0xef, 0xfb, 0x3b, 0x64, 0xb0, 0x47, 0xdc, 0xae, 0xaf, 0xfb, 0x23, 0x0f, 0x5d, 0x87, |
|
17123 |
+ 0xac, 0x4d, 0x74, 0x93, 0xb8, 0xdc, 0xa8, 0x1c, 0x96, 0x2d, 0xb4, 0xcb, 0x76, 0xb0, 0x6e, 0x1c, |
|
17124 |
+ 0xe8, 0x7b, 0x96, 0x6d, 0xf9, 0x63, 0x6e, 0xca, 0x62, 0xfc, 0x12, 0x9e, 0xd5, 0x59, 0xc6, 0x11, |
|
17125 |
+ 0x41, 0x3c, 0xa5, 0x06, 0xad, 0xc2, 0xfc, 0x80, 0x78, 0x9e, 0xde, 0x27, 0xdc, 0xd2, 0x3c, 0x0e, |
|
17126 |
+ 0x9a, 0xea, 0x47, 0x50, 0x8c, 0xca, 0xa1, 0x02, 0xcc, 0xef, 0xb6, 0x1e, 0xb7, 0xda, 0x4f, 0x5b, |
|
17127 |
+ 0xca, 0x1c, 0x5a, 0x82, 0xc2, 0x6e, 0x0b, 0x37, 0x2a, 0xb5, 0xad, 0x4a, 0x75, 0xbb, 0xa1, 0x24, |
|
17128 |
+ 0xd0, 0x02, 0xe4, 0x27, 0xcd, 0xa4, 0xfa, 0x67, 0x09, 0x00, 0xe6, 0x6e, 0x39, 0xa8, 0x0f, 0x21, |
|
17129 |
+ 0xe3, 0xf9, 0xba, 0x2f, 0x56, 0xe5, 0xe2, 0xfd, 0x37, 0x2e, 0x9a, 0x43, 0x69, 0x2f, 0xfb, 0x47, |
|
17130 |
+ 0xb0, 0x10, 0x89, 0x5a, 0x98, 0x9c, 0xb2, 0x90, 0x05, 0x08, 0xdd, 0x34, 0x5d, 0x69, 0x38, 0xff, |
|
17131 |
+ 0x56, 0x3f, 0x82, 0x0c, 0x97, 0x9e, 0x36, 0x37, 0x07, 0xe9, 0x3a, 0xfb, 0x4a, 0xa0, 0x3c, 0x64, |
|
17132 |
+ 0x70, 0xa3, 0x52, 0xff, 0x5c, 0x49, 0x22, 0x05, 0x8a, 0xf5, 0x66, 0xb7, 0xd6, 0x6e, 0xb5, 0x1a, |
|
17133 |
+ 0xb5, 0x5e, 0xa3, 0xae, 0xa4, 0xd4, 0x5b, 0x90, 0x69, 0x0e, 0x98, 0xe6, 0x9b, 0x6c, 0xc9, 0xef, |
|
17134 |
+ 0x13, 0x97, 0x38, 0x46, 0xb0, 0x93, 0x26, 0x04, 0xf5, 0x27, 0x79, 0xc8, 0xec, 0xd0, 0x91, 0xe3, |
|
17135 |
+ 0xa3, 0xfb, 0x91, 0xb0, 0xb5, 0x18, 0x9f, 0x21, 0x70, 0x60, 0xb9, 0x37, 0x1e, 0x12, 0x19, 0xd6, |
|
17136 |
+ 0xae, 0x43, 0x56, 0x6c, 0x0e, 0x39, 0x1c, 0xd9, 0x62, 0x74, 0x5f, 0x77, 0xfb, 0xc4, 0x97, 0xe3, |
|
17137 |
+ 0x91, 0x2d, 0xf4, 0x16, 0x3b, 0xb1, 0x74, 0x93, 0x3a, 0xf6, 0x98, 0xef, 0xa1, 0x9c, 0x38, 0x96, |
|
17138 |
+ 0x30, 0xd1, 0xcd, 0xb6, 0x63, 0x8f, 0x71, 0xc8, 0x45, 0x5b, 0x50, 0xdc, 0xb3, 0x1c, 0x53, 0xa3, |
|
17139 |
+ 0x43, 0x11, 0xe4, 0x33, 0x17, 0xef, 0x38, 0x61, 0x55, 0xd5, 0x72, 0xcc, 0xb6, 0x00, 0xe3, 0xc2, |
|
17140 |
+ 0xde, 0xa4, 0x81, 0x5a, 0xb0, 0x78, 0x44, 0xed, 0xd1, 0x80, 0x84, 0xba, 0xb2, 0x5c, 0xd7, 0x9b, |
|
17141 |
+ 0x17, 0xeb, 0x7a, 0xc2, 0xf1, 0x81, 0xb6, 0x85, 0xa3, 0x68, 0x13, 0x3d, 0x86, 0x05, 0x7f, 0x30, |
|
17142 |
+ 0xdc, 0xf7, 0x42, 0x75, 0xf3, 0x5c, 0xdd, 0xf7, 0x2e, 0x71, 0x18, 0x83, 0x07, 0xda, 0x8a, 0x7e, |
|
17143 |
+ 0xa4, 0x55, 0xfa, 0x8d, 0x14, 0x14, 0x22, 0x96, 0xa3, 0x2e, 0x14, 0x86, 0x2e, 0x1d, 0xea, 0x7d, |
|
17144 |
+ 0x7e, 0x50, 0xc9, 0xb9, 0xb8, 0xf7, 0x52, 0xa3, 0x2e, 0x77, 0x26, 0x82, 0x38, 0xaa, 0x45, 0x3d, |
|
17145 |
+ 0x4d, 0x42, 0x21, 0xc2, 0x44, 0xb7, 0x21, 0x87, 0x3b, 0xb8, 0xf9, 0xa4, 0xd2, 0x6b, 0x28, 0x73, |
|
17146 |
+ 0xa5, 0x9b, 0x27, 0xa7, 0x1b, 0xab, 0x5c, 0x5b, 0x54, 0x41, 0xc7, 0xb5, 0x8e, 0xd8, 0xd2, 0x7b, |
|
17147 |
+ 0x0b, 0xe6, 0x03, 0x68, 0xa2, 0xf4, 0xdd, 0x93, 0xd3, 0x8d, 0x57, 0x66, 0xa1, 0x11, 0x24, 0xee, |
|
17148 |
+ 0x6e, 0x55, 0x70, 0xa3, 0xae, 0x24, 0xe3, 0x91, 0xb8, 0x7b, 0xa0, 0xbb, 0xc4, 0x44, 0xdf, 0x83, |
|
17149 |
+ 0xac, 0x04, 0xa6, 0x4a, 0xa5, 0x93, 0xd3, 0x8d, 0xeb, 0xb3, 0xc0, 0x09, 0x0e, 0x77, 0xb7, 0x2b, |
|
17150 |
+ 0x4f, 0x1a, 0x4a, 0x3a, 0x1e, 0x87, 0xbb, 0xb6, 0x7e, 0x44, 0xd0, 0x1b, 0x90, 0x11, 0xb0, 0x4c, |
|
17151 |
+ 0xe9, 0xc6, 0xc9, 0xe9, 0xc6, 0x77, 0x5e, 0x50, 0xc7, 0x50, 0xa5, 0xd5, 0xdf, 0xfe, 0xc3, 0xb5, |
|
17152 |
+ 0xb9, 0xbf, 0xfa, 0xa3, 0x35, 0x65, 0x96, 0x5d, 0xfa, 0xef, 0x04, 0x2c, 0x4c, 0x4d, 0x39, 0x52, |
|
17153 |
+ 0x21, 0xeb, 0x50, 0x83, 0x0e, 0xc5, 0xf9, 0x95, 0xab, 0xc2, 0xf9, 0xd9, 0x7a, 0xb6, 0x45, 0x6b, |
|
17154 |
+ 0x74, 0x38, 0xc6, 0x92, 0x83, 0x1e, 0xcf, 0x9c, 0xc0, 0x0f, 0x5e, 0x72, 0x3d, 0xc5, 0x9e, 0xc1, |
|
17155 |
+ 0x9f, 0xc2, 0x82, 0xe9, 0x5a, 0x47, 0xc4, 0xd5, 0x0c, 0xea, 0xec, 0x5b, 0x7d, 0x79, 0x36, 0x95, |
|
17156 |
+ 0x62, 0xd3, 0x44, 0x0e, 0xc4, 0x45, 0x21, 0x50, 0xe3, 0xf8, 0x6f, 0x71, 0xfa, 0x96, 0x9e, 0x40, |
|
17157 |
+ 0x31, 0xba, 0x42, 0xd9, 0x71, 0xe2, 0x59, 0xbf, 0x42, 0x64, 0x3e, 0xc8, 0xb3, 0x47, 0x9c, 0x67, |
|
17158 |
+ 0x14, 0x91, 0x0d, 0xbe, 0x09, 0xe9, 0x01, 0x35, 0x85, 0x9e, 0x85, 0xea, 0x35, 0x96, 0x04, 0xfc, |
|
17159 |
+ 0xd3, 0xd9, 0x7a, 0x81, 0x7a, 0xe5, 0x4d, 0xcb, 0x26, 0x3b, 0xd4, 0x24, 0x98, 0x03, 0xd4, 0x23, |
|
17160 |
+ 0x48, 0xb3, 0x50, 0x81, 0xbe, 0x0b, 0xe9, 0x6a, 0xb3, 0x55, 0x57, 0xe6, 0x4a, 0xcb, 0x27, 0xa7, |
|
17161 |
+ 0x1b, 0x0b, 0xdc, 0x25, 0x8c, 0xc1, 0xd6, 0x2e, 0x5a, 0x87, 0xec, 0x93, 0xf6, 0xf6, 0xee, 0x0e, |
|
17162 |
+ 0x5b, 0x5e, 0xd7, 0x4e, 0x4e, 0x37, 0x96, 0x42, 0xb6, 0x70, 0x1a, 0x7a, 0x15, 0x32, 0xbd, 0x9d, |
|
17163 |
+ 0xce, 0x66, 0x57, 0x49, 0x96, 0xd0, 0xc9, 0xe9, 0xc6, 0x62, 0xc8, 0xe7, 0x36, 0x97, 0x96, 0xe5, |
|
17164 |
+ 0xac, 0xe6, 0x43, 0xba, 0xfa, 0xb3, 0x24, 0x2c, 0x60, 0x56, 0xf1, 0xb9, 0x7e, 0x87, 0xda, 0x96, |
|
17165 |
+ 0x31, 0x46, 0x1d, 0xc8, 0x1b, 0xd4, 0x31, 0xad, 0xc8, 0x9e, 0xba, 0x7f, 0xc1, 0xa9, 0x3f, 0x91, |
|
17166 |
+ 0x0a, 0x5a, 0xb5, 0x40, 0x12, 0x4f, 0x94, 0xa0, 0x3b, 0x90, 0x31, 0x89, 0xad, 0x8f, 0x65, 0xfa, |
|
17167 |
+ 0x71, 0xa3, 0x2c, 0x6a, 0xca, 0x72, 0x50, 0x53, 0x96, 0xeb, 0xb2, 0xa6, 0xc4, 0x02, 0xc7, 0xd3, |
|
17168 |
+ 0x6c, 0xfd, 0x99, 0xa6, 0xfb, 0x3e, 0x19, 0x0c, 0x7d, 0x91, 0x7b, 0xa4, 0x71, 0x61, 0xa0, 0x3f, |
|
17169 |
+ 0xab, 0x48, 0x12, 0xba, 0x07, 0xd9, 0x63, 0xcb, 0x31, 0xe9, 0xb1, 0x4c, 0x2f, 0x2e, 0x51, 0x2a, |
|
17170 |
+ 0x81, 0xea, 0x09, 0x3b, 0x75, 0x67, 0xcc, 0x64, 0xfe, 0x6e, 0xb5, 0x5b, 0x8d, 0xc0, 0xdf, 0x92, |
|
17171 |
+ 0xdf, 0x76, 0x5a, 0xd4, 0x61, 0x7b, 0x05, 0xda, 0x2d, 0x6d, 0xb3, 0xd2, 0xdc, 0xde, 0xc5, 0xcc, |
|
17172 |
+ 0xe7, 0x2b, 0x27, 0xa7, 0x1b, 0x4a, 0x08, 0xd9, 0xd4, 0x2d, 0x9b, 0xe5, 0xbb, 0x37, 0x20, 0x55, |
|
17173 |
+ 0x69, 0x7d, 0xae, 0x24, 0x4b, 0xca, 0xc9, 0xe9, 0x46, 0x31, 0x64, 0x57, 0x9c, 0xf1, 0x64, 0x1b, |
|
17174 |
+ 0xcd, 0xf6, 0xab, 0xfe, 0x6d, 0x0a, 0x8a, 0xbb, 0x43, 0x53, 0xf7, 0x89, 0x58, 0x93, 0x68, 0x03, |
|
17175 |
+ 0x0a, 0x43, 0xdd, 0xd5, 0x6d, 0x9b, 0xd8, 0x96, 0x37, 0x90, 0xd5, 0x72, 0x94, 0x84, 0x3e, 0x78, |
|
17176 |
+ 0x59, 0x37, 0x56, 0x73, 0x6c, 0x9d, 0xfd, 0xf8, 0x5f, 0xd6, 0x13, 0x81, 0x43, 0x77, 0x61, 0x71, |
|
17177 |
+ 0x5f, 0x58, 0xab, 0xe9, 0x06, 0x9f, 0xd8, 0x14, 0x9f, 0xd8, 0x72, 0xdc, 0xc4, 0x46, 0xcd, 0x2a, |
|
17178 |
+ 0xcb, 0x41, 0x56, 0xb8, 0x14, 0x5e, 0xd8, 0x8f, 0x36, 0xd1, 0x03, 0x98, 0x1f, 0x50, 0xc7, 0xf2, |
|
17179 |
+ 0xa9, 0x7b, 0xf5, 0x2c, 0x04, 0x48, 0x74, 0x1b, 0x96, 0xd9, 0xe4, 0x06, 0xf6, 0x70, 0x36, 0x3f, |
|
17180 |
+ 0xb1, 0x92, 0x78, 0x69, 0xa0, 0x3f, 0x93, 0x1d, 0x62, 0x46, 0x46, 0x55, 0xc8, 0x50, 0x97, 0xa5, |
|
17181 |
+ 0x44, 0x59, 0x6e, 0xee, 0x3b, 0x57, 0x9a, 0x2b, 0x1a, 0x6d, 0x26, 0x83, 0x85, 0xa8, 0xfa, 0x3e, |
|
17182 |
+ 0x2c, 0x4c, 0x0d, 0x82, 0x65, 0x02, 0x9d, 0xca, 0x6e, 0xb7, 0xa1, 0xcc, 0xa1, 0x22, 0xe4, 0x6a, |
|
17183 |
+ 0xed, 0x56, 0xaf, 0xd9, 0xda, 0x65, 0xa9, 0x4c, 0x11, 0x72, 0xb8, 0xbd, 0xbd, 0x5d, 0xad, 0xd4, |
|
17184 |
+ 0x1e, 0x2b, 0x49, 0xb5, 0x0c, 0x85, 0x88, 0x36, 0xb4, 0x08, 0xd0, 0xed, 0xb5, 0x3b, 0xda, 0x66, |
|
17185 |
+ 0x13, 0x77, 0x7b, 0x22, 0x11, 0xea, 0xf6, 0x2a, 0xb8, 0x27, 0x09, 0x09, 0xf5, 0x3f, 0x92, 0xc1, |
|
17186 |
+ 0x8c, 0xca, 0xdc, 0xa7, 0x3a, 0x9d, 0xfb, 0x5c, 0x62, 0xbc, 0xcc, 0x7e, 0x26, 0x8d, 0x30, 0x07, |
|
17187 |
+ 0xfa, 0x00, 0x80, 0x2f, 0x1c, 0x62, 0x6a, 0xba, 0x2f, 0x27, 0xbe, 0xf4, 0x82, 0x93, 0x7b, 0xc1, |
|
17188 |
+ 0xa5, 0x0d, 0xce, 0x4b, 0x74, 0xc5, 0x47, 0x1f, 0x43, 0xd1, 0xa0, 0x83, 0xa1, 0x4d, 0xa4, 0x70, |
|
17189 |
+ 0xea, 0x4a, 0xe1, 0x42, 0x88, 0xaf, 0xf8, 0xd1, 0xec, 0x2b, 0x3d, 0x9d, 0x1f, 0xfe, 0x66, 0x22, |
|
17190 |
+ 0xf0, 0x4c, 0x4c, 0xc2, 0x55, 0x84, 0xdc, 0x6e, 0xa7, 0x5e, 0xe9, 0x35, 0x5b, 0x8f, 0x94, 0x04, |
|
17191 |
+ 0x02, 0xc8, 0x72, 0x57, 0xd7, 0x95, 0x24, 0x4b, 0x14, 0x6b, 0xed, 0x9d, 0xce, 0x76, 0x83, 0xa7, |
|
17192 |
+ 0x5c, 0x68, 0x05, 0x94, 0xc0, 0xd9, 0x1a, 0x77, 0x64, 0xa3, 0xae, 0xa4, 0xd1, 0x35, 0x58, 0x0a, |
|
17193 |
+ 0xa9, 0x52, 0x32, 0x83, 0xae, 0x03, 0x0a, 0x89, 0x13, 0x15, 0x59, 0xf5, 0xd7, 0x60, 0xa9, 0x46, |
|
17194 |
+ 0x1d, 0x5f, 0xb7, 0x9c, 0x30, 0x89, 0xbe, 0xcf, 0x06, 0x2d, 0x49, 0x9a, 0x25, 0x2f, 0x3b, 0xaa, |
|
17195 |
+ 0x4b, 0xe7, 0x67, 0xeb, 0x85, 0x10, 0xda, 0xac, 0xb3, 0x91, 0x06, 0x0d, 0x93, 0xed, 0xdf, 0xa1, |
|
17196 |
+ 0x65, 0x72, 0xe7, 0x66, 0xaa, 0xf3, 0xe7, 0x67, 0xeb, 0xa9, 0x4e, 0xb3, 0x8e, 0x19, 0x0d, 0x7d, |
|
17197 |
+ 0x17, 0xf2, 0xe4, 0x99, 0xe5, 0x6b, 0x06, 0x8b, 0xe1, 0xcc, 0x81, 0x19, 0x9c, 0x63, 0x84, 0x1a, |
|
17198 |
+ 0x0b, 0xd9, 0x55, 0x80, 0x0e, 0x75, 0x7d, 0xd9, 0xf3, 0xbb, 0x90, 0x19, 0x52, 0x97, 0x97, 0xe7, |
|
17199 |
+ 0x17, 0x5e, 0x1a, 0x31, 0xb8, 0x58, 0xa8, 0x58, 0x80, 0xd5, 0xdf, 0x4b, 0x01, 0xf4, 0x74, 0xef, |
|
17200 |
+ 0x50, 0x2a, 0x79, 0x08, 0xf9, 0xf0, 0x02, 0x4e, 0xd6, 0xf9, 0x97, 0xce, 0x76, 0x08, 0x46, 0x0f, |
|
17201 |
+ 0x82, 0xc5, 0x26, 0xca, 0x83, 0xd8, 0x3a, 0x2d, 0xe8, 0x28, 0x2e, 0xc3, 0x9e, 0xae, 0x01, 0xd8, |
|
17202 |
+ 0x91, 0x48, 0x5c, 0x57, 0xce, 0x3c, 0xfb, 0x44, 0x35, 0x7e, 0x2c, 0x08, 0xa7, 0xc9, 0x04, 0x33, |
|
17203 |
+ 0xf6, 0x66, 0x63, 0x66, 0x46, 0xb6, 0xe6, 0xf0, 0x44, 0x0e, 0x7d, 0x0a, 0x05, 0x36, 0x6e, 0xcd, |
|
17204 |
+ 0xe3, 0x3c, 0x99, 0x5b, 0x5e, 0xe8, 0x2a, 0xa1, 0x01, 0xc3, 0x70, 0xe2, 0xe5, 0x57, 0x01, 0xf4, |
|
17205 |
+ 0xe1, 0xd0, 0xb6, 0x88, 0xa9, 0xed, 0x8d, 0x79, 0x32, 0x99, 0xc7, 0x79, 0x49, 0xa9, 0x8e, 0xd9, |
|
17206 |
+ 0x76, 0x09, 0xd8, 0xba, 0xbf, 0x9a, 0xbb, 0xda, 0x81, 0x12, 0x5d, 0xf1, 0xab, 0x0a, 0x2c, 0xba, |
|
17207 |
+ 0x23, 0x87, 0x39, 0x54, 0x5a, 0xa7, 0xfe, 0x69, 0x12, 0x5e, 0x69, 0x11, 0xff, 0x98, 0xba, 0x87, |
|
17208 |
+ 0x15, 0xdf, 0xd7, 0x8d, 0x83, 0x01, 0x71, 0xe4, 0xf4, 0x45, 0x72, 0xf6, 0xc4, 0x54, 0xce, 0xbe, |
|
17209 |
+ 0x0a, 0xf3, 0xba, 0x6d, 0xe9, 0x1e, 0x11, 0x89, 0x4e, 0x1e, 0x07, 0x4d, 0x56, 0x59, 0xb0, 0x3a, |
|
17210 |
+ 0x85, 0x78, 0x1e, 0x11, 0x57, 0x07, 0xcc, 0xf0, 0x80, 0x80, 0x7e, 0x04, 0xd7, 0x65, 0x4a, 0xa3, |
|
17211 |
+ 0x87, 0x5d, 0xb1, 0x9c, 0x39, 0xb8, 0x83, 0x6c, 0xc4, 0x16, 0x4e, 0xf1, 0xc6, 0xc9, 0x9c, 0x67, |
|
17212 |
+ 0x42, 0x6e, 0x0f, 0x7d, 0x99, 0x41, 0xad, 0x98, 0x31, 0xac, 0xd2, 0x23, 0xb8, 0x71, 0xa1, 0xc8, |
|
17213 |
+ 0x37, 0xba, 0x9a, 0xf8, 0x87, 0x24, 0x40, 0xb3, 0x53, 0xd9, 0x91, 0x4e, 0xaa, 0x43, 0x76, 0x5f, |
|
17214 |
+ 0x1f, 0x58, 0xf6, 0xf8, 0xb2, 0x08, 0x38, 0xc1, 0x97, 0x2b, 0xc2, 0x1d, 0x9b, 0x5c, 0x06, 0x4b, |
|
17215 |
+ 0x59, 0x5e, 0x36, 0x8d, 0xf6, 0x1c, 0xe2, 0x87, 0x65, 0x13, 0x6f, 0x31, 0x33, 0x5c, 0xdd, 0x09, |
|
17216 |
+ 0x97, 0xae, 0x68, 0xb0, 0x09, 0xe8, 0xeb, 0x3e, 0x39, 0xd6, 0xc7, 0x41, 0xd8, 0x92, 0x4d, 0xb4, |
|
17217 |
+ 0xc5, 0x2f, 0x00, 0x89, 0x7b, 0x44, 0xcc, 0xd5, 0x0c, 0x77, 0xea, 0x55, 0xf6, 0x60, 0x09, 0x17, |
|
17218 |
+ 0xbe, 0x0b, 0xa5, 0x4b, 0x1f, 0xf1, 0x94, 0x69, 0xc2, 0xfa, 0x46, 0x3e, 0xba, 0x0b, 0x0b, 0x53, |
|
17219 |
+ 0xe3, 0x7c, 0xa1, 0x5e, 0x6d, 0x76, 0x9e, 0xbc, 0xab, 0xa4, 0xe5, 0xd7, 0xfb, 0x4a, 0x56, 0xfd, |
|
17220 |
+ 0xe3, 0x94, 0x08, 0x34, 0xd2, 0xab, 0xf1, 0x17, 0xdf, 0x39, 0xbe, 0xba, 0x0d, 0x6a, 0xcb, 0x00, |
|
17221 |
+ 0xf0, 0xe6, 0xe5, 0xf1, 0x87, 0xd5, 0x3f, 0x1c, 0x8e, 0x43, 0x41, 0xb4, 0x0e, 0x05, 0xb1, 0x8a, |
|
17222 |
+ 0x35, 0xb6, 0xe1, 0xb8, 0x5b, 0x17, 0x30, 0x08, 0x12, 0x93, 0x44, 0xb7, 0x60, 0x91, 0xdf, 0x6f, |
|
17223 |
+ 0x78, 0x07, 0xc4, 0x14, 0x98, 0x34, 0xc7, 0x2c, 0x84, 0x54, 0x0e, 0xdb, 0x81, 0xa2, 0x24, 0x68, |
|
17224 |
+ 0x3c, 0xf7, 0xcd, 0x70, 0x83, 0x6e, 0x5f, 0x65, 0x90, 0x10, 0xe1, 0x29, 0x71, 0x61, 0x38, 0x69, |
|
17225 |
+ 0xa8, 0x75, 0xc8, 0x05, 0xc6, 0xa2, 0x55, 0x48, 0xf5, 0x6a, 0x1d, 0x65, 0xae, 0xb4, 0x74, 0x72, |
|
17226 |
+ 0xba, 0x51, 0x08, 0xc8, 0xbd, 0x5a, 0x87, 0x71, 0x76, 0xeb, 0x1d, 0x25, 0x31, 0xcd, 0xd9, 0xad, |
|
17227 |
+ 0x77, 0x4a, 0x69, 0x96, 0x83, 0xa9, 0xfb, 0x50, 0x88, 0xf4, 0x80, 0x5e, 0x87, 0xf9, 0x66, 0xeb, |
|
17228 |
+ 0x11, 0x6e, 0x74, 0xbb, 0xca, 0x5c, 0xe9, 0xfa, 0xc9, 0xe9, 0x06, 0x8a, 0x70, 0x9b, 0x4e, 0x9f, |
|
17229 |
+ 0xcd, 0x0f, 0x7a, 0x15, 0xd2, 0x5b, 0x6d, 0x76, 0xb6, 0x8b, 0x64, 0x3b, 0x82, 0xd8, 0xa2, 0x9e, |
|
17230 |
+ 0x5f, 0xba, 0x26, 0x93, 0xbb, 0xa8, 0x62, 0xf5, 0xf7, 0x13, 0x90, 0x15, 0x9b, 0x29, 0x76, 0xa2, |
|
17231 |
+ 0x2a, 0x30, 0x1f, 0x54, 0xc2, 0xa2, 0x10, 0x7a, 0xf3, 0xe2, 0xa2, 0xa5, 0x2c, 0x6b, 0x0c, 0xb1, |
|
17232 |
+ 0xfc, 0x02, 0xb9, 0xd2, 0x87, 0x50, 0x8c, 0x32, 0xbe, 0xd1, 0xe2, 0xfb, 0x11, 0x14, 0xd8, 0xfa, |
|
17233 |
+ 0x0e, 0x8a, 0x97, 0xfb, 0x90, 0x15, 0x01, 0x21, 0x3c, 0x6b, 0x2e, 0xae, 0xa0, 0x24, 0x12, 0x3d, |
|
17234 |
+ 0x84, 0x79, 0x51, 0x75, 0x05, 0x17, 0xa0, 0x6b, 0x97, 0xef, 0x22, 0x1c, 0xc0, 0xd5, 0x4f, 0x21, |
|
17235 |
+ 0xdd, 0x21, 0xc4, 0x65, 0xbe, 0x77, 0xa8, 0x49, 0x26, 0xc7, 0xb3, 0x2c, 0x18, 0x4d, 0xd2, 0xac, |
|
17236 |
+ 0xb3, 0x82, 0xd1, 0x24, 0x4d, 0x33, 0xbc, 0xe2, 0x49, 0x46, 0xae, 0x78, 0x7a, 0x50, 0x7c, 0x4a, |
|
17237 |
+ 0xac, 0xfe, 0x81, 0x4f, 0x4c, 0xae, 0xe8, 0x1d, 0x48, 0x0f, 0x49, 0x68, 0xfc, 0x6a, 0xec, 0x02, |
|
17238 |
+ 0x23, 0xc4, 0xc5, 0x1c, 0xc5, 0xe2, 0xc8, 0x31, 0x97, 0x96, 0xb7, 0xf6, 0xb2, 0xa5, 0xfe, 0x7d, |
|
17239 |
+ 0x12, 0x16, 0x9b, 0x9e, 0x37, 0xd2, 0x1d, 0x23, 0xc8, 0xdc, 0x3e, 0x99, 0xce, 0xdc, 0x62, 0x9f, |
|
17240 |
+ 0x37, 0xa6, 0x45, 0xa6, 0x6f, 0xae, 0xe4, 0xe9, 0x99, 0x0c, 0x4f, 0x4f, 0xf5, 0xdf, 0x13, 0xc1, |
|
17241 |
+ 0xf5, 0xd4, 0xad, 0xc8, 0x76, 0x2f, 0xad, 0x9e, 0x9c, 0x6e, 0xac, 0x44, 0x35, 0x91, 0x5d, 0xe7, |
|
17242 |
+ 0xd0, 0xa1, 0xc7, 0x0e, 0x7a, 0x0d, 0x32, 0xb8, 0xd1, 0x6a, 0x3c, 0x55, 0x12, 0x62, 0x79, 0x4e, |
|
17243 |
+ 0x81, 0x30, 0x71, 0xc8, 0x31, 0xd3, 0xd4, 0x69, 0xb4, 0xea, 0x2c, 0xd3, 0x4a, 0xc6, 0x68, 0xea, |
|
17244 |
+ 0x10, 0xc7, 0xb4, 0x9c, 0x3e, 0x7a, 0x1d, 0xb2, 0xcd, 0x6e, 0x77, 0x97, 0x5f, 0x20, 0xbc, 0x72, |
|
17245 |
+ 0x72, 0xba, 0x71, 0x6d, 0x0a, 0xc5, 0xaf, 0x26, 0x4d, 0x06, 0x62, 0x65, 0x0e, 0xcb, 0xc1, 0x62, |
|
17246 |
+ 0x40, 0x2c, 0x7f, 0x16, 0x20, 0xdc, 0xee, 0x55, 0x7a, 0x0d, 0x25, 0x13, 0x03, 0xc2, 0x94, 0xfd, |
|
17247 |
+ 0x95, 0xdb, 0xed, 0x9f, 0x93, 0xa0, 0x54, 0x0c, 0x83, 0x0c, 0x7d, 0xc6, 0x97, 0x95, 0x65, 0x0f, |
|
17248 |
+ 0x72, 0x43, 0xf6, 0x65, 0x91, 0x20, 0x4b, 0x7a, 0x18, 0xfb, 0x40, 0x37, 0x23, 0x57, 0xc6, 0xd4, |
|
17249 |
+ 0x26, 0x15, 0x73, 0x60, 0x79, 0x9e, 0x45, 0x1d, 0x41, 0xc3, 0xa1, 0xa6, 0xd2, 0x7f, 0x26, 0xe0, |
|
17250 |
+ 0x5a, 0x0c, 0x02, 0xdd, 0x85, 0xb4, 0x4b, 0xed, 0x60, 0x0e, 0x6f, 0x5e, 0x74, 0xf3, 0xc8, 0x44, |
|
17251 |
+ 0x31, 0x47, 0xa2, 0x35, 0x00, 0x7d, 0xe4, 0x53, 0x9d, 0xf7, 0xcf, 0x67, 0x2f, 0x87, 0x23, 0x14, |
|
17252 |
+ 0xf4, 0x14, 0xb2, 0x1e, 0x31, 0x5c, 0x12, 0xe4, 0xd2, 0x9f, 0xfe, 0x5f, 0xad, 0x2f, 0x77, 0xb9, |
|
17253 |
+ 0x1a, 0x2c, 0xd5, 0x95, 0xca, 0x90, 0x15, 0x14, 0xb6, 0xec, 0x4d, 0xdd, 0xd7, 0xe5, 0xbd, 0x34, |
|
17254 |
+ 0xff, 0x66, 0xab, 0x49, 0xb7, 0xfb, 0xc1, 0x6a, 0xd2, 0xed, 0xbe, 0xfa, 0x37, 0x49, 0x80, 0xc6, |
|
17255 |
+ 0x33, 0x9f, 0xb8, 0x8e, 0x6e, 0xd7, 0x2a, 0xa8, 0x11, 0x89, 0xfe, 0x62, 0xb4, 0x6f, 0xc7, 0x5e, |
|
17256 |
+ 0xb6, 0x87, 0x12, 0xe5, 0x5a, 0x25, 0x26, 0xfe, 0xdf, 0x80, 0xd4, 0xc8, 0x95, 0x6f, 0xae, 0x22, |
|
17257 |
+ 0x0f, 0xde, 0xc5, 0xdb, 0x98, 0xd1, 0x50, 0x63, 0x12, 0xb6, 0x52, 0x17, 0xbf, 0xac, 0x46, 0x3a, |
|
17258 |
+ 0x88, 0x0d, 0x5d, 0x6c, 0xe7, 0x1b, 0xba, 0x66, 0x10, 0x79, 0x72, 0x14, 0xc5, 0xce, 0xaf, 0x55, |
|
17259 |
+ 0x6a, 0xc4, 0xf5, 0x71, 0xd6, 0xd0, 0xd9, 0xff, 0x6f, 0x15, 0xdf, 0xde, 0x01, 0x98, 0x0c, 0x0d, |
|
17260 |
+ 0xad, 0x41, 0xa6, 0xb6, 0xd9, 0xed, 0x6e, 0x2b, 0x73, 0x22, 0x80, 0x4f, 0x58, 0x9c, 0xac, 0xfe, |
|
17261 |
+ 0x65, 0x12, 0x72, 0xb5, 0x8a, 0x3c, 0x56, 0x6b, 0xa0, 0xf0, 0xa8, 0xc4, 0x6f, 0xf3, 0xc9, 0xb3, |
|
17262 |
+ 0xa1, 0xe5, 0x8e, 0x65, 0x60, 0xb9, 0xa4, 0xa8, 0x5d, 0x64, 0x22, 0xcc, 0xea, 0x06, 0x17, 0x40, |
|
17263 |
+ 0x18, 0x8a, 0x44, 0x3a, 0x41, 0x33, 0xf4, 0x20, 0xc6, 0xaf, 0x5d, 0xee, 0x2c, 0x51, 0x9e, 0x4c, |
|
17264 |
+ 0xda, 0x1e, 0x2e, 0x04, 0x4a, 0x6a, 0xba, 0x87, 0x3e, 0x80, 0x25, 0xcf, 0xea, 0x3b, 0x96, 0xd3, |
|
17265 |
+ 0xd7, 0x02, 0xe7, 0xf1, 0xa7, 0x85, 0xea, 0xf2, 0xf9, 0xd9, 0xfa, 0x42, 0x57, 0xb0, 0xa4, 0x0f, |
|
17266 |
+ 0x17, 0x24, 0xb2, 0xc6, 0x5d, 0x89, 0xde, 0x87, 0xc5, 0x88, 0x28, 0xf3, 0xa2, 0x70, 0xbb, 0x72, |
|
17267 |
+ 0x7e, 0xb6, 0x5e, 0x0c, 0x25, 0x1f, 0x93, 0x31, 0x2e, 0x86, 0x82, 0x8f, 0x09, 0xbf, 0x7f, 0xd9, |
|
17268 |
+ 0xa7, 0xae, 0x41, 0x34, 0x97, 0xef, 0x69, 0x7e, 0x82, 0xa7, 0x71, 0x81, 0xd3, 0xc4, 0x36, 0x57, |
|
17269 |
+ 0x9f, 0xc0, 0xb5, 0xb6, 0x6b, 0x1c, 0x10, 0xcf, 0x17, 0xae, 0x90, 0x5e, 0xfc, 0x14, 0x6e, 0xfa, |
|
17270 |
+ 0xba, 0x77, 0xa8, 0x1d, 0x58, 0x9e, 0x4f, 0xdd, 0xb1, 0xe6, 0x12, 0x9f, 0x38, 0x8c, 0xaf, 0xf1, |
|
17271 |
+ 0xf7, 0x48, 0x79, 0x41, 0x76, 0x83, 0x61, 0xb6, 0x04, 0x04, 0x07, 0x88, 0x6d, 0x06, 0x50, 0x9b, |
|
17272 |
+ 0x50, 0x64, 0x65, 0x4a, 0x9d, 0xec, 0xeb, 0x23, 0xdb, 0x67, 0xa3, 0x07, 0x9b, 0xf6, 0xb5, 0x97, |
|
17273 |
+ 0x3e, 0xa6, 0xf2, 0x36, 0xed, 0x8b, 0x4f, 0xf5, 0x87, 0xa0, 0xd4, 0x2d, 0x6f, 0xa8, 0xfb, 0xc6, |
|
17274 |
+ 0x41, 0x70, 0xf3, 0x87, 0xea, 0xa0, 0x1c, 0x10, 0xdd, 0xf5, 0xf7, 0x88, 0xee, 0x6b, 0x43, 0xe2, |
|
17275 |
+ 0x5a, 0xd4, 0xbc, 0x7a, 0x96, 0x97, 0x42, 0x91, 0x0e, 0x97, 0x50, 0xff, 0x2b, 0x01, 0x80, 0xf5, |
|
17276 |
+ 0xfd, 0x20, 0x23, 0xfb, 0x3e, 0x2c, 0x7b, 0x8e, 0x3e, 0xf4, 0x0e, 0xa8, 0xaf, 0x59, 0x8e, 0x4f, |
|
17277 |
+ 0xdc, 0x23, 0xdd, 0x96, 0x17, 0x38, 0x4a, 0xc0, 0x68, 0x4a, 0x3a, 0x7a, 0x07, 0xd0, 0x21, 0x21, |
|
17278 |
+ 0x43, 0x8d, 0xda, 0xa6, 0x16, 0x30, 0xc5, 0x6b, 0x69, 0x1a, 0x2b, 0x8c, 0xd3, 0xb6, 0xcd, 0x6e, |
|
17279 |
+ 0x40, 0x47, 0x55, 0x58, 0x63, 0xc3, 0x27, 0x8e, 0xef, 0x5a, 0xc4, 0xd3, 0xf6, 0xa9, 0xab, 0x79, |
|
17280 |
+ 0x36, 0x3d, 0xd6, 0xf6, 0xa9, 0x6d, 0xd3, 0x63, 0xe2, 0x06, 0x77, 0x63, 0x25, 0x9b, 0xf6, 0x1b, |
|
17281 |
+ 0x02, 0xb4, 0x49, 0xdd, 0xae, 0x4d, 0x8f, 0x37, 0x03, 0x04, 0x4b, 0xdb, 0x26, 0x63, 0xf6, 0x2d, |
|
17282 |
+ 0xe3, 0x30, 0x48, 0xdb, 0x42, 0x6a, 0xcf, 0x32, 0x0e, 0xd1, 0xeb, 0xb0, 0x40, 0x6c, 0xc2, 0xaf, |
|
17283 |
+ 0x48, 0x04, 0x2a, 0xc3, 0x51, 0xc5, 0x80, 0xc8, 0x40, 0xea, 0x67, 0xa0, 0x34, 0x1c, 0xc3, 0x1d, |
|
17284 |
+ 0x0f, 0x23, 0x73, 0xfe, 0x0e, 0x20, 0x16, 0x24, 0x35, 0x9b, 0x1a, 0x87, 0xda, 0x40, 0x77, 0xf4, |
|
17285 |
+ 0x3e, 0xb3, 0x4b, 0x3c, 0x62, 0x29, 0x8c, 0xb3, 0x4d, 0x8d, 0xc3, 0x1d, 0x49, 0x57, 0x3f, 0x00, |
|
17286 |
+ 0xe8, 0x0e, 0x5d, 0xa2, 0x9b, 0x6d, 0x96, 0x4d, 0x30, 0xd7, 0xf1, 0x96, 0x66, 0xca, 0x47, 0x40, |
|
17287 |
+ 0xea, 0xca, 0xad, 0xae, 0x08, 0x46, 0x3d, 0xa4, 0xab, 0xbf, 0x08, 0xd7, 0x3a, 0xb6, 0x6e, 0xf0, |
|
17288 |
+ 0x07, 0xf1, 0x4e, 0xf8, 0x2a, 0x83, 0x1e, 0x42, 0x56, 0x40, 0xe5, 0x4c, 0xc6, 0x6e, 0xb7, 0x49, |
|
17289 |
+ 0x9f, 0x5b, 0x73, 0x58, 0xe2, 0xab, 0x45, 0x80, 0x89, 0x1e, 0xf5, 0xcf, 0x13, 0x90, 0x0f, 0xf5, |
|
17290 |
+ 0xa3, 0x0d, 0x28, 0x18, 0xd4, 0x61, 0xcb, 0xdb, 0x72, 0x64, 0x55, 0x9f, 0xc7, 0x51, 0x12, 0x6a, |
|
17291 |
+ 0x42, 0x61, 0x18, 0x4a, 0x5f, 0x9a, 0xcf, 0xc5, 0x58, 0x8d, 0xa3, 0xb2, 0xe8, 0x43, 0xc8, 0x07, |
|
17292 |
+ 0xaf, 0xae, 0x41, 0x84, 0xbd, 0xfc, 0x91, 0x76, 0x02, 0x57, 0x3f, 0x01, 0xf8, 0x01, 0xb5, 0x9c, |
|
17293 |
+ 0x1e, 0x3d, 0x24, 0x0e, 0x7f, 0x45, 0x64, 0x35, 0x21, 0x09, 0xbc, 0x28, 0x5b, 0xbc, 0xd4, 0x17, |
|
17294 |
+ 0x53, 0x10, 0x3e, 0xa6, 0x89, 0xa6, 0xfa, 0xd7, 0x49, 0xc8, 0x62, 0x4a, 0xfd, 0x5a, 0x05, 0x6d, |
|
17295 |
+ 0x40, 0x56, 0xc6, 0x09, 0x7e, 0xfe, 0x54, 0xf3, 0xe7, 0x67, 0xeb, 0x19, 0x11, 0x20, 0x32, 0x06, |
|
17296 |
+ 0x8f, 0x0c, 0x91, 0x08, 0x9e, 0xbc, 0x28, 0x82, 0xa3, 0xbb, 0x50, 0x94, 0x20, 0xed, 0x40, 0xf7, |
|
17297 |
+ 0x0e, 0x44, 0x81, 0x56, 0x5d, 0x3c, 0x3f, 0x5b, 0x07, 0x81, 0xdc, 0xd2, 0xbd, 0x03, 0x0c, 0x02, |
|
17298 |
+ 0xcd, 0xbe, 0x51, 0x03, 0x0a, 0x5f, 0x50, 0xcb, 0xd1, 0x7c, 0x3e, 0x08, 0x79, 0x99, 0x18, 0x3b, |
|
17299 |
+ 0x8f, 0x93, 0xa1, 0xca, 0x27, 0x75, 0xf8, 0x62, 0x32, 0xf8, 0x06, 0x2c, 0xb8, 0x94, 0xfa, 0x22, |
|
17300 |
+ 0x6c, 0x59, 0xd4, 0x91, 0xf7, 0x14, 0x1b, 0xb1, 0xd7, 0xd7, 0x94, 0xfa, 0x58, 0xe2, 0x70, 0xd1, |
|
17301 |
+ 0x8d, 0xb4, 0xd0, 0x5d, 0x58, 0xb1, 0x75, 0xcf, 0xd7, 0x78, 0xbc, 0x33, 0x27, 0xda, 0xb2, 0x7c, |
|
17302 |
+ 0xab, 0x21, 0xc6, 0xdb, 0xe4, 0xac, 0x40, 0x42, 0xfd, 0xc7, 0x04, 0x14, 0xd8, 0x60, 0xac, 0x7d, |
|
17303 |
+ 0xcb, 0x60, 0x49, 0xde, 0x37, 0xcf, 0x3d, 0x6e, 0x40, 0xca, 0xf0, 0x5c, 0xe9, 0x54, 0x7e, 0xf8, |
|
17304 |
+ 0xd6, 0xba, 0x18, 0x33, 0x1a, 0xfa, 0x0c, 0xb2, 0xf2, 0xbe, 0x44, 0xa4, 0x1d, 0xea, 0xd5, 0xe9, |
|
17305 |
+ 0xa8, 0xf4, 0x8d, 0x94, 0xe3, 0x6b, 0x79, 0x62, 0x9d, 0x38, 0x04, 0x70, 0x94, 0x84, 0xae, 0x43, |
|
17306 |
+ 0xd2, 0x10, 0xee, 0x92, 0xbf, 0xd9, 0xa8, 0xb5, 0x70, 0xd2, 0x70, 0xd4, 0xbf, 0x4b, 0xc0, 0xc2, |
|
17307 |
+ 0x64, 0xc3, 0xb3, 0x15, 0x70, 0x13, 0xf2, 0xde, 0x68, 0xcf, 0x1b, 0x7b, 0x3e, 0x19, 0x04, 0x2f, |
|
17308 |
+ 0xa4, 0x21, 0x01, 0x35, 0x21, 0xaf, 0xdb, 0x7d, 0xea, 0x5a, 0xfe, 0xc1, 0x40, 0x56, 0xa2, 0xf1, |
|
17309 |
+ 0xa9, 0x42, 0x54, 0x67, 0xb9, 0x12, 0x88, 0xe0, 0x89, 0x74, 0x70, 0xee, 0x8b, 0x67, 0x74, 0x7e, |
|
17310 |
+ 0xee, 0xbf, 0x06, 0x45, 0x5b, 0x1f, 0xf0, 0x0b, 0x24, 0xdf, 0x1a, 0x88, 0x71, 0xa4, 0x71, 0x41, |
|
17311 |
+ 0xd2, 0x7a, 0xd6, 0x80, 0xa8, 0x2a, 0xe4, 0x43, 0x65, 0x68, 0x09, 0x0a, 0x95, 0x46, 0x57, 0xbb, |
|
17312 |
+ 0x77, 0xff, 0xa1, 0xf6, 0xa8, 0xb6, 0xa3, 0xcc, 0xc9, 0xdc, 0xf4, 0x2f, 0x12, 0xb0, 0x20, 0xc3, |
|
17313 |
+ 0x91, 0xcc, 0xf7, 0x5f, 0x87, 0x79, 0x57, 0xdf, 0xf7, 0x83, 0x8a, 0x24, 0x2d, 0x56, 0x35, 0x8b, |
|
17314 |
+ 0xf0, 0xac, 0x22, 0x61, 0xac, 0xf8, 0x8a, 0x24, 0xf2, 0x66, 0x9f, 0xba, 0xf4, 0xcd, 0x3e, 0xfd, |
|
17315 |
+ 0x73, 0x79, 0xb3, 0x57, 0x7f, 0x1d, 0x60, 0xd3, 0xb2, 0x49, 0x4f, 0xdc, 0x35, 0xc5, 0xd5, 0x97, |
|
17316 |
+ 0x2c, 0x87, 0x93, 0x77, 0x99, 0x41, 0x0e, 0xd7, 0xac, 0x63, 0x46, 0x63, 0xac, 0xbe, 0x65, 0xca, |
|
17317 |
+ 0xcd, 0xc8, 0x59, 0x8f, 0x18, 0xab, 0x6f, 0x99, 0xe1, 0x2b, 0x55, 0xfa, 0xaa, 0x57, 0xaa, 0xd3, |
|
17318 |
+ 0x04, 0x2c, 0xc9, 0xdc, 0x35, 0x0c, 0xbf, 0x6f, 0x43, 0x5e, 0xa4, 0xb1, 0x93, 0x82, 0x8e, 0xbf, |
|
17319 |
+ 0x53, 0x0b, 0x5c, 0xb3, 0x8e, 0x73, 0x82, 0xdd, 0x34, 0xd1, 0x3a, 0x14, 0x24, 0x34, 0xf2, 0xfb, |
|
17320 |
+ 0x1e, 0x10, 0xa4, 0x16, 0x33, 0xff, 0x5d, 0x48, 0xef, 0x5b, 0x36, 0x91, 0x0b, 0x3d, 0x36, 0x00, |
|
17321 |
+ 0x4c, 0x1c, 0xb0, 0x35, 0x87, 0x39, 0xba, 0x9a, 0x0b, 0x2e, 0xe3, 0xb8, 0x7d, 0xb2, 0xec, 0x8c, |
|
17322 |
+ 0xda, 0x27, 0x2a, 0xd0, 0x19, 0xfb, 0x04, 0x8e, 0xd9, 0x27, 0xd8, 0xc2, 0x3e, 0x09, 0x8d, 0xda, |
|
17323 |
+ 0x27, 0x48, 0x3f, 0x17, 0xfb, 0xb6, 0xe1, 0x7a, 0xd5, 0xd6, 0x8d, 0x43, 0xdb, 0xf2, 0x7c, 0x62, |
|
17324 |
+ 0x46, 0x23, 0xc6, 0x7d, 0xc8, 0x4e, 0x25, 0x9d, 0x97, 0xdd, 0x5a, 0x4a, 0xa4, 0xfa, 0x6f, 0x09, |
|
17325 |
+ 0x28, 0x6e, 0x11, 0xdd, 0xf6, 0x0f, 0x26, 0x57, 0x43, 0x3e, 0xf1, 0x7c, 0x79, 0x58, 0xf1, 0x6f, |
|
17326 |
+ 0xf4, 0x1e, 0xe4, 0xc2, 0x9c, 0xe4, 0xca, 0xf7, 0xb7, 0x10, 0x8a, 0x1e, 0xc0, 0x3c, 0xdb, 0x63, |
|
17327 |
+ 0x74, 0x14, 0x14, 0x3b, 0x97, 0x3d, 0xed, 0x48, 0x24, 0x3b, 0x64, 0x5c, 0xc2, 0x93, 0x10, 0xbe, |
|
17328 |
+ 0x94, 0x32, 0x38, 0x68, 0xa2, 0xff, 0x0f, 0x45, 0xfe, 0x32, 0x11, 0xe4, 0x5c, 0x99, 0xab, 0x74, |
|
17329 |
+ 0x16, 0xc4, 0xe3, 0xa2, 0xc8, 0xb7, 0xfe, 0x27, 0x01, 0x2b, 0x3b, 0xfa, 0x78, 0x8f, 0xc8, 0xb0, |
|
17330 |
+ 0x41, 0x4c, 0x4c, 0x0c, 0xea, 0x9a, 0xa8, 0x13, 0x0d, 0x37, 0x97, 0xbc, 0x55, 0xc6, 0x09, 0xc7, |
|
17331 |
+ 0x47, 0x9d, 0xa0, 0x00, 0x4b, 0x46, 0x0a, 0xb0, 0x15, 0xc8, 0x38, 0xd4, 0x31, 0x88, 0x8c, 0x45, |
|
17332 |
+ 0xa2, 0xa1, 0x5a, 0xd1, 0x50, 0x53, 0x0a, 0x9f, 0x11, 0xf9, 0x23, 0x60, 0x8b, 0xfa, 0x61, 0x6f, |
|
17333 |
+ 0xe8, 0x33, 0x28, 0x75, 0x1b, 0x35, 0xdc, 0xe8, 0x55, 0xdb, 0x3f, 0xd4, 0xba, 0x95, 0xed, 0x6e, |
|
17334 |
+ 0xe5, 0xfe, 0x5d, 0xad, 0xd3, 0xde, 0xfe, 0xfc, 0xde, 0x83, 0xbb, 0xef, 0x29, 0x89, 0xd2, 0xc6, |
|
17335 |
+ 0xc9, 0xe9, 0xc6, 0xcd, 0x56, 0xa5, 0xb6, 0x2d, 0x76, 0xcc, 0x1e, 0x7d, 0xd6, 0xd5, 0x6d, 0x4f, |
|
17336 |
+ 0xbf, 0x7f, 0xb7, 0x43, 0xed, 0x31, 0xc3, 0xb0, 0x65, 0x5d, 0x8c, 0x9e, 0x57, 0xd1, 0x63, 0x38, |
|
17337 |
+ 0x71, 0xe1, 0x31, 0x3c, 0x39, 0xcd, 0x93, 0x17, 0x9c, 0xe6, 0x9b, 0xb0, 0x62, 0xb8, 0xd4, 0xf3, |
|
17338 |
+ 0x34, 0x96, 0xfd, 0x13, 0x73, 0xa6, 0xbe, 0xf8, 0xce, 0xf9, 0xd9, 0xfa, 0x72, 0x8d, 0xf1, 0xbb, |
|
17339 |
+ 0x9c, 0x2d, 0xd5, 0x2f, 0x1b, 0x11, 0x12, 0xef, 0x49, 0xfd, 0x83, 0x14, 0x4b, 0xa4, 0xac, 0x23, |
|
17340 |
+ 0xcb, 0x26, 0x7d, 0xe2, 0xa1, 0x27, 0xb0, 0x64, 0xb8, 0xc4, 0x64, 0x69, 0xbd, 0x6e, 0x47, 0x7f, |
|
17341 |
+ 0x27, 0xfa, 0xff, 0x62, 0x73, 0x9a, 0x50, 0xb0, 0x5c, 0x0b, 0xa5, 0xba, 0x43, 0x62, 0xe0, 0x45, |
|
17342 |
+ 0x63, 0xaa, 0x8d, 0xbe, 0x80, 0x25, 0x8f, 0xd8, 0x96, 0x33, 0x7a, 0xa6, 0x19, 0xd4, 0xf1, 0xc9, |
|
17343 |
+ 0xb3, 0xe0, 0x45, 0xec, 0x2a, 0xbd, 0xdd, 0xc6, 0x36, 0x93, 0xaa, 0x09, 0xa1, 0x2a, 0x3a, 0x3f, |
|
17344 |
+ 0x5b, 0x5f, 0x9c, 0xa6, 0xe1, 0x45, 0xa9, 0x59, 0xb6, 0x4b, 0x2d, 0x58, 0x9c, 0xb6, 0x06, 0xad, |
|
17345 |
+ 0xc8, 0xbd, 0xcf, 0x43, 0x48, 0xb0, 0xb7, 0xd1, 0x4d, 0xc8, 0xb9, 0xa4, 0x6f, 0x79, 0xbe, 0x2b, |
|
17346 |
+ 0xdc, 0xcc, 0x38, 0x21, 0x85, 0xed, 0x7c, 0xf1, 0x23, 0x9f, 0xd2, 0xaf, 0xc2, 0x4c, 0x8f, 0x6c, |
|
17347 |
+ 0xb3, 0x98, 0x96, 0xa7, 0xef, 0x49, 0x95, 0x39, 0x1c, 0x34, 0xd9, 0x1a, 0x1c, 0x79, 0x61, 0xa2, |
|
17348 |
+ 0xc6, 0xbf, 0x19, 0x8d, 0x67, 0x14, 0xf2, 0x27, 0x4f, 0x3c, 0x67, 0x08, 0x7e, 0x3b, 0x99, 0x8e, |
|
17349 |
+ 0xfc, 0x76, 0x72, 0x05, 0x32, 0x36, 0x39, 0x22, 0xb6, 0x38, 0xcb, 0xb1, 0x68, 0xdc, 0xbe, 0x0b, |
|
17350 |
+ 0xc5, 0xe0, 0x47, 0x7a, 0xfc, 0x57, 0x06, 0x39, 0x48, 0xf7, 0x2a, 0xdd, 0xc7, 0xca, 0x1c, 0x02, |
|
17351 |
+ 0xc8, 0x8a, 0xc5, 0x29, 0x5e, 0xeb, 0x6a, 0xed, 0xd6, 0x66, 0xf3, 0x91, 0x92, 0xbc, 0xfd, 0xb3, |
|
17352 |
+ 0x14, 0xe4, 0xc3, 0xf7, 0x22, 0x76, 0x76, 0xb4, 0x1a, 0x4f, 0x83, 0xd5, 0x1d, 0xd2, 0x5b, 0xe4, |
|
17353 |
+ 0x18, 0xbd, 0x36, 0xb9, 0x85, 0xfa, 0x4c, 0x3c, 0x90, 0x87, 0xec, 0xe0, 0x06, 0xea, 0x0d, 0xc8, |
|
17354 |
+ 0x55, 0xba, 0xdd, 0xe6, 0xa3, 0x56, 0xa3, 0xae, 0x7c, 0x99, 0x28, 0x7d, 0xe7, 0xe4, 0x74, 0x63, |
|
17355 |
+ 0x39, 0x04, 0x55, 0x3c, 0xb1, 0xf8, 0x38, 0xaa, 0x56, 0x6b, 0x74, 0x7a, 0x8d, 0xba, 0xf2, 0x3c, |
|
17356 |
+ 0x39, 0x8b, 0xe2, 0xb7, 0x2a, 0xfc, 0x67, 0x2e, 0xf9, 0x0e, 0x6e, 0x74, 0x2a, 0x98, 0x75, 0xf8, |
|
17357 |
+ 0x65, 0x52, 0x5c, 0x8e, 0x4d, 0x7a, 0x74, 0xc9, 0x50, 0x77, 0x59, 0x9f, 0x6b, 0xc1, 0xcf, 0xbd, |
|
17358 |
+ 0x9e, 0xa7, 0xc4, 0x4f, 0x21, 0x26, 0x8f, 0x5f, 0x44, 0x37, 0xc7, 0xac, 0x37, 0xfe, 0xea, 0xc8, |
|
17359 |
+ 0xd5, 0xa4, 0x66, 0x7a, 0xeb, 0xb2, 0xd8, 0xc3, 0xb4, 0xa8, 0x30, 0x8f, 0x77, 0x5b, 0x2d, 0x06, |
|
17360 |
+ 0x7a, 0x9e, 0x9e, 0x19, 0x1d, 0x1e, 0x39, 0xac, 0x62, 0x46, 0xb7, 0x20, 0x17, 0x3c, 0x4a, 0x2a, |
|
17361 |
+ 0x5f, 0xa6, 0x67, 0x0c, 0xaa, 0x05, 0x2f, 0xaa, 0xbc, 0xc3, 0xad, 0xdd, 0x1e, 0xff, 0x35, 0xda, |
|
17362 |
+ 0xf3, 0xcc, 0x6c, 0x87, 0x07, 0x23, 0xdf, 0xa4, 0xc7, 0x0e, 0xdb, 0xb3, 0xf2, 0x1e, 0xee, 0xcb, |
|
17363 |
+ 0x8c, 0xb8, 0xb4, 0x08, 0x31, 0xf2, 0x12, 0xee, 0x0d, 0xc8, 0xe1, 0xc6, 0x0f, 0xc4, 0x0f, 0xd7, |
|
17364 |
+ 0x9e, 0x67, 0x67, 0xf4, 0x60, 0xf2, 0x05, 0x31, 0x64, 0x6f, 0x6d, 0xdc, 0xd9, 0xaa, 0x70, 0x97, |
|
17365 |
+ 0xcf, 0xa2, 0xda, 0xee, 0xf0, 0x40, 0x77, 0x88, 0x39, 0xf9, 0x3d, 0x48, 0xc8, 0xba, 0xfd, 0x4b, |
|
17366 |
+ 0x90, 0x0b, 0x32, 0x53, 0xb4, 0x06, 0xd9, 0xa7, 0x6d, 0xfc, 0xb8, 0x81, 0x95, 0x39, 0xe1, 0xc3, |
|
17367 |
+ 0x80, 0xf3, 0x54, 0xd4, 0x14, 0x1b, 0x30, 0xbf, 0x53, 0x69, 0x55, 0x1e, 0x35, 0x70, 0x70, 0x45, |
|
17368 |
+ 0x1e, 0x00, 0x64, 0x7a, 0x55, 0x52, 0x64, 0x07, 0xa1, 0xce, 0xea, 0xea, 0x57, 0x5f, 0xaf, 0xcd, |
|
17369 |
+ 0xfd, 0xf4, 0xeb, 0xb5, 0xb9, 0xe7, 0xe7, 0x6b, 0x89, 0xaf, 0xce, 0xd7, 0x12, 0x3f, 0x39, 0x5f, |
|
17370 |
+ 0x4b, 0xfc, 0xeb, 0xf9, 0x5a, 0x62, 0x2f, 0xcb, 0x0f, 0x81, 0x07, 0xff, 0x1b, 0x00, 0x00, 0xff, |
|
17371 |
+ 0xff, 0x3b, 0x34, 0xbd, 0xc6, 0xd3, 0x30, 0x00, 0x00, |
|
17367 | 17372 |
} |
... | ... |
@@ -57,6 +57,12 @@ message GenericResource { |
57 | 57 |
} |
58 | 58 |
} |
59 | 59 |
|
60 |
+enum ResourceType { |
|
61 |
+ TASK = 0; |
|
62 |
+ SECRET = 1; |
|
63 |
+ CONFIG = 2; |
|
64 |
+} |
|
65 |
+ |
|
60 | 66 |
message Resources { |
61 | 67 |
// Amount of CPUs (e.g. 2000000000 = 2 CPU cores) |
62 | 68 |
int64 nano_cpus = 1 [(gogoproto.customname) = "NanoCPUs"]; |
... | ... |
@@ -508,6 +514,15 @@ message TaskStatus { |
508 | 508 |
// HostPorts provides a list of ports allocated at the host |
509 | 509 |
// level. |
510 | 510 |
PortStatus port_status = 6; |
511 |
+ |
|
512 |
+ // AppliedBy gives the node ID of the manager that applied this task |
|
513 |
+ // status update to the Task object. |
|
514 |
+ string applied_by = 7; |
|
515 |
+ |
|
516 |
+ // AppliedAt gives a timestamp of when this status update was applied to |
|
517 |
+ // the Task object. |
|
518 |
+ // Note: can't use stdtime because this field is nullable. |
|
519 |
+ google.protobuf.Timestamp applied_at = 8; |
|
511 | 520 |
} |
512 | 521 |
|
513 | 522 |
// NetworkAttachmentConfig specifies how a service should be attached to a particular network. |
... | ... |
@@ -1,5 +1,5 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: watch.proto |
|
2 |
+// source: github.com/docker/swarmkit/api/watch.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
package api |
... | ... |
@@ -1442,7 +1442,7 @@ var _Watch_serviceDesc = grpc.ServiceDesc{ |
1442 | 1442 |
ServerStreams: true, |
1443 | 1443 |
}, |
1444 | 1444 |
}, |
1445 |
- Metadata: "watch.proto", |
|
1445 |
+ Metadata: "github.com/docker/swarmkit/api/watch.proto", |
|
1446 | 1446 |
} |
1447 | 1447 |
|
1448 | 1448 |
func (m *Object) Marshal() (dAtA []byte, err error) { |
... | ... |
@@ -4519,81 +4519,83 @@ var ( |
4519 | 4519 |
ErrIntOverflowWatch = fmt.Errorf("proto: integer overflow") |
4520 | 4520 |
) |
4521 | 4521 |
|
4522 |
-func init() { proto.RegisterFile("watch.proto", fileDescriptorWatch) } |
|
4522 |
+func init() { proto.RegisterFile("github.com/docker/swarmkit/api/watch.proto", fileDescriptorWatch) } |
|
4523 | 4523 |
|
4524 | 4524 |
var fileDescriptorWatch = []byte{ |
4525 |
- // 1155 bytes of a gzipped FileDescriptorProto |
|
4526 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x96, 0xbb, 0x73, 0x1b, 0xd5, |
|
4527 |
- 0x17, 0xc7, 0xb5, 0x8a, 0xbc, 0x92, 0x8e, 0xac, 0xc4, 0x73, 0xed, 0x24, 0xfb, 0xd3, 0x2f, 0x48, |
|
4528 |
- 0x42, 0x0c, 0xe0, 0x21, 0x41, 0x01, 0x13, 0xc2, 0x00, 0x81, 0x19, 0x4b, 0x16, 0x23, 0x91, 0xb1, |
|
4529 |
- 0xec, 0xb9, 0xb6, 0xe3, 0x52, 0xb3, 0xde, 0x3d, 0x56, 0x16, 0xed, 0x43, 0xdc, 0x5d, 0xc9, 0x71, |
|
4530 |
- 0x47, 0x41, 0xc1, 0xa4, 0x67, 0x86, 0x26, 0x15, 0xd4, 0x34, 0x74, 0xf0, 0x0f, 0x64, 0xa8, 0x28, |
|
4531 |
- 0xa1, 0xd1, 0x10, 0x95, 0x14, 0xfc, 0x05, 0x14, 0xcc, 0x7d, 0xac, 0x1f, 0xca, 0xca, 0x21, 0x95, |
|
4532 |
- 0xee, 0xbd, 0xfb, 0xf9, 0x9e, 0x7b, 0xf6, 0xbc, 0x56, 0x50, 0x38, 0x32, 0x23, 0xeb, 0x61, 0x7d, |
|
4533 |
- 0xc8, 0x82, 0x28, 0x20, 0xc4, 0x0e, 0xac, 0x01, 0xb2, 0x7a, 0x78, 0x64, 0x32, 0x6f, 0xe0, 0x44, |
|
4534 |
- 0xf5, 0xf1, 0xbb, 0xa5, 0x42, 0x38, 0x44, 0x2b, 0x94, 0x40, 0xa9, 0x18, 0x1c, 0x7c, 0x81, 0x56, |
|
4535 |
- 0x14, 0x6f, 0x0b, 0xd1, 0xf1, 0x10, 0xe3, 0xcd, 0x4a, 0x3f, 0xe8, 0x07, 0x62, 0x79, 0x9b, 0xaf, |
|
4536 |
- 0xd4, 0xe9, 0xf2, 0xd0, 0x1d, 0xf5, 0x1d, 0xff, 0xb6, 0xfc, 0x91, 0x87, 0xb5, 0xaf, 0x33, 0xa0, |
|
4537 |
- 0x6f, 0x09, 0x4b, 0xa4, 0x0e, 0x19, 0x3f, 0xb0, 0xd1, 0xd0, 0xaa, 0xda, 0x6a, 0x61, 0xcd, 0xa8, |
|
4538 |
- 0x3f, 0xef, 0x41, 0xbd, 0x1b, 0xd8, 0xd8, 0x4e, 0x51, 0xc1, 0x91, 0x0f, 0x20, 0x1b, 0x22, 0x1b, |
|
4539 |
- 0x3b, 0x16, 0x1a, 0x69, 0x21, 0xf9, 0x7f, 0x92, 0x64, 0x47, 0x22, 0xed, 0x14, 0x8d, 0x69, 0x2e, |
|
4540 |
- 0xf4, 0x31, 0x3a, 0x0a, 0xd8, 0xc0, 0xb8, 0x34, 0x5f, 0xd8, 0x95, 0x08, 0x17, 0x2a, 0x9a, 0x7b, |
|
4541 |
- 0x18, 0x99, 0xe1, 0xc0, 0xc8, 0xcc, 0xf7, 0x70, 0xd7, 0x0c, 0xb9, 0x44, 0x70, 0xfc, 0x22, 0xcb, |
|
4542 |
- 0x1d, 0x85, 0x11, 0x32, 0x63, 0x61, 0xfe, 0x45, 0x4d, 0x89, 0xf0, 0x8b, 0x14, 0x4d, 0xee, 0x80, |
|
4543 |
- 0x1e, 0xa2, 0xc5, 0x30, 0x32, 0x74, 0xa1, 0x2b, 0x25, 0xbf, 0x19, 0x27, 0xda, 0x29, 0xaa, 0x58, |
|
4544 |
- 0xf2, 0x11, 0xe4, 0x18, 0x86, 0xc1, 0x88, 0x59, 0x68, 0x64, 0x85, 0xee, 0x46, 0x92, 0x8e, 0x2a, |
|
4545 |
- 0xa6, 0x9d, 0xa2, 0x27, 0x3c, 0xf9, 0x04, 0xf2, 0xf8, 0x28, 0x42, 0x3f, 0x74, 0x02, 0xdf, 0xc8, |
|
4546 |
- 0x09, 0xf1, 0x2b, 0x49, 0xe2, 0x56, 0x0c, 0xb5, 0x53, 0xf4, 0x54, 0xc1, 0x1d, 0xb6, 0x02, 0xff, |
|
4547 |
- 0xd0, 0xe9, 0x1b, 0xf9, 0xf9, 0x0e, 0x37, 0x05, 0xc1, 0x1d, 0x96, 0x6c, 0x23, 0x17, 0xe7, 0xbe, |
|
4548 |
- 0xb6, 0x0d, 0x8b, 0x3b, 0xe8, 0xa2, 0x15, 0x35, 0x8e, 0x77, 0xdc, 0x20, 0x22, 0xb7, 0x00, 0x54, |
|
4549 |
- 0xb6, 0x7a, 0x8e, 0x2d, 0x2a, 0x22, 0xdf, 0x28, 0x4e, 0x27, 0x95, 0xbc, 0x4a, 0x67, 0x67, 0x83, |
|
4550 |
- 0xe6, 0x15, 0xd0, 0xb1, 0x09, 0x81, 0x4c, 0xe8, 0x06, 0x91, 0x28, 0x83, 0x0c, 0x15, 0xeb, 0xda, |
|
4551 |
- 0x36, 0x5c, 0x8e, 0x2d, 0x36, 0x47, 0x61, 0x14, 0x78, 0x9c, 0x1a, 0x38, 0xbe, 0xb2, 0x46, 0xc5, |
|
4552 |
- 0x9a, 0xac, 0xc0, 0x82, 0xe3, 0xdb, 0xf8, 0x48, 0x48, 0xf3, 0x54, 0x6e, 0xf8, 0xe9, 0xd8, 0x74, |
|
4553 |
- 0x47, 0x28, 0xca, 0x23, 0x4f, 0xe5, 0xa6, 0xf6, 0x97, 0x0e, 0xb9, 0xd8, 0x24, 0x31, 0x20, 0x7d, |
|
4554 |
- 0xe2, 0x98, 0x3e, 0x9d, 0x54, 0xd2, 0x9d, 0x8d, 0x76, 0x8a, 0xa6, 0x1d, 0x9b, 0xdc, 0x84, 0xbc, |
|
4555 |
- 0x63, 0xf7, 0x86, 0x0c, 0x0f, 0x1d, 0x65, 0xb6, 0xb1, 0x38, 0x9d, 0x54, 0x72, 0x9d, 0x8d, 0x6d, |
|
4556 |
- 0x71, 0xc6, 0xc3, 0xee, 0xd8, 0x72, 0x4d, 0x56, 0x20, 0xe3, 0x9b, 0x9e, 0xba, 0x48, 0x54, 0xb6, |
|
4557 |
- 0xe9, 0x21, 0x79, 0x15, 0x0a, 0xfc, 0x37, 0x36, 0x92, 0x51, 0x0f, 0x81, 0x1f, 0x2a, 0xe1, 0x3d, |
|
4558 |
- 0xd0, 0x2d, 0xf1, 0x5a, 0xaa, 0xb2, 0x6a, 0xc9, 0x15, 0x72, 0x36, 0x00, 0x22, 0xf0, 0x32, 0x14, |
|
4559 |
- 0x1d, 0x28, 0xca, 0x55, 0x7c, 0x85, 0xfe, 0x12, 0x46, 0x16, 0xa5, 0x54, 0x39, 0x52, 0x3f, 0x97, |
|
4560 |
- 0xa9, 0x6c, 0x42, 0xa6, 0x78, 0xa5, 0x9c, 0xe6, 0xea, 0x75, 0xc8, 0xf2, 0xee, 0xe5, 0x70, 0x4e, |
|
4561 |
- 0xc0, 0x30, 0x9d, 0x54, 0x74, 0xde, 0xd8, 0x82, 0xd4, 0xf9, 0xc3, 0x8e, 0x4d, 0xee, 0xaa, 0x94, |
|
4562 |
- 0xca, 0x72, 0xaa, 0x5e, 0xe4, 0x18, 0x2f, 0x18, 0x1e, 0x3a, 0xce, 0x93, 0x0d, 0x28, 0xda, 0x18, |
|
4563 |
- 0x3a, 0x0c, 0xed, 0x5e, 0x18, 0x99, 0x11, 0x1a, 0x50, 0xd5, 0x56, 0x2f, 0x27, 0xd7, 0x32, 0xef, |
|
4564 |
- 0xd5, 0x1d, 0x0e, 0xf1, 0x97, 0x52, 0x2a, 0xb1, 0x27, 0x6b, 0x90, 0x61, 0x81, 0x8b, 0x46, 0x41, |
|
4565 |
- 0x88, 0x6f, 0xcc, 0x1b, 0x45, 0x34, 0x70, 0xc5, 0x38, 0xe2, 0x2c, 0xe9, 0x00, 0x78, 0xe8, 0x1d, |
|
4566 |
- 0x20, 0x0b, 0x1f, 0x3a, 0x43, 0x63, 0x51, 0x28, 0xdf, 0x9c, 0xa7, 0xdc, 0x19, 0xa2, 0x55, 0xdf, |
|
4567 |
- 0x3c, 0xc1, 0x79, 0x72, 0x4f, 0xc5, 0x64, 0x13, 0xae, 0x32, 0x3c, 0x44, 0x86, 0xbe, 0x85, 0x76, |
|
4568 |
- 0x4f, 0x4d, 0x1f, 0x1e, 0xb1, 0xa2, 0x88, 0xd8, 0xf5, 0xe9, 0xa4, 0xb2, 0x4c, 0x4f, 0x00, 0x35, |
|
4569 |
- 0xa8, 0x44, 0xf8, 0x96, 0xd9, 0x73, 0xc7, 0x36, 0xf9, 0x1c, 0x56, 0xce, 0x98, 0x93, 0xc3, 0x82, |
|
4570 |
- 0x5b, 0xbb, 0x2c, 0xac, 0x5d, 0x9b, 0x4e, 0x2a, 0xe4, 0xd4, 0x9a, 0x9c, 0x2a, 0xc2, 0x18, 0x61, |
|
4571 |
- 0xb3, 0xa7, 0xbc, 0x61, 0x64, 0x13, 0x5d, 0x89, 0x0b, 0x56, 0xb4, 0xd1, 0xf9, 0x1b, 0x64, 0x77, |
|
4572 |
- 0xf3, 0x1b, 0x96, 0x92, 0x6e, 0x90, 0x63, 0x60, 0xf6, 0x06, 0x75, 0x6a, 0x37, 0x32, 0x90, 0x6e, |
|
4573 |
- 0x1c, 0xd7, 0xfe, 0x48, 0xc3, 0xe2, 0x3e, 0xff, 0x1e, 0x51, 0xfc, 0x72, 0x84, 0x61, 0x44, 0x5a, |
|
4574 |
- 0x90, 0x45, 0x3f, 0x62, 0x0e, 0x86, 0x86, 0x56, 0xbd, 0xb4, 0x5a, 0x58, 0xbb, 0x99, 0x14, 0xdb, |
|
4575 |
- 0xb3, 0x12, 0xb9, 0x69, 0xf9, 0x11, 0x3b, 0xa6, 0xb1, 0x96, 0xdc, 0x83, 0x02, 0xc3, 0x70, 0xe4, |
|
4576 |
- 0x61, 0xef, 0x90, 0x05, 0xde, 0x45, 0x1f, 0x8e, 0x07, 0xc8, 0xf8, 0x68, 0xa3, 0x20, 0xf9, 0xcf, |
|
4577 |
- 0x58, 0xe0, 0x91, 0x5b, 0x40, 0x1c, 0xdf, 0x72, 0x47, 0x36, 0xf6, 0x02, 0xd7, 0xee, 0xc9, 0x4f, |
|
4578 |
- 0xa0, 0x68, 0xde, 0x1c, 0x5d, 0x52, 0x4f, 0xb6, 0x5c, 0x5b, 0x0e, 0xb5, 0xd2, 0xb7, 0x1a, 0xc0, |
|
4579 |
- 0xa9, 0x0f, 0x89, 0xf3, 0xe7, 0x63, 0xd0, 0x4d, 0x2b, 0xe2, 0x33, 0x37, 0x2d, 0x0a, 0xe6, 0xb5, |
|
4580 |
- 0xb9, 0x2f, 0xb5, 0x2e, 0xb0, 0xfb, 0x8e, 0x6f, 0x53, 0x25, 0x21, 0x77, 0x21, 0x7b, 0xe8, 0xb8, |
|
4581 |
- 0x11, 0xb2, 0xd0, 0xb8, 0x24, 0x42, 0x72, 0xe3, 0xa2, 0x36, 0xa1, 0x31, 0x5c, 0xfb, 0x25, 0x8e, |
|
4582 |
- 0xed, 0x26, 0x86, 0xa1, 0xd9, 0x47, 0xf2, 0x29, 0xe8, 0x38, 0x46, 0x3f, 0x8a, 0x43, 0xfb, 0xc6, |
|
4583 |
- 0x5c, 0x2f, 0x94, 0xa2, 0xde, 0xe2, 0x38, 0x55, 0x2a, 0xf2, 0x3e, 0x64, 0xc7, 0x32, 0x5a, 0xff, |
|
4584 |
- 0x25, 0xa0, 0x31, 0x5b, 0xfa, 0x49, 0x83, 0x05, 0x61, 0xe8, 0x4c, 0x18, 0xb4, 0x97, 0x0f, 0xc3, |
|
4585 |
- 0x1a, 0xe8, 0x2a, 0x11, 0xe9, 0xf9, 0xdf, 0x1e, 0x99, 0x12, 0xaa, 0x48, 0xf2, 0x21, 0xc0, 0x4c, |
|
4586 |
- 0x02, 0x2f, 0xd6, 0xe5, 0x83, 0x38, 0xab, 0x6f, 0xfd, 0xa3, 0xc1, 0x95, 0x19, 0x57, 0xc8, 0x1d, |
|
4587 |
- 0x58, 0xd9, 0x5f, 0xdf, 0x6d, 0xb6, 0x7b, 0xeb, 0xcd, 0xdd, 0xce, 0x56, 0xb7, 0xb7, 0xd7, 0xbd, |
|
4588 |
- 0xdf, 0xdd, 0xda, 0xef, 0x2e, 0xa5, 0x4a, 0xa5, 0xc7, 0x4f, 0xaa, 0xd7, 0x66, 0xf0, 0x3d, 0x7f, |
|
4589 |
- 0xe0, 0x07, 0x47, 0xdc, 0xf1, 0xe5, 0x73, 0xaa, 0x26, 0x6d, 0xad, 0xef, 0xb6, 0x96, 0xb4, 0xd2, |
|
4590 |
- 0xff, 0x1e, 0x3f, 0xa9, 0x5e, 0x9d, 0x11, 0x35, 0x19, 0xca, 0xc9, 0x74, 0x5e, 0xb3, 0xb7, 0xbd, |
|
4591 |
- 0xc1, 0x35, 0xe9, 0x44, 0xcd, 0xde, 0xd0, 0x4e, 0xd2, 0xd0, 0xd6, 0xe6, 0xd6, 0x83, 0xd6, 0x52, |
|
4592 |
- 0x26, 0x51, 0x43, 0xd1, 0x0b, 0xc6, 0x58, 0xba, 0xfe, 0xcd, 0xf7, 0xe5, 0xd4, 0xcf, 0x3f, 0x94, |
|
4593 |
- 0x67, 0x5f, 0x75, 0xcd, 0x83, 0x05, 0x71, 0x44, 0xec, 0x78, 0x51, 0x7d, 0x51, 0x23, 0x96, 0xaa, |
|
4594 |
- 0x2f, 0xaa, 0xa7, 0xda, 0xd5, 0x5f, 0x7f, 0xfc, 0xfb, 0xbb, 0xf4, 0x15, 0x28, 0x0a, 0xe2, 0x6d, |
|
4595 |
- 0xcf, 0xf4, 0xcd, 0x3e, 0xb2, 0x77, 0xb4, 0x86, 0xf1, 0xf4, 0x59, 0x39, 0xf5, 0xfb, 0xb3, 0x72, |
|
4596 |
- 0xea, 0xab, 0x69, 0x59, 0x7b, 0x3a, 0x2d, 0x6b, 0xbf, 0x4d, 0xcb, 0xda, 0x9f, 0xd3, 0xb2, 0x76, |
|
4597 |
- 0xa0, 0x8b, 0x3f, 0x90, 0xef, 0xfd, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xf8, 0x53, 0xd9, 0x73, 0xb7, |
|
4598 |
- 0x0a, 0x00, 0x00, |
|
4525 |
+ // 1186 bytes of a gzipped FileDescriptorProto |
|
4526 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x96, 0xbd, 0x73, 0x1b, 0xc5, |
|
4527 |
+ 0x1b, 0xc7, 0x75, 0x8a, 0x7c, 0x92, 0x1e, 0xdb, 0x89, 0x67, 0xe3, 0x24, 0xf7, 0xd3, 0x2f, 0xc8, |
|
4528 |
+ 0x42, 0x0c, 0x90, 0x49, 0x82, 0x0c, 0x26, 0x24, 0x03, 0x04, 0x66, 0x2c, 0x59, 0x8c, 0x44, 0xc6, |
|
4529 |
+ 0x2f, 0xb3, 0xb6, 0x93, 0x52, 0x73, 0xbe, 0x7b, 0xac, 0x1c, 0xba, 0xbb, 0x15, 0x7b, 0x27, 0x39, |
|
4530 |
+ 0xee, 0x28, 0x28, 0x98, 0xf4, 0xcc, 0xd0, 0xa4, 0x82, 0x9a, 0x86, 0x0e, 0xfe, 0x81, 0x0c, 0x15, |
|
4531 |
+ 0x25, 0x34, 0x1a, 0xa2, 0x92, 0x82, 0xbf, 0x80, 0x82, 0xd9, 0x97, 0xf3, 0x8b, 0x72, 0xb2, 0x49, |
|
4532 |
+ 0xa5, 0xbd, 0xbd, 0xcf, 0xf7, 0xd9, 0x67, 0x9f, 0xb7, 0x13, 0xdc, 0xec, 0x7a, 0xf1, 0xe3, 0xc1, |
|
4533 |
+ 0x5e, 0xcd, 0x61, 0xc1, 0xb2, 0xcb, 0x9c, 0x1e, 0xf2, 0xe5, 0xe8, 0xc0, 0xe6, 0x41, 0xcf, 0x8b, |
|
4534 |
+ 0x97, 0xed, 0xbe, 0xb7, 0x7c, 0x60, 0xc7, 0xce, 0xe3, 0x5a, 0x9f, 0xb3, 0x98, 0x11, 0xa2, 0x80, |
|
4535 |
+ 0x5a, 0x02, 0xd4, 0x86, 0xef, 0x95, 0xce, 0xd3, 0x47, 0x7d, 0x74, 0x22, 0xa5, 0x2f, 0xdd, 0x3e, |
|
4536 |
+ 0x87, 0x65, 0x7b, 0x5f, 0xa0, 0x13, 0x27, 0xf4, 0x79, 0x96, 0xe3, 0xc3, 0x3e, 0x26, 0xec, 0x62, |
|
4537 |
+ 0x97, 0x75, 0x99, 0x5c, 0x2e, 0x8b, 0x95, 0xde, 0xbd, 0x77, 0x86, 0x05, 0x49, 0xec, 0x0d, 0xf6, |
|
4538 |
+ 0x97, 0xfb, 0xfe, 0xa0, 0xeb, 0x85, 0xfa, 0x47, 0x09, 0xab, 0x5f, 0xe7, 0xc0, 0xdc, 0x94, 0xce, |
|
4539 |
+ 0x90, 0x1a, 0xe4, 0x42, 0xe6, 0xa2, 0x65, 0x54, 0x8c, 0x1b, 0xb3, 0x2b, 0x56, 0xed, 0xe5, 0x10, |
|
4540 |
+ 0xd4, 0x36, 0x98, 0x8b, 0xad, 0x0c, 0x95, 0x1c, 0xb9, 0x07, 0xf9, 0x08, 0xf9, 0xd0, 0x73, 0xd0, |
|
4541 |
+ 0xca, 0x4a, 0xc9, 0xff, 0xd3, 0x24, 0xdb, 0x0a, 0x69, 0x65, 0x68, 0x42, 0x0b, 0x61, 0x88, 0xf1, |
|
4542 |
+ 0x01, 0xe3, 0x3d, 0xeb, 0xc2, 0x74, 0xe1, 0x86, 0x42, 0x84, 0x50, 0xd3, 0xc2, 0xc3, 0xd8, 0x8e, |
|
4543 |
+ 0x7a, 0x56, 0x6e, 0xba, 0x87, 0x3b, 0x76, 0x24, 0x24, 0x92, 0x13, 0x07, 0x39, 0xfe, 0x20, 0x8a, |
|
4544 |
+ 0x91, 0x5b, 0x33, 0xd3, 0x0f, 0x6a, 0x28, 0x44, 0x1c, 0xa4, 0x69, 0x72, 0x07, 0xcc, 0x08, 0x1d, |
|
4545 |
+ 0x8e, 0xb1, 0x65, 0x4a, 0x5d, 0x29, 0xfd, 0x66, 0x82, 0x68, 0x65, 0xa8, 0x66, 0xc9, 0x47, 0x50, |
|
4546 |
+ 0xe0, 0x18, 0xb1, 0x01, 0x77, 0xd0, 0xca, 0x4b, 0xdd, 0xf5, 0x34, 0x1d, 0xd5, 0x4c, 0x2b, 0x43, |
|
4547 |
+ 0x8f, 0x78, 0xf2, 0x09, 0x14, 0xf1, 0x49, 0x8c, 0x61, 0xe4, 0xb1, 0xd0, 0x2a, 0x48, 0xf1, 0x6b, |
|
4548 |
+ 0x69, 0xe2, 0x66, 0x02, 0xb5, 0x32, 0xf4, 0x58, 0x21, 0x1c, 0x76, 0x58, 0xb8, 0xef, 0x75, 0xad, |
|
4549 |
+ 0xe2, 0x74, 0x87, 0x1b, 0x92, 0x10, 0x0e, 0x2b, 0xb6, 0x5e, 0x48, 0x72, 0x5f, 0xdd, 0x82, 0xb9, |
|
4550 |
+ 0x6d, 0xf4, 0xd1, 0x89, 0xeb, 0x87, 0xdb, 0x3e, 0x8b, 0xc9, 0x6d, 0x00, 0x9d, 0xad, 0x8e, 0xe7, |
|
4551 |
+ 0xca, 0x8a, 0x28, 0xd6, 0xe7, 0xc7, 0xa3, 0xa5, 0xa2, 0x4e, 0x67, 0x7b, 0x8d, 0x16, 0x35, 0xd0, |
|
4552 |
+ 0x76, 0x09, 0x81, 0x5c, 0xe4, 0xb3, 0x58, 0x96, 0x41, 0x8e, 0xca, 0x75, 0x75, 0x0b, 0x2e, 0x26, |
|
4553 |
+ 0x16, 0x1b, 0x83, 0x28, 0x66, 0x81, 0xa0, 0x7a, 0x5e, 0xa8, 0xad, 0x51, 0xb9, 0x26, 0x8b, 0x30, |
|
4554 |
+ 0xe3, 0x85, 0x2e, 0x3e, 0x91, 0xd2, 0x22, 0x55, 0x0f, 0x62, 0x77, 0x68, 0xfb, 0x03, 0x94, 0xe5, |
|
4555 |
+ 0x51, 0xa4, 0xea, 0xa1, 0xfa, 0x97, 0x09, 0x85, 0xc4, 0x24, 0xb1, 0x20, 0x7b, 0xe4, 0x98, 0x39, |
|
4556 |
+ 0x1e, 0x2d, 0x65, 0xdb, 0x6b, 0xad, 0x0c, 0xcd, 0x7a, 0x2e, 0xb9, 0x05, 0x45, 0xcf, 0xed, 0xf4, |
|
4557 |
+ 0x39, 0xee, 0x7b, 0xda, 0x6c, 0x7d, 0x6e, 0x3c, 0x5a, 0x2a, 0xb4, 0xd7, 0xb6, 0xe4, 0x9e, 0x08, |
|
4558 |
+ 0xbb, 0xe7, 0xaa, 0x35, 0x59, 0x84, 0x5c, 0x68, 0x07, 0xfa, 0x20, 0x59, 0xd9, 0x76, 0x80, 0xe4, |
|
4559 |
+ 0x75, 0x98, 0x15, 0xbf, 0x89, 0x91, 0x9c, 0x7e, 0x09, 0x62, 0x53, 0x0b, 0xef, 0x83, 0xe9, 0xc8, |
|
4560 |
+ 0x6b, 0xe9, 0xca, 0xaa, 0xa6, 0x57, 0xc8, 0xc9, 0x00, 0xc8, 0xc0, 0xab, 0x50, 0xb4, 0x61, 0x5e, |
|
4561 |
+ 0xad, 0x92, 0x23, 0xcc, 0x57, 0x30, 0x32, 0xa7, 0xa4, 0xda, 0x91, 0xda, 0xa9, 0x4c, 0xe5, 0x53, |
|
4562 |
+ 0x32, 0x25, 0x2a, 0xe5, 0x38, 0x57, 0x6f, 0x42, 0x5e, 0x74, 0xaf, 0x80, 0x0b, 0x12, 0x86, 0xf1, |
|
4563 |
+ 0x68, 0xc9, 0x14, 0x8d, 0x2d, 0x49, 0x53, 0xbc, 0x6c, 0xbb, 0xe4, 0xae, 0x4e, 0xa9, 0x2a, 0xa7, |
|
4564 |
+ 0xca, 0x59, 0x8e, 0x89, 0x82, 0x11, 0xa1, 0x13, 0x3c, 0x59, 0x83, 0x79, 0x17, 0x23, 0x8f, 0xa3, |
|
4565 |
+ 0xdb, 0x89, 0x62, 0x3b, 0x46, 0x0b, 0x2a, 0xc6, 0x8d, 0x8b, 0xe9, 0xb5, 0x2c, 0x7a, 0x75, 0x5b, |
|
4566 |
+ 0x40, 0xe2, 0x52, 0x5a, 0x25, 0x9f, 0xc9, 0x0a, 0xe4, 0x38, 0xf3, 0xd1, 0x9a, 0x95, 0xe2, 0xeb, |
|
4567 |
+ 0xd3, 0x46, 0x11, 0x65, 0xbe, 0x1c, 0x47, 0x82, 0x25, 0x6d, 0x80, 0x00, 0x83, 0x3d, 0xe4, 0xd1, |
|
4568 |
+ 0x63, 0xaf, 0x6f, 0xcd, 0x49, 0xe5, 0xdb, 0xd3, 0x94, 0xdb, 0x7d, 0x74, 0x6a, 0xeb, 0x47, 0xb8, |
|
4569 |
+ 0x48, 0xee, 0xb1, 0x98, 0xac, 0xc3, 0x15, 0x8e, 0xfb, 0xc8, 0x31, 0x74, 0xd0, 0xed, 0xe8, 0xe9, |
|
4570 |
+ 0x23, 0x22, 0x36, 0x2f, 0x23, 0x76, 0x6d, 0x3c, 0x5a, 0xba, 0x4c, 0x8f, 0x00, 0x3d, 0xa8, 0x64, |
|
4571 |
+ 0xf8, 0x2e, 0xf3, 0x97, 0xb6, 0x5d, 0xf2, 0x39, 0x2c, 0x9e, 0x30, 0xa7, 0x86, 0x85, 0xb0, 0x76, |
|
4572 |
+ 0x51, 0x5a, 0xbb, 0x3a, 0x1e, 0x2d, 0x91, 0x63, 0x6b, 0x6a, 0xaa, 0x48, 0x63, 0x84, 0x4f, 0xee, |
|
4573 |
+ 0x8a, 0x86, 0x51, 0x4d, 0x74, 0x29, 0x29, 0x58, 0xd9, 0x46, 0xa7, 0x4f, 0x50, 0xdd, 0x2d, 0x4e, |
|
4574 |
+ 0x58, 0x48, 0x3b, 0x41, 0x8d, 0x81, 0xc9, 0x13, 0xf4, 0xae, 0x5b, 0xcf, 0x41, 0xb6, 0x7e, 0x58, |
|
4575 |
+ 0xfd, 0x23, 0x0b, 0x73, 0x8f, 0xc4, 0x07, 0x91, 0xe2, 0x97, 0x03, 0x8c, 0x62, 0xd2, 0x84, 0x3c, |
|
4576 |
+ 0x86, 0x31, 0xf7, 0x30, 0xb2, 0x8c, 0xca, 0x85, 0x1b, 0xb3, 0x2b, 0xb7, 0xd2, 0x62, 0x7b, 0x52, |
|
4577 |
+ 0xa2, 0x1e, 0x9a, 0x61, 0xcc, 0x0f, 0x69, 0xa2, 0x25, 0xf7, 0x61, 0x96, 0x63, 0x34, 0x08, 0xb0, |
|
4578 |
+ 0xb3, 0xcf, 0x59, 0x70, 0xd6, 0x87, 0xe3, 0x21, 0x72, 0x31, 0xda, 0x28, 0x28, 0xfe, 0x33, 0xce, |
|
4579 |
+ 0x02, 0x72, 0x1b, 0x88, 0x17, 0x3a, 0xfe, 0xc0, 0xc5, 0x0e, 0xf3, 0xdd, 0x8e, 0xfa, 0x8a, 0xca, |
|
4580 |
+ 0xe6, 0x2d, 0xd0, 0x05, 0xfd, 0x66, 0xd3, 0x77, 0xd5, 0x50, 0x2b, 0x7d, 0x6b, 0x00, 0x1c, 0xfb, |
|
4581 |
+ 0x90, 0x3a, 0x7f, 0x3e, 0x06, 0xd3, 0x76, 0x62, 0x31, 0x73, 0xb3, 0xb2, 0x60, 0xde, 0x98, 0x7a, |
|
4582 |
+ 0xa9, 0x55, 0x89, 0x3d, 0xf0, 0x42, 0x97, 0x6a, 0x09, 0xb9, 0x0b, 0xf9, 0x7d, 0xcf, 0x8f, 0x91, |
|
4583 |
+ 0x47, 0xd6, 0x05, 0x19, 0x92, 0xeb, 0x67, 0xb5, 0x09, 0x4d, 0xe0, 0xea, 0x2f, 0x49, 0x6c, 0xd7, |
|
4584 |
+ 0x31, 0x8a, 0xec, 0x2e, 0x92, 0x4f, 0xc1, 0xc4, 0x21, 0x86, 0x71, 0x12, 0xda, 0xb7, 0xa6, 0x7a, |
|
4585 |
+ 0xa1, 0x15, 0xb5, 0xa6, 0xc0, 0xa9, 0x56, 0x91, 0x0f, 0x20, 0x3f, 0x54, 0xd1, 0xfa, 0x2f, 0x01, |
|
4586 |
+ 0x4d, 0xd8, 0xd2, 0x4f, 0x06, 0xcc, 0x48, 0x43, 0x27, 0xc2, 0x60, 0xbc, 0x7a, 0x18, 0x56, 0xc0, |
|
4587 |
+ 0xd4, 0x89, 0xc8, 0x4e, 0xff, 0xf6, 0xa8, 0x94, 0x50, 0x4d, 0x92, 0x0f, 0x01, 0x26, 0x12, 0x78, |
|
4588 |
+ 0xb6, 0xae, 0xc8, 0x92, 0xac, 0xde, 0xfc, 0xc7, 0x80, 0x4b, 0x13, 0xae, 0x90, 0x3b, 0xb0, 0xf8, |
|
4589 |
+ 0x68, 0x75, 0xa7, 0xd1, 0xea, 0xac, 0x36, 0x76, 0xda, 0x9b, 0x1b, 0x9d, 0xdd, 0x8d, 0x07, 0x1b, |
|
4590 |
+ 0x9b, 0x8f, 0x36, 0x16, 0x32, 0xa5, 0xd2, 0xd3, 0x67, 0x95, 0xab, 0x13, 0xf8, 0x6e, 0xd8, 0x0b, |
|
4591 |
+ 0xd9, 0x81, 0x70, 0xfc, 0xf2, 0x29, 0x55, 0x83, 0x36, 0x57, 0x77, 0x9a, 0x0b, 0x46, 0xe9, 0x7f, |
|
4592 |
+ 0x4f, 0x9f, 0x55, 0xae, 0x4c, 0x88, 0x1a, 0x1c, 0xd5, 0x64, 0x3a, 0xad, 0xd9, 0xdd, 0x5a, 0x13, |
|
4593 |
+ 0x9a, 0x6c, 0xaa, 0x66, 0xb7, 0xef, 0xa6, 0x69, 0x68, 0x73, 0x7d, 0xf3, 0x61, 0x73, 0x21, 0x97, |
|
4594 |
+ 0xaa, 0xa1, 0x18, 0xb0, 0x21, 0x96, 0xae, 0x7d, 0xf3, 0x7d, 0x39, 0xf3, 0xf3, 0x0f, 0xe5, 0xc9, |
|
4595 |
+ 0xab, 0xae, 0x04, 0x30, 0x23, 0xb7, 0x88, 0x9b, 0x2c, 0x2a, 0xe7, 0x35, 0x62, 0xa9, 0x72, 0x5e, |
|
4596 |
+ 0x3d, 0x55, 0xaf, 0xfc, 0xfa, 0xe3, 0xdf, 0xdf, 0x65, 0x2f, 0xc1, 0xbc, 0x24, 0xde, 0x09, 0xec, |
|
4597 |
+ 0xd0, 0xee, 0x22, 0x7f, 0xd7, 0xa8, 0x5b, 0xcf, 0x5f, 0x94, 0x33, 0xbf, 0xbf, 0x28, 0x67, 0xbe, |
|
4598 |
+ 0x1a, 0x97, 0x8d, 0xe7, 0xe3, 0xb2, 0xf1, 0xdb, 0xb8, 0x6c, 0xfc, 0x39, 0x2e, 0x1b, 0x7b, 0xa6, |
|
4599 |
+ 0xfc, 0x03, 0xf9, 0xfe, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe6, 0x76, 0x89, 0xef, 0x57, 0x0b, |
|
4600 |
+ 0x00, 0x00, |
|
4599 | 4601 |
} |
... | ... |
@@ -2,11 +2,11 @@ syntax = "proto3"; |
2 | 2 |
|
3 | 3 |
package docker.swarmkit.v1; |
4 | 4 |
|
5 |
-import "specs.proto"; |
|
6 |
-import "objects.proto"; |
|
7 |
-import "types.proto"; |
|
5 |
+import "github.com/docker/swarmkit/api/specs.proto"; |
|
6 |
+import "github.com/docker/swarmkit/api/objects.proto"; |
|
7 |
+import "github.com/docker/swarmkit/api/types.proto"; |
|
8 | 8 |
import "gogoproto/gogo.proto"; |
9 |
-import "plugin/plugin.proto"; |
|
9 |
+import "github.com/docker/swarmkit/protobuf/plugin/plugin.proto"; |
|
10 | 10 |
|
11 | 11 |
message Object { |
12 | 12 |
oneof Object { |
... | ... |
@@ -68,14 +68,11 @@ type SecurityConfig struct { |
68 | 68 |
renewalMu sync.Mutex |
69 | 69 |
|
70 | 70 |
rootCA *RootCA |
71 |
- externalCA *ExternalCA |
|
72 | 71 |
keyReadWriter *KeyReadWriter |
73 | 72 |
|
74 | 73 |
certificate *tls.Certificate |
75 | 74 |
issuerInfo *IssuerInfo |
76 | 75 |
|
77 |
- externalCAClientRootPool *x509.CertPool |
|
78 |
- |
|
79 | 76 |
ServerTLSCreds *MutableTLSCreds |
80 | 77 |
ClientTLSCreds *MutableTLSCreds |
81 | 78 |
|
... | ... |
@@ -90,7 +87,7 @@ type CertificateUpdate struct { |
90 | 90 |
Err error |
91 | 91 |
} |
92 | 92 |
|
93 |
-func validateRootCAAndTLSCert(rootCA *RootCA, externalCARootPool *x509.CertPool, tlsKeyPair *tls.Certificate) error { |
|
93 |
+func validateRootCAAndTLSCert(rootCA *RootCA, tlsKeyPair *tls.Certificate) error { |
|
94 | 94 |
var ( |
95 | 95 |
leafCert *x509.Certificate |
96 | 96 |
intermediatePool *x509.CertPool |
... | ... |
@@ -116,10 +113,6 @@ func validateRootCAAndTLSCert(rootCA *RootCA, externalCARootPool *x509.CertPool, |
116 | 116 |
if _, err := leafCert.Verify(opts); err != nil { |
117 | 117 |
return errors.Wrap(err, "new root CA does not match existing TLS credentials") |
118 | 118 |
} |
119 |
- opts.Roots = externalCARootPool |
|
120 |
- if _, err := leafCert.Verify(opts); err != nil { |
|
121 |
- return errors.Wrap(err, "new external root pool does not match existing TLS credentials") |
|
122 |
- } |
|
123 | 119 |
return nil |
124 | 120 |
} |
125 | 121 |
|
... | ... |
@@ -139,16 +132,7 @@ func NewSecurityConfig(rootCA *RootCA, krw *KeyReadWriter, tlsKeyPair *tls.Certi |
139 | 139 |
return nil, nil, err |
140 | 140 |
} |
141 | 141 |
|
142 |
- // Make a new TLS config for the external CA client without a |
|
143 |
- // ServerName value set. |
|
144 |
- externalCATLSConfig := &tls.Config{ |
|
145 |
- Certificates: []tls.Certificate{*tlsKeyPair}, |
|
146 |
- RootCAs: rootCA.Pool, |
|
147 |
- MinVersion: tls.VersionTLS12, |
|
148 |
- } |
|
149 |
- |
|
150 | 142 |
q := watch.NewQueue() |
151 |
- |
|
152 | 143 |
return &SecurityConfig{ |
153 | 144 |
rootCA: rootCA, |
154 | 145 |
keyReadWriter: krw, |
... | ... |
@@ -157,10 +141,8 @@ func NewSecurityConfig(rootCA *RootCA, krw *KeyReadWriter, tlsKeyPair *tls.Certi |
157 | 157 |
issuerInfo: issuerInfo, |
158 | 158 |
queue: q, |
159 | 159 |
|
160 |
- externalCA: NewExternalCA(rootCA, externalCATLSConfig), |
|
161 |
- ClientTLSCreds: clientTLSCreds, |
|
162 |
- ServerTLSCreds: serverTLSCreds, |
|
163 |
- externalCAClientRootPool: rootCA.Pool, |
|
160 |
+ ClientTLSCreds: clientTLSCreds, |
|
161 |
+ ServerTLSCreds: serverTLSCreds, |
|
164 | 162 |
}, q.Close, nil |
165 | 163 |
} |
166 | 164 |
|
... | ... |
@@ -172,11 +154,6 @@ func (s *SecurityConfig) RootCA() *RootCA { |
172 | 172 |
return s.rootCA |
173 | 173 |
} |
174 | 174 |
|
175 |
-// ExternalCA returns the external CA. |
|
176 |
-func (s *SecurityConfig) ExternalCA() *ExternalCA { |
|
177 |
- return s.externalCA |
|
178 |
-} |
|
179 |
- |
|
180 | 175 |
// KeyWriter returns the object that can write keys to disk |
181 | 176 |
func (s *SecurityConfig) KeyWriter() KeyWriter { |
182 | 177 |
return s.keyReadWriter |
... | ... |
@@ -188,19 +165,16 @@ func (s *SecurityConfig) KeyReader() KeyReader { |
188 | 188 |
} |
189 | 189 |
|
190 | 190 |
// UpdateRootCA replaces the root CA with a new root CA |
191 |
-func (s *SecurityConfig) UpdateRootCA(rootCA *RootCA, externalCARootPool *x509.CertPool) error { |
|
191 |
+func (s *SecurityConfig) UpdateRootCA(rootCA *RootCA) error { |
|
192 | 192 |
s.mu.Lock() |
193 | 193 |
defer s.mu.Unlock() |
194 | 194 |
|
195 | 195 |
// refuse to update the root CA if the current TLS credentials do not validate against it |
196 |
- if err := validateRootCAAndTLSCert(rootCA, externalCARootPool, s.certificate); err != nil { |
|
196 |
+ if err := validateRootCAAndTLSCert(rootCA, s.certificate); err != nil { |
|
197 | 197 |
return err |
198 | 198 |
} |
199 | 199 |
|
200 | 200 |
s.rootCA = rootCA |
201 |
- s.externalCAClientRootPool = externalCARootPool |
|
202 |
- s.externalCA.UpdateRootCA(rootCA) |
|
203 |
- |
|
204 | 201 |
return s.updateTLSCredentials(s.certificate, s.issuerInfo) |
205 | 202 |
} |
206 | 203 |
|
... | ... |
@@ -233,14 +207,6 @@ func (s *SecurityConfig) updateTLSCredentials(certificate *tls.Certificate, issu |
233 | 233 |
return errors.Wrap(err, "failed to update the client credentials") |
234 | 234 |
} |
235 | 235 |
|
236 |
- // Update the external CA to use the new client TLS |
|
237 |
- // config using a copy without a serverName specified. |
|
238 |
- s.externalCA.UpdateTLSConfig(&tls.Config{ |
|
239 |
- Certificates: certs, |
|
240 |
- RootCAs: s.externalCAClientRootPool, |
|
241 |
- MinVersion: tls.VersionTLS12, |
|
242 |
- }) |
|
243 |
- |
|
244 | 236 |
if err := s.ServerTLSCreds.loadNewTLSConfig(serverConfig); err != nil { |
245 | 237 |
return errors.Wrap(err, "failed to update the server TLS credentials") |
246 | 238 |
} |
... | ... |
@@ -507,7 +473,7 @@ func updateRootThenUpdateCert(ctx context.Context, s *SecurityConfig, connBroker |
507 | 507 |
return nil, nil, err |
508 | 508 |
} |
509 | 509 |
// validate against the existing security config creds |
510 |
- if err := s.UpdateRootCA(&rootCA, rootCA.Pool); err != nil { |
|
510 |
+ if err := s.UpdateRootCA(&rootCA); err != nil { |
|
511 | 511 |
return nil, nil, err |
512 | 512 |
} |
513 | 513 |
if err := SaveRootCA(rootCA, rootPaths); err != nil { |
... | ... |
@@ -47,18 +47,28 @@ var ErrNoExternalCAURLs = errors.New("no external CA URLs") |
47 | 47 |
type ExternalCA struct { |
48 | 48 |
ExternalRequestTimeout time.Duration |
49 | 49 |
|
50 |
- mu sync.Mutex |
|
51 |
- rootCA *RootCA |
|
52 |
- urls []string |
|
53 |
- client *http.Client |
|
50 |
+ mu sync.Mutex |
|
51 |
+ intermediates []byte |
|
52 |
+ urls []string |
|
53 |
+ client *http.Client |
|
54 |
+} |
|
55 |
+ |
|
56 |
+// NewExternalCATLSConfig takes a TLS certificate and root pool and returns a TLS config that can be updated |
|
57 |
+// without killing existing connections |
|
58 |
+func NewExternalCATLSConfig(certs []tls.Certificate, rootPool *x509.CertPool) *tls.Config { |
|
59 |
+ return &tls.Config{ |
|
60 |
+ Certificates: certs, |
|
61 |
+ RootCAs: rootPool, |
|
62 |
+ MinVersion: tls.VersionTLS12, |
|
63 |
+ } |
|
54 | 64 |
} |
55 | 65 |
|
56 | 66 |
// NewExternalCA creates a new ExternalCA which uses the given tlsConfig to |
57 | 67 |
// authenticate to any of the given URLS of CFSSL API endpoints. |
58 |
-func NewExternalCA(rootCA *RootCA, tlsConfig *tls.Config, urls ...string) *ExternalCA { |
|
68 |
+func NewExternalCA(intermediates []byte, tlsConfig *tls.Config, urls ...string) *ExternalCA { |
|
59 | 69 |
return &ExternalCA{ |
60 | 70 |
ExternalRequestTimeout: 5 * time.Second, |
61 |
- rootCA: rootCA, |
|
71 |
+ intermediates: intermediates, |
|
62 | 72 |
urls: urls, |
63 | 73 |
client: &http.Client{ |
64 | 74 |
Transport: &http.Transport{ |
... | ... |
@@ -68,19 +78,6 @@ func NewExternalCA(rootCA *RootCA, tlsConfig *tls.Config, urls ...string) *Exter |
68 | 68 |
} |
69 | 69 |
} |
70 | 70 |
|
71 |
-// Copy returns a copy of the external CA that can be updated independently |
|
72 |
-func (eca *ExternalCA) Copy() *ExternalCA { |
|
73 |
- eca.mu.Lock() |
|
74 |
- defer eca.mu.Unlock() |
|
75 |
- |
|
76 |
- return &ExternalCA{ |
|
77 |
- ExternalRequestTimeout: eca.ExternalRequestTimeout, |
|
78 |
- rootCA: eca.rootCA, |
|
79 |
- urls: eca.urls, |
|
80 |
- client: eca.client, |
|
81 |
- } |
|
82 |
-} |
|
83 |
- |
|
84 | 71 |
// UpdateTLSConfig updates the HTTP Client for this ExternalCA by creating |
85 | 72 |
// a new client which uses the given tlsConfig. |
86 | 73 |
func (eca *ExternalCA) UpdateTLSConfig(tlsConfig *tls.Config) { |
... | ... |
@@ -102,13 +99,6 @@ func (eca *ExternalCA) UpdateURLs(urls ...string) { |
102 | 102 |
eca.urls = urls |
103 | 103 |
} |
104 | 104 |
|
105 |
-// UpdateRootCA changes the root CA used to append intermediates |
|
106 |
-func (eca *ExternalCA) UpdateRootCA(rca *RootCA) { |
|
107 |
- eca.mu.Lock() |
|
108 |
- eca.rootCA = rca |
|
109 |
- eca.mu.Unlock() |
|
110 |
-} |
|
111 |
- |
|
112 | 105 |
// Sign signs a new certificate by proxying the given certificate signing |
113 | 106 |
// request to an external CFSSL API server. |
114 | 107 |
func (eca *ExternalCA) Sign(ctx context.Context, req signer.SignRequest) (cert []byte, err error) { |
... | ... |
@@ -117,7 +107,7 @@ func (eca *ExternalCA) Sign(ctx context.Context, req signer.SignRequest) (cert [ |
117 | 117 |
eca.mu.Lock() |
118 | 118 |
urls := eca.urls |
119 | 119 |
client := eca.client |
120 |
- intermediates := eca.rootCA.Intermediates |
|
120 |
+ intermediates := eca.intermediates |
|
121 | 121 |
eca.mu.Unlock() |
122 | 122 |
|
123 | 123 |
if len(urls) == 0 { |
... | ... |
@@ -25,13 +25,6 @@ const ( |
25 | 25 |
defaultRootReconciliationInterval = 3 * time.Second |
26 | 26 |
) |
27 | 27 |
|
28 |
-// APISecurityConfigUpdater knows how to update a SecurityConfig from an api.Cluster object |
|
29 |
-type APISecurityConfigUpdater interface { |
|
30 |
- UpdateRootCA(ctx context.Context, cluster *api.Cluster) error |
|
31 |
-} |
|
32 |
- |
|
33 |
-var _ APISecurityConfigUpdater = &Server{} |
|
34 |
- |
|
35 | 28 |
// Server is the CA and NodeCA API gRPC server. |
36 | 29 |
// TODO(aaronl): At some point we may want to have separate implementations of |
37 | 30 |
// CA, NodeCA, and other hypothetical future CA services. At the moment, |
... | ... |
@@ -43,6 +36,10 @@ type Server struct { |
43 | 43 |
cancel func() |
44 | 44 |
store *store.MemoryStore |
45 | 45 |
securityConfig *SecurityConfig |
46 |
+ clusterID string |
|
47 |
+ localRootCA *RootCA |
|
48 |
+ externalCA *ExternalCA |
|
49 |
+ externalCAPool *x509.CertPool |
|
46 | 50 |
joinTokens *api.JoinTokens |
47 | 51 |
reconciliationRetryInterval time.Duration |
48 | 52 |
|
... | ... |
@@ -60,10 +57,12 @@ type Server struct { |
60 | 60 |
// the security config as a result |
61 | 61 |
lastSeenClusterRootCA *api.RootCA |
62 | 62 |
lastSeenExternalCAs []*api.ExternalCA |
63 |
- secConfigMu sync.Mutex |
|
64 | 63 |
|
65 |
- // before we update the security config with the new root CA, we need to be able to save the root certs |
|
66 |
- rootPaths CertPaths |
|
64 |
+ // This mutex protects the components of the CA server used to issue new certificates |
|
65 |
+ // (and any attributes used to update those components): `lastSeenClusterRootCA` and |
|
66 |
+ // `lastSeenExternalCA`, which are used to update `externalCA` and the `rootCA` object |
|
67 |
+ // of the SecurityConfig |
|
68 |
+ signingMu sync.Mutex |
|
67 | 69 |
|
68 | 70 |
// lets us monitor and finish root rotations |
69 | 71 |
rootReconciler *rootRotationReconciler |
... | ... |
@@ -78,18 +77,36 @@ func DefaultCAConfig() api.CAConfig { |
78 | 78 |
} |
79 | 79 |
|
80 | 80 |
// NewServer creates a CA API server. |
81 |
-func NewServer(store *store.MemoryStore, securityConfig *SecurityConfig, rootCAPaths CertPaths) *Server { |
|
81 |
+func NewServer(store *store.MemoryStore, securityConfig *SecurityConfig) *Server { |
|
82 | 82 |
return &Server{ |
83 | 83 |
store: store, |
84 | 84 |
securityConfig: securityConfig, |
85 |
+ localRootCA: securityConfig.RootCA(), |
|
86 |
+ externalCA: NewExternalCA(nil, nil), |
|
85 | 87 |
pending: make(map[string]*api.Node), |
86 | 88 |
started: make(chan struct{}), |
87 | 89 |
reconciliationRetryInterval: defaultReconciliationRetryInterval, |
88 | 90 |
rootReconciliationRetryInterval: defaultRootReconciliationInterval, |
89 |
- rootPaths: rootCAPaths, |
|
91 |
+ clusterID: securityConfig.ClientTLSCreds.Organization(), |
|
90 | 92 |
} |
91 | 93 |
} |
92 | 94 |
|
95 |
+// ExternalCA returns the current external CA - this is exposed to support unit testing only, and the external CA |
|
96 |
+// should really be a private field |
|
97 |
+func (s *Server) ExternalCA() *ExternalCA { |
|
98 |
+ s.signingMu.Lock() |
|
99 |
+ defer s.signingMu.Unlock() |
|
100 |
+ return s.externalCA |
|
101 |
+} |
|
102 |
+ |
|
103 |
+// RootCA returns the current local root CA - this is exposed to support unit testing only, and the root CA |
|
104 |
+// should really be a private field |
|
105 |
+func (s *Server) RootCA() *RootCA { |
|
106 |
+ s.signingMu.Lock() |
|
107 |
+ defer s.signingMu.Unlock() |
|
108 |
+ return s.localRootCA |
|
109 |
+} |
|
110 |
+ |
|
93 | 111 |
// SetReconciliationRetryInterval changes the time interval between |
94 | 112 |
// reconciliation attempts. This function must be called before Run. |
95 | 113 |
func (s *Server) SetReconciliationRetryInterval(reconciliationRetryInterval time.Duration) { |
... | ... |
@@ -114,7 +131,7 @@ func (s *Server) GetUnlockKey(ctx context.Context, request *api.GetUnlockKeyRequ |
114 | 114 |
// a cached value. |
115 | 115 |
resp := api.GetUnlockKeyResponse{} |
116 | 116 |
s.store.View(func(tx store.ReadTx) { |
117 |
- cluster := store.GetCluster(tx, s.securityConfig.ClientTLSCreds.Organization()) |
|
117 |
+ cluster := store.GetCluster(tx, s.clusterID) |
|
118 | 118 |
resp.Version = cluster.Meta.Version |
119 | 119 |
if cluster.Spec.EncryptionConfig.AutoLockManagers { |
120 | 120 |
for _, encryptionKey := range cluster.UnlockKeys { |
... | ... |
@@ -222,7 +239,7 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
222 | 222 |
return nil, grpc.Errorf(codes.InvalidArgument, codes.InvalidArgument.String()) |
223 | 223 |
} |
224 | 224 |
|
225 |
- if _, err := s.isRunningLocked(); err != nil { |
|
225 |
+ if err := s.isReadyLocked(); err != nil { |
|
226 | 226 |
return nil, err |
227 | 227 |
} |
228 | 228 |
|
... | ... |
@@ -233,8 +250,7 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
233 | 233 |
) |
234 | 234 |
|
235 | 235 |
s.store.View(func(readTx store.ReadTx) { |
236 |
- clusters, err = store.FindClusters(readTx, store.ByName("default")) |
|
237 |
- |
|
236 |
+ clusters, err = store.FindClusters(readTx, store.ByName(store.DefaultClusterName)) |
|
238 | 237 |
}) |
239 | 238 |
|
240 | 239 |
// Not having a cluster object yet means we can't check |
... | ... |
@@ -254,14 +270,14 @@ func (s *Server) IssueNodeCertificate(ctx context.Context, request *api.IssueNod |
254 | 254 |
|
255 | 255 |
// If the remote node is a worker (either forwarded by a manager, or calling directly), |
256 | 256 |
// issue a renew worker certificate entry with the correct ID |
257 |
- nodeID, err := AuthorizeForwardedRoleAndOrg(ctx, []string{WorkerRole}, []string{ManagerRole}, s.securityConfig.ClientTLSCreds.Organization(), blacklistedCerts) |
|
257 |
+ nodeID, err := AuthorizeForwardedRoleAndOrg(ctx, []string{WorkerRole}, []string{ManagerRole}, s.clusterID, blacklistedCerts) |
|
258 | 258 |
if err == nil { |
259 | 259 |
return s.issueRenewCertificate(ctx, nodeID, request.CSR) |
260 | 260 |
} |
261 | 261 |
|
262 | 262 |
// If the remote node is a manager (either forwarded by another manager, or calling directly), |
263 | 263 |
// issue a renew certificate entry with the correct ID |
264 |
- nodeID, err = AuthorizeForwardedRoleAndOrg(ctx, []string{ManagerRole}, []string{ManagerRole}, s.securityConfig.ClientTLSCreds.Organization(), blacklistedCerts) |
|
264 |
+ nodeID, err = AuthorizeForwardedRoleAndOrg(ctx, []string{ManagerRole}, []string{ManagerRole}, s.clusterID, blacklistedCerts) |
|
265 | 265 |
if err == nil { |
266 | 266 |
return s.issueRenewCertificate(ctx, nodeID, request.CSR) |
267 | 267 |
} |
... | ... |
@@ -393,8 +409,11 @@ func (s *Server) GetRootCACertificate(ctx context.Context, request *api.GetRootC |
393 | 393 |
"method": "GetRootCACertificate", |
394 | 394 |
}) |
395 | 395 |
|
396 |
+ s.signingMu.Lock() |
|
397 |
+ defer s.signingMu.Unlock() |
|
398 |
+ |
|
396 | 399 |
return &api.GetRootCACertificateResponse{ |
397 |
- Certificate: s.securityConfig.RootCA().Certs, |
|
400 |
+ Certificate: s.localRootCA.Certs, |
|
398 | 401 |
}, nil |
399 | 402 |
} |
400 | 403 |
|
... | ... |
@@ -409,47 +428,51 @@ func (s *Server) Run(ctx context.Context) error { |
409 | 409 |
s.wg.Add(1) |
410 | 410 |
s.ctx, s.cancel = context.WithCancel(log.WithModule(ctx, "ca")) |
411 | 411 |
ctx = s.ctx |
412 |
- // we need to set it on the server, because `Server.UpdateRootCA` can be called from outside the Run function |
|
413 |
- s.rootReconciler = &rootRotationReconciler{ |
|
414 |
- ctx: log.WithField(ctx, "method", "(*Server).rootRotationReconciler"), |
|
415 |
- clusterID: s.securityConfig.ClientTLSCreds.Organization(), |
|
416 |
- store: s.store, |
|
417 |
- batchUpdateInterval: s.rootReconciliationRetryInterval, |
|
418 |
- } |
|
419 |
- rootReconciler := s.rootReconciler |
|
420 | 412 |
s.mu.Unlock() |
421 | 413 |
defer s.wg.Done() |
422 | 414 |
defer func() { |
423 | 415 |
s.mu.Lock() |
424 |
- s.rootReconciler = nil |
|
425 | 416 |
s.mu.Unlock() |
426 | 417 |
}() |
427 | 418 |
|
428 | 419 |
// Retrieve the channels to keep track of changes in the cluster |
429 | 420 |
// Retrieve all the currently registered nodes |
430 |
- var nodes []*api.Node |
|
431 |
- |
|
421 |
+ var ( |
|
422 |
+ nodes []*api.Node |
|
423 |
+ cluster *api.Cluster |
|
424 |
+ err error |
|
425 |
+ ) |
|
432 | 426 |
updates, cancel, err := store.ViewAndWatch( |
433 | 427 |
s.store, |
434 | 428 |
func(readTx store.ReadTx) error { |
435 |
- clusters, err := store.FindClusters(readTx, store.ByName(store.DefaultClusterName)) |
|
436 |
- if err != nil { |
|
437 |
- return err |
|
438 |
- } |
|
439 |
- if len(clusters) != 1 { |
|
429 |
+ cluster = store.GetCluster(readTx, s.clusterID) |
|
430 |
+ if cluster == nil { |
|
440 | 431 |
return errors.New("could not find cluster object") |
441 | 432 |
} |
442 |
- s.UpdateRootCA(ctx, clusters[0]) // call once to ensure that the join tokens are always set |
|
443 | 433 |
nodes, err = store.FindNodes(readTx, store.All) |
444 | 434 |
return err |
445 | 435 |
}, |
446 | 436 |
api.EventCreateNode{}, |
447 | 437 |
api.EventUpdateNode{}, |
448 | 438 |
api.EventDeleteNode{}, |
439 |
+ api.EventUpdateCluster{ |
|
440 |
+ Cluster: &api.Cluster{ID: s.clusterID}, |
|
441 |
+ Checks: []api.ClusterCheckFunc{api.ClusterCheckID}, |
|
442 |
+ }, |
|
449 | 443 |
) |
450 | 444 |
|
451 |
- // Do this after updateCluster has been called, so isRunning never |
|
452 |
- // returns true without joinTokens being set correctly. |
|
445 |
+ // call once to ensure that the join tokens and local/external CA signer are always set |
|
446 |
+ rootReconciler := &rootRotationReconciler{ |
|
447 |
+ ctx: log.WithField(ctx, "method", "(*Server).rootRotationReconciler"), |
|
448 |
+ clusterID: s.clusterID, |
|
449 |
+ store: s.store, |
|
450 |
+ batchUpdateInterval: s.rootReconciliationRetryInterval, |
|
451 |
+ } |
|
452 |
+ |
|
453 |
+ s.UpdateRootCA(ctx, cluster, rootReconciler) |
|
454 |
+ |
|
455 |
+ // Do this after updateCluster has been called, so Ready() and isRunning never returns true without |
|
456 |
+ // the join tokens and external CA/security config's root CA being set correctly |
|
453 | 457 |
s.mu.Lock() |
454 | 458 |
close(s.started) |
455 | 459 |
s.mu.Unlock() |
... | ... |
@@ -475,6 +498,9 @@ func (s *Server) Run(ctx context.Context) error { |
475 | 475 |
ticker := time.NewTicker(s.reconciliationRetryInterval) |
476 | 476 |
defer ticker.Stop() |
477 | 477 |
|
478 |
+ externalTLSCredsChange, externalTLSWatchCancel := s.securityConfig.Watch() |
|
479 |
+ defer externalTLSWatchCancel() |
|
480 |
+ |
|
478 | 481 |
// Watch for new nodes being created, new nodes being updated, and changes |
479 | 482 |
// to the cluster |
480 | 483 |
for { |
... | ... |
@@ -499,8 +525,29 @@ func (s *Server) Run(ctx context.Context) error { |
499 | 499 |
rootReconciler.UpdateNode(v.Node) |
500 | 500 |
case api.EventDeleteNode: |
501 | 501 |
rootReconciler.DeleteNode(v.Node) |
502 |
+ case api.EventUpdateCluster: |
|
503 |
+ if v.Cluster.ID == s.clusterID { |
|
504 |
+ s.UpdateRootCA(ctx, v.Cluster, rootReconciler) |
|
505 |
+ } |
|
502 | 506 |
} |
503 |
- |
|
507 |
+ case <-externalTLSCredsChange: |
|
508 |
+ // The TLS certificates can rotate independently of the root CA (and hence which roots the |
|
509 |
+ // external CA trusts) and external CA URLs. It's possible that the root CA update is received |
|
510 |
+ // before the external TLS cred change notification. During that period, it is possible that |
|
511 |
+ // the TLS creds will expire or otherwise fail to authorize against external CAs. However, in |
|
512 |
+ // that case signing will just fail with a recoverable connectivity error - the state of the |
|
513 |
+ // certificate issuance is left as pending, and on the next tick, the server will try to sign |
|
514 |
+ // all nodes with pending certs again (by which time the TLS cred change will have been |
|
515 |
+ // received). |
|
516 |
+ |
|
517 |
+ // Note that if the external CA changes, the new external CA *MUST* trust the current server's |
|
518 |
+ // certificate issuer, and this server's certificates should not be extremely close to expiry, |
|
519 |
+ // otherwise this server would not be able to get new TLS certificates and will no longer be |
|
520 |
+ // able to function. |
|
521 |
+ s.signingMu.Lock() |
|
522 |
+ s.externalCA.UpdateTLSConfig(NewExternalCATLSConfig( |
|
523 |
+ s.securityConfig.ClientTLSCreds.Config().Certificates, s.externalCAPool)) |
|
524 |
+ s.signingMu.Unlock() |
|
504 | 525 |
case <-ticker.C: |
505 | 526 |
for _, node := range s.pending { |
506 | 527 |
if err := s.evaluateAndSignNodeCert(ctx, node); err != nil { |
... | ... |
@@ -527,6 +574,7 @@ func (s *Server) Stop() error { |
527 | 527 |
} |
528 | 528 |
s.cancel() |
529 | 529 |
s.started = make(chan struct{}) |
530 |
+ s.joinTokens = nil |
|
530 | 531 |
s.mu.Unlock() |
531 | 532 |
|
532 | 533 |
// Wait for Run to complete |
... | ... |
@@ -553,6 +601,18 @@ func (s *Server) isRunningLocked() (context.Context, error) { |
553 | 553 |
return ctx, nil |
554 | 554 |
} |
555 | 555 |
|
556 |
+func (s *Server) isReadyLocked() error { |
|
557 |
+ s.mu.Lock() |
|
558 |
+ defer s.mu.Unlock() |
|
559 |
+ if !s.isRunning() { |
|
560 |
+ return grpc.Errorf(codes.Aborted, "CA signer is stopped") |
|
561 |
+ } |
|
562 |
+ if s.joinTokens == nil { |
|
563 |
+ return grpc.Errorf(codes.Aborted, "CA signer is still starting") |
|
564 |
+ } |
|
565 |
+ return nil |
|
566 |
+} |
|
567 |
+ |
|
556 | 568 |
func (s *Server) isRunning() bool { |
557 | 569 |
if s.ctx == nil { |
558 | 570 |
return false |
... | ... |
@@ -565,33 +625,59 @@ func (s *Server) isRunning() bool { |
565 | 565 |
return true |
566 | 566 |
} |
567 | 567 |
|
568 |
+// filterExternalCAURLS returns a list of external CA urls filtered by the desired cert. |
|
569 |
+func filterExternalCAURLS(ctx context.Context, desiredCert, defaultCert []byte, apiExternalCAs []*api.ExternalCA) (urls []string) { |
|
570 |
+ desiredCert = NormalizePEMs(desiredCert) |
|
571 |
+ |
|
572 |
+ // TODO(aaronl): In the future, this will be abstracted with an ExternalCA interface that has different |
|
573 |
+ // implementations for different CA types. At the moment, only CFSSL is supported. |
|
574 |
+ for i, extCA := range apiExternalCAs { |
|
575 |
+ // We want to support old external CA specifications which did not have a CA cert. If there is no cert specified, |
|
576 |
+ // we assume it's the old cert |
|
577 |
+ certForExtCA := extCA.CACert |
|
578 |
+ if len(certForExtCA) == 0 { |
|
579 |
+ certForExtCA = defaultCert |
|
580 |
+ } |
|
581 |
+ certForExtCA = NormalizePEMs(certForExtCA) |
|
582 |
+ if extCA.Protocol != api.ExternalCA_CAProtocolCFSSL { |
|
583 |
+ log.G(ctx).Debugf("skipping external CA %d (url: %s) due to unknown protocol type", i, extCA.URL) |
|
584 |
+ continue |
|
585 |
+ } |
|
586 |
+ if !bytes.Equal(certForExtCA, desiredCert) { |
|
587 |
+ log.G(ctx).Debugf("skipping external CA %d (url: %s) because it has the wrong CA cert", i, extCA.URL) |
|
588 |
+ continue |
|
589 |
+ } |
|
590 |
+ urls = append(urls, extCA.URL) |
|
591 |
+ } |
|
592 |
+ return |
|
593 |
+} |
|
594 |
+ |
|
568 | 595 |
// UpdateRootCA is called when there are cluster changes, and it ensures that the local RootCA is |
569 | 596 |
// always aware of changes in clusterExpiry and the Root CA key material - this can be called by |
570 | 597 |
// anything to update the root CA material |
571 |
-func (s *Server) UpdateRootCA(ctx context.Context, cluster *api.Cluster) error { |
|
598 |
+func (s *Server) UpdateRootCA(ctx context.Context, cluster *api.Cluster, reconciler *rootRotationReconciler) error { |
|
572 | 599 |
s.mu.Lock() |
573 | 600 |
s.joinTokens = cluster.RootCA.JoinTokens.Copy() |
574 |
- reconciler := s.rootReconciler |
|
575 | 601 |
s.mu.Unlock() |
576 | 602 |
rCA := cluster.RootCA.Copy() |
577 | 603 |
if reconciler != nil { |
578 | 604 |
reconciler.UpdateRootCA(rCA) |
579 | 605 |
} |
580 | 606 |
|
581 |
- s.secConfigMu.Lock() |
|
582 |
- defer s.secConfigMu.Unlock() |
|
607 |
+ s.signingMu.Lock() |
|
608 |
+ defer s.signingMu.Unlock() |
|
583 | 609 |
firstSeenCluster := s.lastSeenClusterRootCA == nil && s.lastSeenExternalCAs == nil |
584 | 610 |
rootCAChanged := len(rCA.CACert) != 0 && !equality.RootCAEqualStable(s.lastSeenClusterRootCA, rCA) |
585 | 611 |
externalCAChanged := !equality.ExternalCAsEqualStable(s.lastSeenExternalCAs, cluster.Spec.CAConfig.ExternalCAs) |
586 |
- logger := log.G(ctx).WithFields(logrus.Fields{ |
|
612 |
+ ctx = log.WithLogger(ctx, log.G(ctx).WithFields(logrus.Fields{ |
|
587 | 613 |
"cluster.id": cluster.ID, |
588 | 614 |
"method": "(*Server).UpdateRootCA", |
589 |
- }) |
|
615 |
+ })) |
|
590 | 616 |
|
591 | 617 |
if rootCAChanged { |
592 | 618 |
setOrUpdate := "set" |
593 | 619 |
if !firstSeenCluster { |
594 |
- logger.Debug("Updating security config due to change in cluster Root CA") |
|
620 |
+ log.G(ctx).Debug("Updating signing root CA and external CA due to change in cluster Root CA") |
|
595 | 621 |
setOrUpdate = "updated" |
596 | 622 |
} |
597 | 623 |
expiry := DefaultNodeCertExpiration |
... | ... |
@@ -599,91 +685,55 @@ func (s *Server) UpdateRootCA(ctx context.Context, cluster *api.Cluster) error { |
599 | 599 |
// NodeCertExpiry exists, let's try to parse the duration out of it |
600 | 600 |
clusterExpiry, err := gogotypes.DurationFromProto(cluster.Spec.CAConfig.NodeCertExpiry) |
601 | 601 |
if err != nil { |
602 |
- logger.WithError(err).Warn("failed to parse certificate expiration, using default") |
|
602 |
+ log.G(ctx).WithError(err).Warn("failed to parse certificate expiration, using default") |
|
603 | 603 |
} else { |
604 | 604 |
// We were able to successfully parse the expiration out of the cluster. |
605 | 605 |
expiry = clusterExpiry |
606 | 606 |
} |
607 | 607 |
} else { |
608 | 608 |
// NodeCertExpiry seems to be nil |
609 |
- logger.Warn("no certificate expiration specified, using default") |
|
609 |
+ log.G(ctx).Warn("no certificate expiration specified, using default") |
|
610 | 610 |
} |
611 | 611 |
// Attempt to update our local RootCA with the new parameters |
612 |
- var intermediates []byte |
|
613 |
- signingCert := rCA.CACert |
|
614 |
- signingKey := rCA.CAKey |
|
615 |
- if rCA.RootRotation != nil { |
|
616 |
- signingCert = rCA.RootRotation.CrossSignedCACert |
|
617 |
- signingKey = rCA.RootRotation.CAKey |
|
618 |
- intermediates = rCA.RootRotation.CrossSignedCACert |
|
619 |
- } |
|
620 |
- if signingKey == nil { |
|
621 |
- signingCert = nil |
|
622 |
- } |
|
623 |
- updatedRootCA, err := NewRootCA(rCA.CACert, signingCert, signingKey, expiry, intermediates) |
|
612 |
+ updatedRootCA, err := RootCAFromAPI(ctx, rCA, expiry) |
|
624 | 613 |
if err != nil { |
625 | 614 |
return errors.Wrap(err, "invalid Root CA object in cluster") |
626 | 615 |
} |
627 |
- externalCARootPool := updatedRootCA.Pool |
|
616 |
+ |
|
617 |
+ s.localRootCA = &updatedRootCA |
|
618 |
+ s.externalCAPool = updatedRootCA.Pool |
|
619 |
+ externalCACert := rCA.CACert |
|
628 | 620 |
if rCA.RootRotation != nil { |
621 |
+ externalCACert = rCA.RootRotation.CACert |
|
629 | 622 |
// the external CA has to trust the new CA cert |
630 |
- externalCARootPool = x509.NewCertPool() |
|
631 |
- externalCARootPool.AppendCertsFromPEM(rCA.CACert) |
|
632 |
- externalCARootPool.AppendCertsFromPEM(rCA.RootRotation.CACert) |
|
623 |
+ s.externalCAPool = x509.NewCertPool() |
|
624 |
+ s.externalCAPool.AppendCertsFromPEM(rCA.CACert) |
|
625 |
+ s.externalCAPool.AppendCertsFromPEM(rCA.RootRotation.CACert) |
|
633 | 626 |
} |
627 |
+ s.lastSeenExternalCAs = cluster.Spec.CAConfig.Copy().ExternalCAs |
|
628 |
+ urls := filterExternalCAURLS(ctx, externalCACert, rCA.CACert, s.lastSeenExternalCAs) |
|
629 |
+ // Replace the external CA with the relevant intermediates, URLS, and TLS config |
|
630 |
+ s.externalCA = NewExternalCA(updatedRootCA.Intermediates, |
|
631 |
+ NewExternalCATLSConfig(s.securityConfig.ClientTLSCreds.Config().Certificates, s.externalCAPool), urls...) |
|
634 | 632 |
|
635 |
- // Attempt to update our local RootCA with the new parameters |
|
636 |
- if err := s.securityConfig.UpdateRootCA(&updatedRootCA, externalCARootPool); err != nil { |
|
637 |
- return errors.Wrap(err, "updating Root CA failed") |
|
638 |
- } |
|
639 |
- if err := SaveRootCA(updatedRootCA, s.rootPaths); err != nil { |
|
640 |
- return errors.Wrap(err, "unable to save new root CA certificates") |
|
641 |
- } |
|
642 | 633 |
// only update the server cache if we've successfully updated the root CA |
643 |
- logger.Debugf("Root CA %s successfully", setOrUpdate) |
|
634 |
+ log.G(ctx).Debugf("Root CA %s successfully", setOrUpdate) |
|
644 | 635 |
s.lastSeenClusterRootCA = rCA |
645 |
- } |
|
646 |
- |
|
647 |
- // we want to update if the external CA changed, or if the root CA changed because the root CA could affect what |
|
648 |
- // certificate for external CAs we want to filter by |
|
649 |
- if rootCAChanged || externalCAChanged { |
|
636 |
+ } else if externalCAChanged { |
|
637 |
+ // we want to update only if the external CA URLS have changed, since if the root CA has changed we already |
|
638 |
+ // run similar logic |
|
650 | 639 |
if !firstSeenCluster { |
651 |
- logger.Debug("Updating security config external CA URLs due to change in cluster Root CA or cluster spec") |
|
640 |
+ log.G(ctx).Debug("Updating security config external CA URLs due to change in cluster spec's list of external CAs") |
|
652 | 641 |
} |
653 | 642 |
wantedExternalCACert := rCA.CACert // we want to only add external CA URLs that use this cert |
654 | 643 |
if rCA.RootRotation != nil { |
655 | 644 |
// we're rotating to a new root, so we only want external CAs with the new root cert |
656 | 645 |
wantedExternalCACert = rCA.RootRotation.CACert |
657 | 646 |
} |
658 |
- wantedExternalCACert = NormalizePEMs(wantedExternalCACert) |
|
659 |
- // Update our security config with the list of External CA URLs |
|
660 |
- // from the new cluster state. |
|
661 |
- |
|
662 |
- // TODO(aaronl): In the future, this will be abstracted with an |
|
663 |
- // ExternalCA interface that has different implementations for |
|
664 |
- // different CA types. At the moment, only CFSSL is supported. |
|
665 |
- var cfsslURLs []string |
|
666 |
- for i, extCA := range cluster.Spec.CAConfig.ExternalCAs { |
|
667 |
- // We want to support old external CA specifications which did not have a CA cert. If there is no cert specified, |
|
668 |
- // we assume it's the old cert |
|
669 |
- certForExtCA := extCA.CACert |
|
670 |
- if len(certForExtCA) == 0 { |
|
671 |
- certForExtCA = rCA.CACert |
|
672 |
- } |
|
673 |
- certForExtCA = NormalizePEMs(certForExtCA) |
|
674 |
- if extCA.Protocol != api.ExternalCA_CAProtocolCFSSL { |
|
675 |
- logger.Debugf("skipping external CA %d (url: %s) due to unknown protocol type", i, extCA.URL) |
|
676 |
- continue |
|
677 |
- } |
|
678 |
- if !bytes.Equal(certForExtCA, wantedExternalCACert) { |
|
679 |
- logger.Debugf("skipping external CA %d (url: %s) because it has the wrong CA cert", i, extCA.URL) |
|
680 |
- continue |
|
681 |
- } |
|
682 |
- cfsslURLs = append(cfsslURLs, extCA.URL) |
|
683 |
- } |
|
684 |
- |
|
685 |
- s.securityConfig.externalCA.UpdateURLs(cfsslURLs...) |
|
647 |
+ // Update our external CA with the list of External CA URLs from the new cluster state |
|
686 | 648 |
s.lastSeenExternalCAs = cluster.Spec.CAConfig.Copy().ExternalCAs |
649 |
+ urls := filterExternalCAURLS(ctx, wantedExternalCACert, rCA.CACert, s.lastSeenExternalCAs) |
|
650 |
+ s.externalCA.UpdateURLs(urls...) |
|
687 | 651 |
} |
688 | 652 |
return nil |
689 | 653 |
} |
... | ... |
@@ -714,8 +764,10 @@ func (s *Server) evaluateAndSignNodeCert(ctx context.Context, node *api.Node) er |
714 | 714 |
|
715 | 715 |
// signNodeCert does the bulk of the work for signing a certificate |
716 | 716 |
func (s *Server) signNodeCert(ctx context.Context, node *api.Node) error { |
717 |
- rootCA := s.securityConfig.RootCA() |
|
718 |
- externalCA := s.securityConfig.externalCA |
|
717 |
+ s.signingMu.Lock() |
|
718 |
+ rootCA := s.localRootCA |
|
719 |
+ externalCA := s.externalCA |
|
720 |
+ s.signingMu.Unlock() |
|
719 | 721 |
|
720 | 722 |
node = node.Copy() |
721 | 723 |
nodeID := node.ID |
... | ... |
@@ -736,7 +788,7 @@ func (s *Server) signNodeCert(ctx context.Context, node *api.Node) error { |
736 | 736 |
rawCSR = node.Certificate.CSR |
737 | 737 |
cn = node.Certificate.CN |
738 | 738 |
ou = role |
739 |
- org = s.securityConfig.ClientTLSCreds.Organization() |
|
739 |
+ org = s.clusterID |
|
740 | 740 |
) |
741 | 741 |
|
742 | 742 |
// Try using the external CA first. |
... | ... |
@@ -847,3 +899,19 @@ func isFinalState(status api.IssuanceStatus) bool { |
847 | 847 |
|
848 | 848 |
return false |
849 | 849 |
} |
850 |
+ |
|
851 |
+// RootCAFromAPI creates a RootCA object from an api.RootCA object |
|
852 |
+func RootCAFromAPI(ctx context.Context, apiRootCA *api.RootCA, expiry time.Duration) (RootCA, error) { |
|
853 |
+ var intermediates []byte |
|
854 |
+ signingCert := apiRootCA.CACert |
|
855 |
+ signingKey := apiRootCA.CAKey |
|
856 |
+ if apiRootCA.RootRotation != nil { |
|
857 |
+ signingCert = apiRootCA.RootRotation.CrossSignedCACert |
|
858 |
+ signingKey = apiRootCA.RootRotation.CAKey |
|
859 |
+ intermediates = apiRootCA.RootRotation.CrossSignedCACert |
|
860 |
+ } |
|
861 |
+ if signingKey == nil { |
|
862 |
+ signingCert = nil |
|
863 |
+ } |
|
864 |
+ return NewRootCA(apiRootCA.CACert, signingCert, signingKey, expiry, intermediates) |
|
865 |
+} |
... | ... |
@@ -63,7 +63,6 @@ func newRootRotationObject(ctx context.Context, securityConfig *ca.SecurityConfi |
63 | 63 |
return nil, grpc.Errorf(codes.InvalidArgument, "rotating from one external CA to a different external CA is not supported") |
64 | 64 |
default: |
65 | 65 |
// We need the same credentials but to connect to the original URLs (in case we are in the middle of a root rotation already) |
66 |
- externalCA := securityConfig.ExternalCA().Copy() |
|
67 | 66 |
var urls []string |
68 | 67 |
for _, c := range extCAs { |
69 | 68 |
if c.Protocol == api.ExternalCA_CAProtocolCFSSL { |
... | ... |
@@ -74,7 +73,11 @@ func newRootRotationObject(ctx context.Context, securityConfig *ca.SecurityConfi |
74 | 74 |
return nil, grpc.Errorf(codes.InvalidArgument, |
75 | 75 |
"must provide an external CA for the current external root CA to generate a cross-signed certificate") |
76 | 76 |
} |
77 |
- externalCA.UpdateURLs(urls...) |
|
77 |
+ rootPool := x509.NewCertPool() |
|
78 |
+ rootPool.AppendCertsFromPEM(apiRootCA.CACert) |
|
79 |
+ |
|
80 |
+ externalCAConfig := ca.NewExternalCATLSConfig(securityConfig.ClientTLSCreds.Config().Certificates, rootPool) |
|
81 |
+ externalCA := ca.NewExternalCA(nil, externalCAConfig, urls...) |
|
78 | 82 |
crossSignedCert, err = externalCA.CrossSignRootCA(ctx, newCARootCA) |
79 | 83 |
} |
80 | 84 |
|
... | ... |
@@ -104,17 +104,14 @@ func (s *Server) UpdateCluster(ctx context.Context, request *api.UpdateClusterRe |
104 | 104 |
if cluster == nil { |
105 | 105 |
return grpc.Errorf(codes.NotFound, "cluster %s not found", request.ClusterID) |
106 | 106 |
} |
107 |
- // This ensures that we always have the latest security config, so our ca.SecurityConfig.RootCA and |
|
108 |
- // ca.SecurityConfig.externalCA objects are up-to-date with the current api.Cluster.RootCA and |
|
109 |
- // api.Cluster.Spec.ExternalCA objects, respectively. Note that if, during this update, the cluster gets |
|
110 |
- // updated again with different CA info and the security config gets changed under us, that's still fine because |
|
111 |
- // this cluster update would fail anyway due to its version being too low on write. |
|
112 |
- if err := s.scu.UpdateRootCA(ctx, cluster); err != nil { |
|
107 |
+ // This ensures that we have the current rootCA with which to generate tokens (expiration doesn't matter |
|
108 |
+ // for generating the tokens) |
|
109 |
+ rootCA, err := ca.RootCAFromAPI(ctx, &cluster.RootCA, ca.DefaultNodeCertExpiration) |
|
110 |
+ if err != nil { |
|
113 | 111 |
log.G(ctx).WithField( |
114 |
- "method", "(*controlapi.Server).UpdateCluster").WithError(err).Error("could not update security config") |
|
115 |
- return grpc.Errorf(codes.Internal, "could not update security config") |
|
112 |
+ "method", "(*controlapi.Server).UpdateCluster").WithError(err).Error("invalid cluster root CA") |
|
113 |
+ return grpc.Errorf(codes.Internal, "error loading cluster rootCA for update") |
|
116 | 114 |
} |
117 |
- rootCA := s.securityConfig.RootCA() |
|
118 | 115 |
|
119 | 116 |
cluster.Meta.Version = *request.ClusterVersion |
120 | 117 |
cluster.Spec = *request.Spec.Copy() |
... | ... |
@@ -122,10 +119,10 @@ func (s *Server) UpdateCluster(ctx context.Context, request *api.UpdateClusterRe |
122 | 122 |
expireBlacklistedCerts(cluster) |
123 | 123 |
|
124 | 124 |
if request.Rotation.WorkerJoinToken { |
125 |
- cluster.RootCA.JoinTokens.Worker = ca.GenerateJoinToken(rootCA) |
|
125 |
+ cluster.RootCA.JoinTokens.Worker = ca.GenerateJoinToken(&rootCA) |
|
126 | 126 |
} |
127 | 127 |
if request.Rotation.ManagerJoinToken { |
128 |
- cluster.RootCA.JoinTokens.Manager = ca.GenerateJoinToken(rootCA) |
|
128 |
+ cluster.RootCA.JoinTokens.Manager = ca.GenerateJoinToken(&rootCA) |
|
129 | 129 |
} |
130 | 130 |
|
131 | 131 |
updatedRootCA, err := validateCAConfig(ctx, s.securityConfig, cluster) |
... | ... |
@@ -158,6 +158,12 @@ func (s *Server) CreateSecret(ctx context.Context, request *api.CreateSecretRequ |
158 | 158 |
return nil, err |
159 | 159 |
} |
160 | 160 |
|
161 |
+ if request.Spec.Driver != nil { // Check that the requested driver is valid |
|
162 |
+ if _, err := s.dr.NewSecretDriver(request.Spec.Driver); err != nil { |
|
163 |
+ return nil, err |
|
164 |
+ } |
|
165 |
+ } |
|
166 |
+ |
|
161 | 167 |
secret := secretFromSecretSpec(request.Spec) // the store will handle name conflicts |
162 | 168 |
err := s.store.Update(func(tx store.Tx) error { |
163 | 169 |
return store.CreateSecret(tx, secret) |
... | ... |
@@ -5,6 +5,7 @@ import ( |
5 | 5 |
|
6 | 6 |
"github.com/docker/docker/pkg/plugingetter" |
7 | 7 |
"github.com/docker/swarmkit/ca" |
8 |
+ "github.com/docker/swarmkit/manager/drivers" |
|
8 | 9 |
"github.com/docker/swarmkit/manager/state/raft" |
9 | 10 |
"github.com/docker/swarmkit/manager/state/store" |
10 | 11 |
) |
... | ... |
@@ -18,18 +19,17 @@ type Server struct { |
18 | 18 |
store *store.MemoryStore |
19 | 19 |
raft *raft.Node |
20 | 20 |
securityConfig *ca.SecurityConfig |
21 |
- scu ca.APISecurityConfigUpdater |
|
22 | 21 |
pg plugingetter.PluginGetter |
22 |
+ dr *drivers.DriverProvider |
|
23 | 23 |
} |
24 | 24 |
|
25 | 25 |
// NewServer creates a Cluster API server. |
26 |
-func NewServer(store *store.MemoryStore, raft *raft.Node, securityConfig *ca.SecurityConfig, |
|
27 |
- scu ca.APISecurityConfigUpdater, pg plugingetter.PluginGetter) *Server { |
|
26 |
+func NewServer(store *store.MemoryStore, raft *raft.Node, securityConfig *ca.SecurityConfig, pg plugingetter.PluginGetter, dr *drivers.DriverProvider) *Server { |
|
28 | 27 |
return &Server{ |
29 | 28 |
store: store, |
29 |
+ dr: dr, |
|
30 | 30 |
raft: raft, |
31 | 31 |
securityConfig: securityConfig, |
32 |
- scu: scu, |
|
33 | 32 |
pg: pg, |
34 | 33 |
} |
35 | 34 |
} |
... | ... |
@@ -11,20 +11,9 @@ import ( |
11 | 11 |
"github.com/sirupsen/logrus" |
12 | 12 |
) |
13 | 13 |
|
14 |
-// Used as a key in tasksUsingDependency and changes. Only using the |
|
15 |
-// ID could cause (rare) collisions between different types of |
|
16 |
-// objects, so we also include the type of object in the key. |
|
17 |
-type objectType int |
|
18 |
- |
|
19 |
-const ( |
|
20 |
- typeTask objectType = iota |
|
21 |
- typeSecret |
|
22 |
- typeConfig |
|
23 |
-) |
|
24 |
- |
|
25 | 14 |
type typeAndID struct { |
26 | 15 |
id string |
27 |
- objType objectType |
|
16 |
+ objType api.ResourceType |
|
28 | 17 |
} |
29 | 18 |
|
30 | 19 |
type assignmentSet struct { |
... | ... |
@@ -45,39 +34,78 @@ func newAssignmentSet(log *logrus.Entry, dp *drivers.DriverProvider) *assignment |
45 | 45 |
} |
46 | 46 |
} |
47 | 47 |
|
48 |
+func assignSecret(a *assignmentSet, readTx store.ReadTx, mapKey typeAndID, t *api.Task) { |
|
49 |
+ a.tasksUsingDependency[mapKey] = make(map[string]struct{}) |
|
50 |
+ secret, err := a.secret(readTx, t, mapKey.id) |
|
51 |
+ if err != nil { |
|
52 |
+ a.log.WithFields(logrus.Fields{ |
|
53 |
+ "resource.type": "secret", |
|
54 |
+ "secret.id": mapKey.id, |
|
55 |
+ "error": err, |
|
56 |
+ }).Debug("failed to fetch secret") |
|
57 |
+ return |
|
58 |
+ } |
|
59 |
+ a.changes[mapKey] = &api.AssignmentChange{ |
|
60 |
+ Assignment: &api.Assignment{ |
|
61 |
+ Item: &api.Assignment_Secret{ |
|
62 |
+ Secret: secret, |
|
63 |
+ }, |
|
64 |
+ }, |
|
65 |
+ Action: api.AssignmentChange_AssignmentActionUpdate, |
|
66 |
+ } |
|
67 |
+} |
|
68 |
+ |
|
69 |
+func assignConfig(a *assignmentSet, readTx store.ReadTx, mapKey typeAndID) { |
|
70 |
+ a.tasksUsingDependency[mapKey] = make(map[string]struct{}) |
|
71 |
+ config := store.GetConfig(readTx, mapKey.id) |
|
72 |
+ if config == nil { |
|
73 |
+ a.log.WithFields(logrus.Fields{ |
|
74 |
+ "resource.type": "config", |
|
75 |
+ "config.id": mapKey.id, |
|
76 |
+ }).Debug("config not found") |
|
77 |
+ return |
|
78 |
+ } |
|
79 |
+ a.changes[mapKey] = &api.AssignmentChange{ |
|
80 |
+ Assignment: &api.Assignment{ |
|
81 |
+ Item: &api.Assignment_Config{ |
|
82 |
+ Config: config, |
|
83 |
+ }, |
|
84 |
+ }, |
|
85 |
+ Action: api.AssignmentChange_AssignmentActionUpdate, |
|
86 |
+ } |
|
87 |
+} |
|
88 |
+ |
|
48 | 89 |
func (a *assignmentSet) addTaskDependencies(readTx store.ReadTx, t *api.Task) { |
90 |
+ for _, resourceRef := range t.Spec.ResourceReferences { |
|
91 |
+ mapKey := typeAndID{objType: resourceRef.ResourceType, id: resourceRef.ResourceID} |
|
92 |
+ if len(a.tasksUsingDependency[mapKey]) == 0 { |
|
93 |
+ switch resourceRef.ResourceType { |
|
94 |
+ case api.ResourceType_SECRET: |
|
95 |
+ assignSecret(a, readTx, mapKey, t) |
|
96 |
+ case api.ResourceType_CONFIG: |
|
97 |
+ assignConfig(a, readTx, mapKey) |
|
98 |
+ default: |
|
99 |
+ a.log.WithField( |
|
100 |
+ "resource.type", resourceRef.ResourceType, |
|
101 |
+ ).Debug("invalid resource type for a task dependency, skipping") |
|
102 |
+ continue |
|
103 |
+ } |
|
104 |
+ } |
|
105 |
+ a.tasksUsingDependency[mapKey][t.ID] = struct{}{} |
|
106 |
+ } |
|
107 |
+ |
|
49 | 108 |
var secrets []*api.SecretReference |
50 | 109 |
container := t.Spec.GetContainer() |
51 | 110 |
if container != nil { |
52 | 111 |
secrets = container.Secrets |
53 | 112 |
} |
113 |
+ |
|
54 | 114 |
for _, secretRef := range secrets { |
55 | 115 |
secretID := secretRef.SecretID |
56 |
- mapKey := typeAndID{objType: typeSecret, id: secretID} |
|
116 |
+ mapKey := typeAndID{objType: api.ResourceType_SECRET, id: secretID} |
|
57 | 117 |
|
58 | 118 |
if len(a.tasksUsingDependency[mapKey]) == 0 { |
59 |
- a.tasksUsingDependency[mapKey] = make(map[string]struct{}) |
|
60 |
- |
|
61 |
- secret, err := a.secret(readTx, secretID) |
|
62 |
- if err != nil { |
|
63 |
- a.log.WithFields(logrus.Fields{ |
|
64 |
- "secret.id": secretID, |
|
65 |
- "secret.name": secretRef.SecretName, |
|
66 |
- "error": err, |
|
67 |
- }).Error("failed to fetch secret") |
|
68 |
- continue |
|
69 |
- } |
|
70 |
- |
|
71 |
- // If the secret was found, add this secret to |
|
72 |
- // our set that we send down. |
|
73 |
- a.changes[mapKey] = &api.AssignmentChange{ |
|
74 |
- Assignment: &api.Assignment{ |
|
75 |
- Item: &api.Assignment_Secret{ |
|
76 |
- Secret: secret, |
|
77 |
- }, |
|
78 |
- }, |
|
79 |
- Action: api.AssignmentChange_AssignmentActionUpdate, |
|
80 |
- } |
|
119 |
+ assignSecret(a, readTx, mapKey, t) |
|
81 | 120 |
} |
82 | 121 |
a.tasksUsingDependency[mapKey][t.ID] = struct{}{} |
83 | 122 |
} |
... | ... |
@@ -88,30 +116,10 @@ func (a *assignmentSet) addTaskDependencies(readTx store.ReadTx, t *api.Task) { |
88 | 88 |
} |
89 | 89 |
for _, configRef := range configs { |
90 | 90 |
configID := configRef.ConfigID |
91 |
- mapKey := typeAndID{objType: typeConfig, id: configID} |
|
91 |
+ mapKey := typeAndID{objType: api.ResourceType_CONFIG, id: configID} |
|
92 | 92 |
|
93 | 93 |
if len(a.tasksUsingDependency[mapKey]) == 0 { |
94 |
- a.tasksUsingDependency[mapKey] = make(map[string]struct{}) |
|
95 |
- |
|
96 |
- config := store.GetConfig(readTx, configID) |
|
97 |
- if config == nil { |
|
98 |
- a.log.WithFields(logrus.Fields{ |
|
99 |
- "config.id": configID, |
|
100 |
- "config.name": configRef.ConfigName, |
|
101 |
- }).Debug("config not found") |
|
102 |
- continue |
|
103 |
- } |
|
104 |
- |
|
105 |
- // If the config was found, add this config to |
|
106 |
- // our set that we send down. |
|
107 |
- a.changes[mapKey] = &api.AssignmentChange{ |
|
108 |
- Assignment: &api.Assignment{ |
|
109 |
- Item: &api.Assignment_Config{ |
|
110 |
- Config: config, |
|
111 |
- }, |
|
112 |
- }, |
|
113 |
- Action: api.AssignmentChange_AssignmentActionUpdate, |
|
114 |
- } |
|
94 |
+ assignConfig(a, readTx, mapKey) |
|
115 | 95 |
} |
116 | 96 |
a.tasksUsingDependency[mapKey][t.ID] = struct{}{} |
117 | 97 |
} |
... | ... |
@@ -133,6 +141,35 @@ func (a *assignmentSet) releaseDependency(mapKey typeAndID, assignment *api.Assi |
133 | 133 |
|
134 | 134 |
func (a *assignmentSet) releaseTaskDependencies(t *api.Task) bool { |
135 | 135 |
var modified bool |
136 |
+ |
|
137 |
+ for _, resourceRef := range t.Spec.ResourceReferences { |
|
138 |
+ var assignment *api.Assignment |
|
139 |
+ switch resourceRef.ResourceType { |
|
140 |
+ case api.ResourceType_SECRET: |
|
141 |
+ assignment = &api.Assignment{ |
|
142 |
+ Item: &api.Assignment_Secret{ |
|
143 |
+ Secret: &api.Secret{ID: resourceRef.ResourceID}, |
|
144 |
+ }, |
|
145 |
+ } |
|
146 |
+ case api.ResourceType_CONFIG: |
|
147 |
+ assignment = &api.Assignment{ |
|
148 |
+ Item: &api.Assignment_Config{ |
|
149 |
+ Config: &api.Config{ID: resourceRef.ResourceID}, |
|
150 |
+ }, |
|
151 |
+ } |
|
152 |
+ default: |
|
153 |
+ a.log.WithField( |
|
154 |
+ "resource.type", resourceRef.ResourceType, |
|
155 |
+ ).Debug("invalid resource type for a task dependency, skipping") |
|
156 |
+ continue |
|
157 |
+ } |
|
158 |
+ |
|
159 |
+ mapKey := typeAndID{objType: resourceRef.ResourceType, id: resourceRef.ResourceID} |
|
160 |
+ if a.releaseDependency(mapKey, assignment, t.ID) { |
|
161 |
+ modified = true |
|
162 |
+ } |
|
163 |
+ } |
|
164 |
+ |
|
136 | 165 |
container := t.Spec.GetContainer() |
137 | 166 |
|
138 | 167 |
var secrets []*api.SecretReference |
... | ... |
@@ -142,7 +179,7 @@ func (a *assignmentSet) releaseTaskDependencies(t *api.Task) bool { |
142 | 142 |
|
143 | 143 |
for _, secretRef := range secrets { |
144 | 144 |
secretID := secretRef.SecretID |
145 |
- mapKey := typeAndID{objType: typeSecret, id: secretID} |
|
145 |
+ mapKey := typeAndID{objType: api.ResourceType_SECRET, id: secretID} |
|
146 | 146 |
assignment := &api.Assignment{ |
147 | 147 |
Item: &api.Assignment_Secret{ |
148 | 148 |
Secret: &api.Secret{ID: secretID}, |
... | ... |
@@ -160,7 +197,7 @@ func (a *assignmentSet) releaseTaskDependencies(t *api.Task) bool { |
160 | 160 |
|
161 | 161 |
for _, configRef := range configs { |
162 | 162 |
configID := configRef.ConfigID |
163 |
- mapKey := typeAndID{objType: typeConfig, id: configID} |
|
163 |
+ mapKey := typeAndID{objType: api.ResourceType_CONFIG, id: configID} |
|
164 | 164 |
assignment := &api.Assignment{ |
165 | 165 |
Item: &api.Assignment_Config{ |
166 | 166 |
Config: &api.Config{ID: configID}, |
... | ... |
@@ -205,7 +242,7 @@ func (a *assignmentSet) addOrUpdateTask(readTx store.ReadTx, t *api.Task) bool { |
205 | 205 |
a.addTaskDependencies(readTx, t) |
206 | 206 |
} |
207 | 207 |
a.tasksMap[t.ID] = t |
208 |
- a.changes[typeAndID{objType: typeTask, id: t.ID}] = &api.AssignmentChange{ |
|
208 |
+ a.changes[typeAndID{objType: api.ResourceType_TASK, id: t.ID}] = &api.AssignmentChange{ |
|
209 | 209 |
Assignment: &api.Assignment{ |
210 | 210 |
Item: &api.Assignment_Task{ |
211 | 211 |
Task: t, |
... | ... |
@@ -221,7 +258,7 @@ func (a *assignmentSet) removeTask(t *api.Task) bool { |
221 | 221 |
return false |
222 | 222 |
} |
223 | 223 |
|
224 |
- a.changes[typeAndID{objType: typeTask, id: t.ID}] = &api.AssignmentChange{ |
|
224 |
+ a.changes[typeAndID{objType: api.ResourceType_TASK, id: t.ID}] = &api.AssignmentChange{ |
|
225 | 225 |
Assignment: &api.Assignment{ |
226 | 226 |
Item: &api.Assignment_Task{ |
227 | 227 |
Task: &api.Task{ID: t.ID}, |
... | ... |
@@ -254,7 +291,7 @@ func (a *assignmentSet) message() api.AssignmentsMessage { |
254 | 254 |
|
255 | 255 |
// secret populates the secret value from raft store. For external secrets, the value is populated |
256 | 256 |
// from the secret driver. |
257 |
-func (a *assignmentSet) secret(readTx store.ReadTx, secretID string) (*api.Secret, error) { |
|
257 |
+func (a *assignmentSet) secret(readTx store.ReadTx, task *api.Task, secretID string) (*api.Secret, error) { |
|
258 | 258 |
secret := store.GetSecret(readTx, secretID) |
259 | 259 |
if secret == nil { |
260 | 260 |
return nil, fmt.Errorf("secret not found") |
... | ... |
@@ -266,7 +303,7 @@ func (a *assignmentSet) secret(readTx store.ReadTx, secretID string) (*api.Secre |
266 | 266 |
if err != nil { |
267 | 267 |
return nil, err |
268 | 268 |
} |
269 |
- value, err := d.Get(&secret.Spec) |
|
269 |
+ value, err := d.Get(&secret.Spec, task) |
|
270 | 270 |
if err != nil { |
271 | 271 |
return nil, err |
272 | 272 |
} |
... | ... |
@@ -18,6 +18,7 @@ import ( |
18 | 18 |
"github.com/docker/swarmkit/log" |
19 | 19 |
"github.com/docker/swarmkit/manager/drivers" |
20 | 20 |
"github.com/docker/swarmkit/manager/state/store" |
21 |
+ "github.com/docker/swarmkit/protobuf/ptypes" |
|
21 | 22 |
"github.com/docker/swarmkit/remotes" |
22 | 23 |
"github.com/docker/swarmkit/watch" |
23 | 24 |
gogotypes "github.com/gogo/protobuf/types" |
... | ... |
@@ -127,6 +128,7 @@ type Dispatcher struct { |
127 | 127 |
cancel context.CancelFunc |
128 | 128 |
clusterUpdateQueue *watch.Queue |
129 | 129 |
dp *drivers.DriverProvider |
130 |
+ securityConfig *ca.SecurityConfig |
|
130 | 131 |
|
131 | 132 |
taskUpdates map[string]*api.TaskStatus // indexed by task ID |
132 | 133 |
taskUpdatesLock sync.Mutex |
... | ... |
@@ -144,7 +146,7 @@ type Dispatcher struct { |
144 | 144 |
} |
145 | 145 |
|
146 | 146 |
// New returns Dispatcher with cluster interface(usually raft.Node). |
147 |
-func New(cluster Cluster, c *Config, dp *drivers.DriverProvider) *Dispatcher { |
|
147 |
+func New(cluster Cluster, c *Config, dp *drivers.DriverProvider, securityConfig *ca.SecurityConfig) *Dispatcher { |
|
148 | 148 |
d := &Dispatcher{ |
149 | 149 |
dp: dp, |
150 | 150 |
nodes: newNodeStore(c.HeartbeatPeriod, c.HeartbeatEpsilon, c.GracePeriodMultiplier, c.RateLimitPeriod), |
... | ... |
@@ -153,6 +155,7 @@ func New(cluster Cluster, c *Config, dp *drivers.DriverProvider) *Dispatcher { |
153 | 153 |
cluster: cluster, |
154 | 154 |
processUpdatesTrigger: make(chan struct{}, 1), |
155 | 155 |
config: c, |
156 |
+ securityConfig: securityConfig, |
|
156 | 157 |
} |
157 | 158 |
|
158 | 159 |
d.processUpdatesCond = sync.NewCond(&d.processUpdatesLock) |
... | ... |
@@ -630,6 +633,8 @@ func (d *Dispatcher) processUpdates(ctx context.Context) { |
630 | 630 |
} |
631 | 631 |
|
632 | 632 |
task.Status = *status |
633 |
+ task.Status.AppliedBy = d.securityConfig.ClientTLSCreds.NodeID() |
|
634 |
+ task.Status.AppliedAt = ptypes.MustTimestampProto(time.Now()) |
|
633 | 635 |
if err := store.UpdateTask(tx, task); err != nil { |
634 | 636 |
logger.WithError(err).Error("failed to update task status") |
635 | 637 |
return nil |
... | ... |
@@ -26,12 +26,45 @@ func NewSecretDriver(plugin plugingetter.CompatPlugin) *SecretDriver { |
26 | 26 |
} |
27 | 27 |
|
28 | 28 |
// Get gets a secret from the secret provider |
29 |
-func (d *SecretDriver) Get(spec *api.SecretSpec) ([]byte, error) { |
|
29 |
+func (d *SecretDriver) Get(spec *api.SecretSpec, task *api.Task) ([]byte, error) { |
|
30 | 30 |
if spec == nil { |
31 |
- return nil, fmt.Errorf("spec is nil") |
|
31 |
+ return nil, fmt.Errorf("secret spec is nil") |
|
32 | 32 |
} |
33 |
+ if task == nil { |
|
34 |
+ return nil, fmt.Errorf("task is nil") |
|
35 |
+ } |
|
36 |
+ |
|
33 | 37 |
var secretResp SecretsProviderResponse |
34 |
- secretReq := &SecretsProviderRequest{Name: spec.Annotations.Name} |
|
38 |
+ secretReq := &SecretsProviderRequest{ |
|
39 |
+ SecretName: spec.Annotations.Name, |
|
40 |
+ ServiceName: task.ServiceAnnotations.Name, |
|
41 |
+ ServiceLabels: task.ServiceAnnotations.Labels, |
|
42 |
+ } |
|
43 |
+ container := task.Spec.GetContainer() |
|
44 |
+ if container != nil { |
|
45 |
+ secretReq.ServiceHostname = container.Hostname |
|
46 |
+ } |
|
47 |
+ |
|
48 |
+ if task.Endpoint != nil && task.Endpoint.Spec != nil { |
|
49 |
+ secretReq.ServiceEndpointSpec = &EndpointSpec{ |
|
50 |
+ Mode: int32(task.Endpoint.Spec.Mode), |
|
51 |
+ } |
|
52 |
+ for _, p := range task.Endpoint.Spec.Ports { |
|
53 |
+ if p == nil { |
|
54 |
+ continue |
|
55 |
+ } |
|
56 |
+ secretReq.ServiceEndpointSpec.Ports = |
|
57 |
+ append(secretReq.ServiceEndpointSpec.Ports, |
|
58 |
+ PortConfig{ |
|
59 |
+ Name: p.Name, |
|
60 |
+ Protocol: int32(p.Protocol), |
|
61 |
+ PublishedPort: p.PublishedPort, |
|
62 |
+ TargetPort: p.TargetPort, |
|
63 |
+ PublishMode: int32(p.PublishMode), |
|
64 |
+ }) |
|
65 |
+ } |
|
66 |
+ } |
|
67 |
+ |
|
35 | 68 |
err := d.plugin.Client().Call(SecretsProviderAPI, secretReq, &secretResp) |
36 | 69 |
if err != nil { |
37 | 70 |
return nil, err |
... | ... |
@@ -40,16 +73,38 @@ func (d *SecretDriver) Get(spec *api.SecretSpec) ([]byte, error) { |
40 | 40 |
return nil, fmt.Errorf(secretResp.Err) |
41 | 41 |
} |
42 | 42 |
// Assign the secret value |
43 |
- return []byte(secretResp.Value), nil |
|
43 |
+ return secretResp.Value, nil |
|
44 | 44 |
} |
45 | 45 |
|
46 | 46 |
// SecretsProviderRequest is the secrets provider request. |
47 | 47 |
type SecretsProviderRequest struct { |
48 |
- Name string `json:"name"` // Name is the name of the secret plugin |
|
48 |
+ SecretName string `json:",omitempty"` // SecretName is the name of the secret to request from the plugin |
|
49 |
+ ServiceHostname string `json:",omitempty"` // ServiceHostname is the hostname of the service, can be used for x509 certificate |
|
50 |
+ ServiceName string `json:",omitempty"` // ServiceName is the name of the service that requested the secret |
|
51 |
+ ServiceLabels map[string]string `json:",omitempty"` // ServiceLabels capture environment names and other metadata |
|
52 |
+ ServiceEndpointSpec *EndpointSpec `json:",omitempty"` // ServiceEndpointSpec holds the specification for endpoints |
|
49 | 53 |
} |
50 | 54 |
|
51 | 55 |
// SecretsProviderResponse is the secrets provider response. |
52 | 56 |
type SecretsProviderResponse struct { |
53 |
- Value string `json:"value"` // Value is the value of the secret |
|
54 |
- Err string `json:"err"` // Err is the error response of the plugin |
|
57 |
+ Value []byte `json:",omitempty"` // Value is the value of the secret |
|
58 |
+ Err string `json:",omitempty"` // Err is the error response of the plugin |
|
59 |
+} |
|
60 |
+ |
|
61 |
+// EndpointSpec represents the spec of an endpoint. |
|
62 |
+type EndpointSpec struct { |
|
63 |
+ Mode int32 `json:",omitempty"` |
|
64 |
+ Ports []PortConfig `json:",omitempty"` |
|
65 |
+} |
|
66 |
+ |
|
67 |
+// PortConfig represents the config of a port. |
|
68 |
+type PortConfig struct { |
|
69 |
+ Name string `json:",omitempty"` |
|
70 |
+ Protocol int32 `json:",omitempty"` |
|
71 |
+ // TargetPort is the port inside the container |
|
72 |
+ TargetPort uint32 `json:",omitempty"` |
|
73 |
+ // PublishedPort is the port on the swarm hosts |
|
74 |
+ PublishedPort uint32 `json:",omitempty"` |
|
75 |
+ // PublishMode is the mode in which port is published |
|
76 |
+ PublishMode int32 `json:",omitempty"` |
|
55 | 77 |
} |
... | ... |
@@ -57,12 +57,12 @@ func New(store *store.MemoryStore) *LogBroker { |
57 | 57 |
} |
58 | 58 |
} |
59 | 59 |
|
60 |
-// Run the log broker |
|
61 |
-func (lb *LogBroker) Run(ctx context.Context) error { |
|
60 |
+// Start starts the log broker |
|
61 |
+func (lb *LogBroker) Start(ctx context.Context) error { |
|
62 | 62 |
lb.mu.Lock() |
63 |
+ defer lb.mu.Unlock() |
|
63 | 64 |
|
64 | 65 |
if lb.cancelAll != nil { |
65 |
- lb.mu.Unlock() |
|
66 | 66 |
return errAlreadyRunning |
67 | 67 |
} |
68 | 68 |
|
... | ... |
@@ -71,12 +71,7 @@ func (lb *LogBroker) Run(ctx context.Context) error { |
71 | 71 |
lb.subscriptionQueue = watch.NewQueue() |
72 | 72 |
lb.registeredSubscriptions = make(map[string]*subscription) |
73 | 73 |
lb.subscriptionsByNode = make(map[string]map[*subscription]struct{}) |
74 |
- lb.mu.Unlock() |
|
75 |
- |
|
76 |
- select { |
|
77 |
- case <-lb.pctx.Done(): |
|
78 |
- return lb.pctx.Err() |
|
79 |
- } |
|
74 |
+ return nil |
|
80 | 75 |
} |
81 | 76 |
|
82 | 77 |
// Stop stops the log broker |
... | ... |
@@ -234,8 +229,15 @@ func (lb *LogBroker) SubscribeLogs(request *api.SubscribeLogsRequest, stream api |
234 | 234 |
return err |
235 | 235 |
} |
236 | 236 |
|
237 |
+ lb.mu.Lock() |
|
238 |
+ pctx := lb.pctx |
|
239 |
+ lb.mu.Unlock() |
|
240 |
+ if pctx == nil { |
|
241 |
+ return errNotRunning |
|
242 |
+ } |
|
243 |
+ |
|
237 | 244 |
subscription := lb.newSubscription(request.Selector, request.Options) |
238 |
- subscription.Run(lb.pctx) |
|
245 |
+ subscription.Run(pctx) |
|
239 | 246 |
defer subscription.Stop() |
240 | 247 |
|
241 | 248 |
log := log.G(ctx).WithFields( |
... | ... |
@@ -257,8 +259,8 @@ func (lb *LogBroker) SubscribeLogs(request *api.SubscribeLogsRequest, stream api |
257 | 257 |
select { |
258 | 258 |
case <-ctx.Done(): |
259 | 259 |
return ctx.Err() |
260 |
- case <-lb.pctx.Done(): |
|
261 |
- return lb.pctx.Err() |
|
260 |
+ case <-pctx.Done(): |
|
261 |
+ return pctx.Err() |
|
262 | 262 |
case event := <-publishCh: |
263 | 263 |
publish := event.(*logMessage) |
264 | 264 |
if publish.completed { |
... | ... |
@@ -308,6 +310,13 @@ func (lb *LogBroker) ListenSubscriptions(request *api.ListenSubscriptionsRequest |
308 | 308 |
return err |
309 | 309 |
} |
310 | 310 |
|
311 |
+ lb.mu.Lock() |
|
312 |
+ pctx := lb.pctx |
|
313 |
+ lb.mu.Unlock() |
|
314 |
+ if pctx == nil { |
|
315 |
+ return errNotRunning |
|
316 |
+ } |
|
317 |
+ |
|
311 | 318 |
lb.nodeConnected(remote.NodeID) |
312 | 319 |
defer lb.nodeDisconnected(remote.NodeID) |
313 | 320 |
|
... | ... |
@@ -329,7 +338,7 @@ func (lb *LogBroker) ListenSubscriptions(request *api.ListenSubscriptionsRequest |
329 | 329 |
select { |
330 | 330 |
case <-stream.Context().Done(): |
331 | 331 |
return stream.Context().Err() |
332 |
- case <-lb.pctx.Done(): |
|
332 |
+ case <-pctx.Done(): |
|
333 | 333 |
return nil |
334 | 334 |
default: |
335 | 335 |
} |
... | ... |
@@ -362,7 +371,7 @@ func (lb *LogBroker) ListenSubscriptions(request *api.ListenSubscriptionsRequest |
362 | 362 |
} |
363 | 363 |
case <-stream.Context().Done(): |
364 | 364 |
return stream.Context().Err() |
365 |
- case <-lb.pctx.Done(): |
|
365 |
+ case <-pctx.Done(): |
|
366 | 366 |
return nil |
367 | 367 |
} |
368 | 368 |
} |
... | ... |
@@ -16,6 +16,7 @@ import ( |
16 | 16 |
"github.com/cloudflare/cfssl/helpers" |
17 | 17 |
"github.com/docker/docker/pkg/plugingetter" |
18 | 18 |
"github.com/docker/go-events" |
19 |
+ gmetrics "github.com/docker/go-metrics" |
|
19 | 20 |
"github.com/docker/swarmkit/api" |
20 | 21 |
"github.com/docker/swarmkit/ca" |
21 | 22 |
"github.com/docker/swarmkit/connectionbroker" |
... | ... |
@@ -87,7 +88,11 @@ type Config struct { |
87 | 87 |
// cluster to join. |
88 | 88 |
JoinRaft string |
89 | 89 |
|
90 |
- // Top-level state directory |
|
90 |
+ // ForceJoin causes us to invoke raft's Join RPC even if already part |
|
91 |
+ // of a cluster. |
|
92 |
+ ForceJoin bool |
|
93 |
+ |
|
94 |
+ // StateDir is the top-level state directory |
|
91 | 95 |
StateDir string |
92 | 96 |
|
93 | 97 |
// ForceNewCluster defines if we have to force a new cluster |
... | ... |
@@ -130,6 +135,7 @@ type Manager struct { |
130 | 130 |
caserver *ca.Server |
131 | 131 |
dispatcher *dispatcher.Dispatcher |
132 | 132 |
logbroker *logbroker.LogBroker |
133 |
+ watchServer *watchapi.Server |
|
133 | 134 |
replicatedOrchestrator *replicated.Orchestrator |
134 | 135 |
globalOrchestrator *global.Orchestrator |
135 | 136 |
taskReaper *taskreaper.TaskReaper |
... | ... |
@@ -159,6 +165,16 @@ type Manager struct { |
159 | 159 |
errServe chan error |
160 | 160 |
} |
161 | 161 |
|
162 |
+var ( |
|
163 |
+ leaderMetric gmetrics.Gauge |
|
164 |
+) |
|
165 |
+ |
|
166 |
+func init() { |
|
167 |
+ ns := gmetrics.NewNamespace("swarm", "manager", nil) |
|
168 |
+ leaderMetric = ns.NewGauge("leader", "Indicates if this manager node is a leader", "") |
|
169 |
+ gmetrics.Register(ns) |
|
170 |
+} |
|
171 |
+ |
|
162 | 172 |
type closeOnceListener struct { |
163 | 173 |
once sync.Once |
164 | 174 |
net.Listener |
... | ... |
@@ -202,6 +218,7 @@ func New(config *Config) (*Manager, error) { |
202 | 202 |
newNodeOpts := raft.NodeOptions{ |
203 | 203 |
ID: config.SecurityConfig.ClientTLSCreds.NodeID(), |
204 | 204 |
JoinAddr: config.JoinRaft, |
205 |
+ ForceJoin: config.ForceJoin, |
|
205 | 206 |
Config: raftCfg, |
206 | 207 |
StateDir: raftStateDir, |
207 | 208 |
ForceNewCluster: config.ForceNewCluster, |
... | ... |
@@ -218,9 +235,10 @@ func New(config *Config) (*Manager, error) { |
218 | 218 |
|
219 | 219 |
m := &Manager{ |
220 | 220 |
config: *config, |
221 |
- caserver: ca.NewServer(raftNode.MemoryStore(), config.SecurityConfig, config.RootCAPaths), |
|
222 |
- dispatcher: dispatcher.New(raftNode, dispatcher.DefaultConfig(), drivers.New(config.PluginGetter)), |
|
221 |
+ caserver: ca.NewServer(raftNode.MemoryStore(), config.SecurityConfig), |
|
222 |
+ dispatcher: dispatcher.New(raftNode, dispatcher.DefaultConfig(), drivers.New(config.PluginGetter), config.SecurityConfig), |
|
223 | 223 |
logbroker: logbroker.New(raftNode.MemoryStore()), |
224 |
+ watchServer: watchapi.NewServer(raftNode.MemoryStore()), |
|
224 | 225 |
server: grpc.NewServer(opts...), |
225 | 226 |
localserver: grpc.NewServer(opts...), |
226 | 227 |
raftNode: raftNode, |
... | ... |
@@ -397,14 +415,13 @@ func (m *Manager) Run(parent context.Context) error { |
397 | 397 |
return err |
398 | 398 |
} |
399 | 399 |
|
400 |
- baseControlAPI := controlapi.NewServer(m.raftNode.MemoryStore(), m.raftNode, m.config.SecurityConfig, m.caserver, m.config.PluginGetter) |
|
401 |
- baseWatchAPI := watchapi.NewServer(m.raftNode.MemoryStore()) |
|
400 |
+ baseControlAPI := controlapi.NewServer(m.raftNode.MemoryStore(), m.raftNode, m.config.SecurityConfig, m.config.PluginGetter, drivers.New(m.config.PluginGetter)) |
|
402 | 401 |
baseResourceAPI := resourceapi.New(m.raftNode.MemoryStore()) |
403 | 402 |
healthServer := health.NewHealthServer() |
404 | 403 |
localHealthServer := health.NewHealthServer() |
405 | 404 |
|
406 | 405 |
authenticatedControlAPI := api.NewAuthenticatedWrapperControlServer(baseControlAPI, authorize) |
407 |
- authenticatedWatchAPI := api.NewAuthenticatedWrapperWatchServer(baseWatchAPI, authorize) |
|
406 |
+ authenticatedWatchAPI := api.NewAuthenticatedWrapperWatchServer(m.watchServer, authorize) |
|
408 | 407 |
authenticatedResourceAPI := api.NewAuthenticatedWrapperResourceAllocatorServer(baseResourceAPI, authorize) |
409 | 408 |
authenticatedLogsServerAPI := api.NewAuthenticatedWrapperLogsServer(m.logbroker, authorize) |
410 | 409 |
authenticatedLogBrokerAPI := api.NewAuthenticatedWrapperLogBrokerServer(m.logbroker, authorize) |
... | ... |
@@ -477,7 +494,7 @@ func (m *Manager) Run(parent context.Context) error { |
477 | 477 |
grpc_prometheus.Register(m.server) |
478 | 478 |
|
479 | 479 |
api.RegisterControlServer(m.localserver, localProxyControlAPI) |
480 |
- api.RegisterWatchServer(m.localserver, baseWatchAPI) |
|
480 |
+ api.RegisterWatchServer(m.localserver, m.watchServer) |
|
481 | 481 |
api.RegisterLogsServer(m.localserver, localProxyLogsAPI) |
482 | 482 |
api.RegisterHealthServer(m.localserver, localHealthServer) |
483 | 483 |
api.RegisterDispatcherServer(m.localserver, localProxyDispatcherAPI) |
... | ... |
@@ -490,6 +507,10 @@ func (m *Manager) Run(parent context.Context) error { |
490 | 490 |
healthServer.SetServingStatus("Raft", api.HealthCheckResponse_NOT_SERVING) |
491 | 491 |
localHealthServer.SetServingStatus("ControlAPI", api.HealthCheckResponse_NOT_SERVING) |
492 | 492 |
|
493 |
+ if err := m.watchServer.Start(ctx); err != nil { |
|
494 |
+ log.G(ctx).WithError(err).Error("watch server failed to start") |
|
495 |
+ } |
|
496 |
+ |
|
493 | 497 |
go m.serveListener(ctx, m.remoteListener) |
494 | 498 |
go m.serveListener(ctx, m.controlListener) |
495 | 499 |
|
... | ... |
@@ -565,8 +586,8 @@ func (m *Manager) Run(parent context.Context) error { |
565 | 565 |
const stopTimeout = 8 * time.Second |
566 | 566 |
|
567 | 567 |
// Stop stops the manager. It immediately closes all open connections and |
568 |
-// active RPCs as well as stopping the scheduler. If clearData is set, the |
|
569 |
-// raft logs, snapshots, and keys will be erased. |
|
568 |
+// active RPCs as well as stopping the manager's subsystems. If clearData is |
|
569 |
+// set, the raft logs, snapshots, and keys will be erased. |
|
570 | 570 |
func (m *Manager) Stop(ctx context.Context, clearData bool) { |
571 | 571 |
log.G(ctx).Info("Stopping manager") |
572 | 572 |
// It's not safe to start shutting down while the manager is still |
... | ... |
@@ -600,6 +621,7 @@ func (m *Manager) Stop(ctx context.Context, clearData bool) { |
600 | 600 |
|
601 | 601 |
m.dispatcher.Stop() |
602 | 602 |
m.logbroker.Stop() |
603 |
+ m.watchServer.Stop() |
|
603 | 604 |
m.caserver.Stop() |
604 | 605 |
|
605 | 606 |
if m.allocator != nil { |
... | ... |
@@ -709,16 +731,14 @@ func (m *Manager) updateKEK(ctx context.Context, cluster *api.Cluster) error { |
709 | 709 |
|
710 | 710 |
func (m *Manager) watchForClusterChanges(ctx context.Context) error { |
711 | 711 |
clusterID := m.config.SecurityConfig.ClientTLSCreds.Organization() |
712 |
+ var cluster *api.Cluster |
|
712 | 713 |
clusterWatch, clusterWatchCancel, err := store.ViewAndWatch(m.raftNode.MemoryStore(), |
713 | 714 |
func(tx store.ReadTx) error { |
714 |
- cluster := store.GetCluster(tx, clusterID) |
|
715 |
+ cluster = store.GetCluster(tx, clusterID) |
|
715 | 716 |
if cluster == nil { |
716 | 717 |
return fmt.Errorf("unable to get current cluster") |
717 | 718 |
} |
718 |
- if err := m.caserver.UpdateRootCA(ctx, cluster); err != nil { |
|
719 |
- log.G(ctx).WithError(err).Error("could not update security config") |
|
720 |
- } |
|
721 |
- return m.updateKEK(ctx, cluster) |
|
719 |
+ return nil |
|
722 | 720 |
}, |
723 | 721 |
api.EventUpdateCluster{ |
724 | 722 |
Cluster: &api.Cluster{ID: clusterID}, |
... | ... |
@@ -728,14 +748,15 @@ func (m *Manager) watchForClusterChanges(ctx context.Context) error { |
728 | 728 |
if err != nil { |
729 | 729 |
return err |
730 | 730 |
} |
731 |
+ if err := m.updateKEK(ctx, cluster); err != nil { |
|
732 |
+ return err |
|
733 |
+ } |
|
734 |
+ |
|
731 | 735 |
go func() { |
732 | 736 |
for { |
733 | 737 |
select { |
734 | 738 |
case event := <-clusterWatch: |
735 | 739 |
clusterEvent := event.(api.EventUpdateCluster) |
736 |
- if err := m.caserver.UpdateRootCA(ctx, clusterEvent.Cluster); err != nil { |
|
737 |
- log.G(ctx).WithError(err).Error("could not update security config") |
|
738 |
- } |
|
739 | 740 |
m.updateKEK(ctx, clusterEvent.Cluster) |
740 | 741 |
case <-ctx.Done(): |
741 | 742 |
clusterWatchCancel() |
... | ... |
@@ -863,8 +884,10 @@ func (m *Manager) handleLeadershipEvents(ctx context.Context, leadershipCh chan |
863 | 863 |
|
864 | 864 |
if newState == raft.IsLeader { |
865 | 865 |
m.becomeLeader(ctx) |
866 |
+ leaderMetric.Set(1) |
|
866 | 867 |
} else if newState == raft.IsFollower { |
867 | 868 |
m.becomeFollower() |
869 |
+ leaderMetric.Set(0) |
|
868 | 870 |
} |
869 | 871 |
m.mu.Unlock() |
870 | 872 |
case <-ctx.Done(): |
... | ... |
@@ -1001,11 +1024,9 @@ func (m *Manager) becomeLeader(ctx context.Context) { |
1001 | 1001 |
} |
1002 | 1002 |
}(m.dispatcher) |
1003 | 1003 |
|
1004 |
- go func(lb *logbroker.LogBroker) { |
|
1005 |
- if err := lb.Run(ctx); err != nil { |
|
1006 |
- log.G(ctx).WithError(err).Error("LogBroker exited with an error") |
|
1007 |
- } |
|
1008 |
- }(m.logbroker) |
|
1004 |
+ if err := m.logbroker.Start(ctx); err != nil { |
|
1005 |
+ log.G(ctx).WithError(err).Error("LogBroker failed to start") |
|
1006 |
+ } |
|
1009 | 1007 |
|
1010 | 1008 |
go func(server *ca.Server) { |
1011 | 1009 |
if err := server.Run(ctx); err != nil { |
... | ... |
@@ -156,25 +156,12 @@ func (g *Orchestrator) Run(ctx context.Context) error { |
156 | 156 |
g.reconcileOneNode(ctx, v.Node) |
157 | 157 |
case api.EventUpdateNode: |
158 | 158 |
g.updateNode(v.Node) |
159 |
- switch v.Node.Status.State { |
|
160 |
- // NodeStatus_DISCONNECTED is a transient state, no need to make any change |
|
161 |
- case api.NodeStatus_DOWN: |
|
162 |
- g.foreachTaskFromNode(ctx, v.Node, g.shutdownTask) |
|
163 |
- case api.NodeStatus_READY: |
|
164 |
- // node could come back to READY from DOWN or DISCONNECT |
|
165 |
- g.reconcileOneNode(ctx, v.Node) |
|
166 |
- } |
|
159 |
+ g.reconcileOneNode(ctx, v.Node) |
|
167 | 160 |
case api.EventDeleteNode: |
168 | 161 |
g.foreachTaskFromNode(ctx, v.Node, g.deleteTask) |
169 | 162 |
delete(g.nodes, v.Node.ID) |
170 | 163 |
case api.EventUpdateTask: |
171 | 164 |
g.handleTaskChange(ctx, v.Task) |
172 |
- case api.EventDeleteTask: |
|
173 |
- // CLI allows deleting task |
|
174 |
- if _, exists := g.globalServices[v.Task.ServiceID]; !exists { |
|
175 |
- continue |
|
176 |
- } |
|
177 |
- g.reconcileServicesOneNode(ctx, []string{v.Task.ServiceID}, v.Task.NodeID) |
|
178 | 165 |
} |
179 | 166 |
case <-g.stopChan: |
180 | 167 |
return nil |
... | ... |
@@ -216,7 +203,7 @@ func (g *Orchestrator) handleTaskChange(ctx context.Context, t *api.Task) { |
216 | 216 |
if _, exists := g.globalServices[t.ServiceID]; !exists { |
217 | 217 |
return |
218 | 218 |
} |
219 |
- // if a task's DesiredState has past running, which |
|
219 |
+ // if a task's DesiredState has passed running, it |
|
220 | 220 |
// means the task has been processed |
221 | 221 |
if t.DesiredState > api.TaskStateRunning { |
222 | 222 |
return |
... | ... |
@@ -264,33 +251,41 @@ func (g *Orchestrator) foreachTaskFromNode(ctx context.Context, node *api.Node, |
264 | 264 |
} |
265 | 265 |
|
266 | 266 |
func (g *Orchestrator) reconcileServices(ctx context.Context, serviceIDs []string) { |
267 |
- nodeCompleted := make(map[string]map[string]struct{}) |
|
268 | 267 |
nodeTasks := make(map[string]map[string][]*api.Task) |
269 | 268 |
|
270 | 269 |
g.store.View(func(tx store.ReadTx) { |
271 | 270 |
for _, serviceID := range serviceIDs { |
271 |
+ service := g.globalServices[serviceID].Service |
|
272 |
+ if service == nil { |
|
273 |
+ continue |
|
274 |
+ } |
|
275 |
+ |
|
272 | 276 |
tasks, err := store.FindTasks(tx, store.ByServiceID(serviceID)) |
273 | 277 |
if err != nil { |
274 | 278 |
log.G(ctx).WithError(err).Errorf("global orchestrator: reconcileServices failed finding tasks for service %s", serviceID) |
275 | 279 |
continue |
276 | 280 |
} |
277 | 281 |
|
278 |
- // a node may have completed this service |
|
279 |
- nodeCompleted[serviceID] = make(map[string]struct{}) |
|
280 | 282 |
// nodeID -> task list |
281 | 283 |
nodeTasks[serviceID] = make(map[string][]*api.Task) |
282 | 284 |
|
283 | 285 |
for _, t := range tasks { |
284 |
- if t.DesiredState <= api.TaskStateRunning { |
|
285 |
- // Collect all running instances of this service |
|
286 |
- nodeTasks[serviceID][t.NodeID] = append(nodeTasks[serviceID][t.NodeID], t) |
|
286 |
+ nodeTasks[serviceID][t.NodeID] = append(nodeTasks[serviceID][t.NodeID], t) |
|
287 |
+ } |
|
288 |
+ |
|
289 |
+ // Keep all runnable instances of this service, |
|
290 |
+ // and instances that were not be restarted due |
|
291 |
+ // to restart policy but may be updated if the |
|
292 |
+ // service spec changed. |
|
293 |
+ for nodeID, slot := range nodeTasks[serviceID] { |
|
294 |
+ updatable := g.restarts.UpdatableTasksInSlot(ctx, slot, g.globalServices[serviceID].Service) |
|
295 |
+ if len(updatable) != 0 { |
|
296 |
+ nodeTasks[serviceID][nodeID] = updatable |
|
287 | 297 |
} else { |
288 |
- // for finished tasks, check restartPolicy |
|
289 |
- if isTaskCompleted(t, orchestrator.RestartCondition(t)) { |
|
290 |
- nodeCompleted[serviceID][t.NodeID] = struct{}{} |
|
291 |
- } |
|
298 |
+ delete(nodeTasks[serviceID], nodeID) |
|
292 | 299 |
} |
293 | 300 |
} |
301 |
+ |
|
294 | 302 |
} |
295 | 303 |
}) |
296 | 304 |
|
... | ... |
@@ -311,9 +306,7 @@ func (g *Orchestrator) reconcileServices(ctx context.Context, serviceIDs []strin |
311 | 311 |
ntasks := nodeTasks[serviceID][nodeID] |
312 | 312 |
delete(nodeTasks[serviceID], nodeID) |
313 | 313 |
|
314 |
- // if restart policy considers this node has finished its task |
|
315 |
- // it should remove all running tasks |
|
316 |
- if _, exists := nodeCompleted[serviceID][nodeID]; exists || !meetsConstraints { |
|
314 |
+ if !meetsConstraints { |
|
317 | 315 |
g.shutdownTasks(ctx, batch, ntasks) |
318 | 316 |
continue |
319 | 317 |
} |
... | ... |
@@ -357,7 +350,7 @@ func (g *Orchestrator) reconcileServices(ctx context.Context, serviceIDs []strin |
357 | 357 |
|
358 | 358 |
// updateNode updates g.nodes based on the current node value |
359 | 359 |
func (g *Orchestrator) updateNode(node *api.Node) { |
360 |
- if node.Spec.Availability == api.NodeAvailabilityDrain { |
|
360 |
+ if node.Spec.Availability == api.NodeAvailabilityDrain || node.Status.State == api.NodeStatus_DOWN { |
|
361 | 361 |
delete(g.nodes, node.ID) |
362 | 362 |
} else { |
363 | 363 |
g.nodes[node.ID] = node |
... | ... |
@@ -381,27 +374,27 @@ func (g *Orchestrator) updateService(service *api.Service) { |
381 | 381 |
// reconcileOneNode checks all global services on one node |
382 | 382 |
func (g *Orchestrator) reconcileOneNode(ctx context.Context, node *api.Node) { |
383 | 383 |
if node.Spec.Availability == api.NodeAvailabilityDrain { |
384 |
- log.G(ctx).Debugf("global orchestrator: node %s in drain state, removing tasks from it", node.ID) |
|
384 |
+ log.G(ctx).Debugf("global orchestrator: node %s in drain state, shutting down its tasks", node.ID) |
|
385 | 385 |
g.foreachTaskFromNode(ctx, node, g.shutdownTask) |
386 | 386 |
return |
387 | 387 |
} |
388 | 388 |
|
389 |
- var serviceIDs []string |
|
390 |
- for id := range g.globalServices { |
|
391 |
- serviceIDs = append(serviceIDs, id) |
|
389 |
+ if node.Status.State == api.NodeStatus_DOWN { |
|
390 |
+ log.G(ctx).Debugf("global orchestrator: node %s is down, shutting down its tasks", node.ID) |
|
391 |
+ g.foreachTaskFromNode(ctx, node, g.shutdownTask) |
|
392 |
+ return |
|
392 | 393 |
} |
393 |
- g.reconcileServicesOneNode(ctx, serviceIDs, node.ID) |
|
394 |
-} |
|
395 | 394 |
|
396 |
-// reconcileServicesOneNode checks the specified services on one node |
|
397 |
-func (g *Orchestrator) reconcileServicesOneNode(ctx context.Context, serviceIDs []string, nodeID string) { |
|
398 |
- node, exists := g.nodes[nodeID] |
|
395 |
+ if node.Spec.Availability == api.NodeAvailabilityPause { |
|
396 |
+ // the node is paused, so we won't add or update tasks |
|
397 |
+ return |
|
398 |
+ } |
|
399 |
+ |
|
400 |
+ node, exists := g.nodes[node.ID] |
|
399 | 401 |
if !exists { |
400 | 402 |
return |
401 | 403 |
} |
402 | 404 |
|
403 |
- // whether each service has completed on the node |
|
404 |
- completed := make(map[string]bool) |
|
405 | 405 |
// tasks by service |
406 | 406 |
tasks := make(map[string][]*api.Task) |
407 | 407 |
|
... | ... |
@@ -411,53 +404,44 @@ func (g *Orchestrator) reconcileServicesOneNode(ctx context.Context, serviceIDs |
411 | 411 |
) |
412 | 412 |
|
413 | 413 |
g.store.View(func(tx store.ReadTx) { |
414 |
- tasksOnNode, err = store.FindTasks(tx, store.ByNodeID(nodeID)) |
|
414 |
+ tasksOnNode, err = store.FindTasks(tx, store.ByNodeID(node.ID)) |
|
415 | 415 |
}) |
416 | 416 |
if err != nil { |
417 |
- log.G(ctx).WithError(err).Errorf("global orchestrator: reconcile failed finding tasks on node %s", nodeID) |
|
417 |
+ log.G(ctx).WithError(err).Errorf("global orchestrator: reconcile failed finding tasks on node %s", node.ID) |
|
418 | 418 |
return |
419 | 419 |
} |
420 | 420 |
|
421 |
- for _, serviceID := range serviceIDs { |
|
421 |
+ for serviceID, service := range g.globalServices { |
|
422 | 422 |
for _, t := range tasksOnNode { |
423 | 423 |
if t.ServiceID != serviceID { |
424 | 424 |
continue |
425 | 425 |
} |
426 |
- if t.DesiredState <= api.TaskStateRunning { |
|
427 |
- tasks[serviceID] = append(tasks[serviceID], t) |
|
426 |
+ tasks[serviceID] = append(tasks[serviceID], t) |
|
427 |
+ } |
|
428 |
+ |
|
429 |
+ // Keep all runnable instances of this service, |
|
430 |
+ // and instances that were not be restarted due |
|
431 |
+ // to restart policy but may be updated if the |
|
432 |
+ // service spec changed. |
|
433 |
+ for serviceID, slot := range tasks { |
|
434 |
+ updatable := g.restarts.UpdatableTasksInSlot(ctx, slot, service.Service) |
|
435 |
+ |
|
436 |
+ if len(updatable) != 0 { |
|
437 |
+ tasks[serviceID] = updatable |
|
428 | 438 |
} else { |
429 |
- if isTaskCompleted(t, orchestrator.RestartCondition(t)) { |
|
430 |
- completed[serviceID] = true |
|
431 |
- } |
|
439 |
+ delete(tasks, serviceID) |
|
432 | 440 |
} |
433 | 441 |
} |
434 | 442 |
} |
435 | 443 |
|
436 | 444 |
err = g.store.Batch(func(batch *store.Batch) error { |
437 |
- for _, serviceID := range serviceIDs { |
|
438 |
- service, exists := g.globalServices[serviceID] |
|
439 |
- if !exists { |
|
440 |
- continue |
|
441 |
- } |
|
442 |
- |
|
445 |
+ for serviceID, service := range g.globalServices { |
|
443 | 446 |
if !constraint.NodeMatches(service.constraints, node) { |
444 | 447 |
continue |
445 | 448 |
} |
446 | 449 |
|
447 |
- // if restart policy considers this node has finished its task |
|
448 |
- // it should remove all running tasks |
|
449 |
- if completed[serviceID] { |
|
450 |
- g.shutdownTasks(ctx, batch, tasks[serviceID]) |
|
451 |
- continue |
|
452 |
- } |
|
453 |
- |
|
454 |
- if node.Spec.Availability == api.NodeAvailabilityPause { |
|
455 |
- // the node is paused, so we won't add or update tasks |
|
456 |
- continue |
|
457 |
- } |
|
458 |
- |
|
459 | 450 |
if len(tasks) == 0 { |
460 |
- g.addTask(ctx, batch, service.Service, nodeID) |
|
451 |
+ g.addTask(ctx, batch, service.Service, node.ID) |
|
461 | 452 |
} else { |
462 | 453 |
// If task is out of date, update it. This can happen |
463 | 454 |
// on node reconciliation if, for example, we pause a |
... | ... |
@@ -487,7 +471,7 @@ func (g *Orchestrator) reconcileServicesOneNode(ctx context.Context, serviceIDs |
487 | 487 |
} |
488 | 488 |
|
489 | 489 |
if len(cleanTasks) == 0 { |
490 |
- g.addTask(ctx, batch, service.Service, nodeID) |
|
490 |
+ g.addTask(ctx, batch, service.Service, node.ID) |
|
491 | 491 |
} else { |
492 | 492 |
dirtyTasks = append(dirtyTasks, cleanTasks[1:]...) |
493 | 493 |
} |
... | ... |
@@ -523,7 +507,9 @@ func (g *Orchestrator) tickTasks(ctx context.Context) { |
523 | 523 |
if !nodeExists || !serviceExists { |
524 | 524 |
return nil |
525 | 525 |
} |
526 |
- if !constraint.NodeMatches(serviceEntry.constraints, node) { |
|
526 |
+ |
|
527 |
+ if node.Spec.Availability == api.NodeAvailabilityPause || |
|
528 |
+ !constraint.NodeMatches(serviceEntry.constraints, node) { |
|
527 | 529 |
t.DesiredState = api.TaskStateShutdown |
528 | 530 |
return store.UpdateTask(tx, t) |
529 | 531 |
} |
... | ... |
@@ -592,6 +578,14 @@ func (g *Orchestrator) IsRelatedService(service *api.Service) bool { |
592 | 592 |
return orchestrator.IsGlobalService(service) |
593 | 593 |
} |
594 | 594 |
|
595 |
+// SlotTuple returns a slot tuple for the global service task. |
|
596 |
+func (g *Orchestrator) SlotTuple(t *api.Task) orchestrator.SlotTuple { |
|
597 |
+ return orchestrator.SlotTuple{ |
|
598 |
+ ServiceID: t.ServiceID, |
|
599 |
+ NodeID: t.NodeID, |
|
600 |
+ } |
|
601 |
+} |
|
602 |
+ |
|
595 | 603 |
func isTaskCompleted(t *api.Task, restartPolicy api.RestartPolicy_RestartCondition) bool { |
596 | 604 |
if t == nil || t.DesiredState <= api.TaskStateRunning { |
597 | 605 |
return false |
... | ... |
@@ -87,7 +87,7 @@ func (r *Orchestrator) resolveService(ctx context.Context, task *api.Task) *api. |
87 | 87 |
} |
88 | 88 |
|
89 | 89 |
func (r *Orchestrator) reconcile(ctx context.Context, service *api.Service) { |
90 |
- runningSlots, deadSlots, err := orchestrator.GetRunnableAndDeadSlots(r.store, service.ID) |
|
90 |
+ runningSlots, deadSlots, err := r.updatableAndDeadSlots(ctx, service) |
|
91 | 91 |
if err != nil { |
92 | 92 |
log.G(ctx).WithError(err).Errorf("reconcile failed finding tasks") |
93 | 93 |
return |
... | ... |
@@ -3,6 +3,8 @@ package replicated |
3 | 3 |
import ( |
4 | 4 |
"github.com/docker/swarmkit/api" |
5 | 5 |
"github.com/docker/swarmkit/manager/orchestrator" |
6 |
+ "github.com/docker/swarmkit/manager/state/store" |
|
7 |
+ "golang.org/x/net/context" |
|
6 | 8 |
) |
7 | 9 |
|
8 | 10 |
type slotsByRunningState []orchestrator.Slot |
... | ... |
@@ -53,3 +55,46 @@ func (is slotsByIndex) Less(i, j int) bool { |
53 | 53 |
} |
54 | 54 |
return is[i].index < is[j].index |
55 | 55 |
} |
56 |
+ |
|
57 |
+// updatableAndDeadSlots returns two maps of slots. The first contains slots |
|
58 |
+// that have at least one task with a desired state above NEW and lesser or |
|
59 |
+// equal to RUNNING, or a task that shouldn't be restarted. The second contains |
|
60 |
+// all other slots with at least one task. |
|
61 |
+func (r *Orchestrator) updatableAndDeadSlots(ctx context.Context, service *api.Service) (map[uint64]orchestrator.Slot, map[uint64]orchestrator.Slot, error) { |
|
62 |
+ var ( |
|
63 |
+ tasks []*api.Task |
|
64 |
+ err error |
|
65 |
+ ) |
|
66 |
+ r.store.View(func(tx store.ReadTx) { |
|
67 |
+ tasks, err = store.FindTasks(tx, store.ByServiceID(service.ID)) |
|
68 |
+ }) |
|
69 |
+ if err != nil { |
|
70 |
+ return nil, nil, err |
|
71 |
+ } |
|
72 |
+ |
|
73 |
+ updatableSlots := make(map[uint64]orchestrator.Slot) |
|
74 |
+ for _, t := range tasks { |
|
75 |
+ updatableSlots[t.Slot] = append(updatableSlots[t.Slot], t) |
|
76 |
+ } |
|
77 |
+ |
|
78 |
+ deadSlots := make(map[uint64]orchestrator.Slot) |
|
79 |
+ for slotID, slot := range updatableSlots { |
|
80 |
+ updatable := r.restarts.UpdatableTasksInSlot(ctx, slot, service) |
|
81 |
+ if len(updatable) != 0 { |
|
82 |
+ updatableSlots[slotID] = updatable |
|
83 |
+ } else { |
|
84 |
+ delete(updatableSlots, slotID) |
|
85 |
+ deadSlots[slotID] = slot |
|
86 |
+ } |
|
87 |
+ } |
|
88 |
+ |
|
89 |
+ return updatableSlots, deadSlots, nil |
|
90 |
+} |
|
91 |
+ |
|
92 |
+// SlotTuple returns a slot tuple for the replicated service task. |
|
93 |
+func (r *Orchestrator) SlotTuple(t *api.Task) orchestrator.SlotTuple { |
|
94 |
+ return orchestrator.SlotTuple{ |
|
95 |
+ ServiceID: t.ServiceID, |
|
96 |
+ Slot: t.Slot, |
|
97 |
+ } |
|
98 |
+} |
... | ... |
@@ -30,6 +30,13 @@ type instanceRestartInfo struct { |
30 | 30 |
// Restart.MaxAttempts and Restart.Window are both |
31 | 31 |
// nonzero. |
32 | 32 |
restartedInstances *list.List |
33 |
+ // Why is specVersion in this structure and not in the map key? While |
|
34 |
+ // putting it in the key would be a very simple solution, it wouldn't |
|
35 |
+ // be easy to clean up map entries corresponding to old specVersions. |
|
36 |
+ // Making the key version-agnostic and clearing the value whenever the |
|
37 |
+ // version changes avoids the issue of stale map entries for old |
|
38 |
+ // versions. |
|
39 |
+ specVersion api.Version |
|
33 | 40 |
} |
34 | 41 |
|
35 | 42 |
type delayedStart struct { |
... | ... |
@@ -42,20 +49,13 @@ type delayedStart struct { |
42 | 42 |
waiter bool |
43 | 43 |
} |
44 | 44 |
|
45 |
-type instanceTuple struct { |
|
46 |
- instance uint64 // unset for global tasks |
|
47 |
- serviceID string |
|
48 |
- nodeID string // unset for replicated tasks |
|
49 |
-} |
|
50 |
- |
|
51 | 45 |
// Supervisor initiates and manages restarts. It's responsible for |
52 | 46 |
// delaying restarts when applicable. |
53 | 47 |
type Supervisor struct { |
54 | 48 |
mu sync.Mutex |
55 | 49 |
store *store.MemoryStore |
56 | 50 |
delays map[string]*delayedStart |
57 |
- history map[instanceTuple]*instanceRestartInfo |
|
58 |
- historyByService map[string]map[instanceTuple]struct{} |
|
51 |
+ historyByService map[string]map[orchestrator.SlotTuple]*instanceRestartInfo |
|
59 | 52 |
TaskTimeout time.Duration |
60 | 53 |
} |
61 | 54 |
|
... | ... |
@@ -64,8 +64,7 @@ func NewSupervisor(store *store.MemoryStore) *Supervisor { |
64 | 64 |
return &Supervisor{ |
65 | 65 |
store: store, |
66 | 66 |
delays: make(map[string]*delayedStart), |
67 |
- history: make(map[instanceTuple]*instanceRestartInfo), |
|
68 |
- historyByService: make(map[string]map[instanceTuple]struct{}), |
|
67 |
+ historyByService: make(map[string]map[orchestrator.SlotTuple]*instanceRestartInfo), |
|
69 | 68 |
TaskTimeout: defaultOldTaskTimeout, |
70 | 69 |
} |
71 | 70 |
} |
... | ... |
@@ -180,15 +179,21 @@ func (r *Supervisor) Restart(ctx context.Context, tx store.Tx, cluster *api.Clus |
180 | 180 |
return err |
181 | 181 |
} |
182 | 182 |
|
183 |
- r.recordRestartHistory(restartTask) |
|
183 |
+ tuple := orchestrator.SlotTuple{ |
|
184 |
+ Slot: restartTask.Slot, |
|
185 |
+ ServiceID: restartTask.ServiceID, |
|
186 |
+ NodeID: restartTask.NodeID, |
|
187 |
+ } |
|
188 |
+ r.RecordRestartHistory(tuple, restartTask) |
|
184 | 189 |
|
185 | 190 |
r.DelayStart(ctx, tx, &t, restartTask.ID, restartDelay, waitStop) |
186 | 191 |
return nil |
187 | 192 |
} |
188 | 193 |
|
194 |
+// shouldRestart returns true if a task should be restarted according to the |
|
195 |
+// restart policy. |
|
189 | 196 |
func (r *Supervisor) shouldRestart(ctx context.Context, t *api.Task, service *api.Service) bool { |
190 | 197 |
// TODO(aluzzardi): This function should not depend on `service`. |
191 |
- |
|
192 | 198 |
condition := orchestrator.RestartCondition(t) |
193 | 199 |
|
194 | 200 |
if condition != api.RestartOnAny && |
... | ... |
@@ -200,22 +205,22 @@ func (r *Supervisor) shouldRestart(ctx context.Context, t *api.Task, service *ap |
200 | 200 |
return true |
201 | 201 |
} |
202 | 202 |
|
203 |
- instanceTuple := instanceTuple{ |
|
204 |
- instance: t.Slot, |
|
205 |
- serviceID: t.ServiceID, |
|
203 |
+ instanceTuple := orchestrator.SlotTuple{ |
|
204 |
+ Slot: t.Slot, |
|
205 |
+ ServiceID: t.ServiceID, |
|
206 | 206 |
} |
207 | 207 |
|
208 |
- // Instance is not meaningful for "global" tasks, so they need to be |
|
208 |
+ // Slot is not meaningful for "global" tasks, so they need to be |
|
209 | 209 |
// indexed by NodeID. |
210 | 210 |
if orchestrator.IsGlobalService(service) { |
211 |
- instanceTuple.nodeID = t.NodeID |
|
211 |
+ instanceTuple.NodeID = t.NodeID |
|
212 | 212 |
} |
213 | 213 |
|
214 | 214 |
r.mu.Lock() |
215 | 215 |
defer r.mu.Unlock() |
216 | 216 |
|
217 |
- restartInfo := r.history[instanceTuple] |
|
218 |
- if restartInfo == nil { |
|
217 |
+ restartInfo := r.historyByService[t.ServiceID][instanceTuple] |
|
218 |
+ if restartInfo == nil || (t.SpecVersion != nil && *t.SpecVersion != restartInfo.specVersion) { |
|
219 | 219 |
return true |
220 | 220 |
} |
221 | 221 |
|
... | ... |
@@ -232,8 +237,32 @@ func (r *Supervisor) shouldRestart(ctx context.Context, t *api.Task, service *ap |
232 | 232 |
log.G(ctx).WithError(err).Error("invalid restart lookback window") |
233 | 233 |
return restartInfo.totalRestarts < t.Spec.Restart.MaxAttempts |
234 | 234 |
} |
235 |
- lookback := time.Now().Add(-window) |
|
236 | 235 |
|
236 |
+ var timestamp time.Time |
|
237 |
+ // Prefer the manager's timestamp over the agent's, since manager |
|
238 |
+ // clocks are more trustworthy. |
|
239 |
+ if t.Status.AppliedAt != nil { |
|
240 |
+ timestamp, err = gogotypes.TimestampFromProto(t.Status.AppliedAt) |
|
241 |
+ if err != nil { |
|
242 |
+ log.G(ctx).WithError(err).Error("invalid task status AppliedAt timestamp") |
|
243 |
+ return restartInfo.totalRestarts < t.Spec.Restart.MaxAttempts |
|
244 |
+ } |
|
245 |
+ } else { |
|
246 |
+ // It's safe to call TimestampFromProto with a nil timestamp |
|
247 |
+ timestamp, err = gogotypes.TimestampFromProto(t.Status.Timestamp) |
|
248 |
+ if t.Status.Timestamp == nil || err != nil { |
|
249 |
+ log.G(ctx).WithError(err).Error("invalid task completion timestamp") |
|
250 |
+ return restartInfo.totalRestarts < t.Spec.Restart.MaxAttempts |
|
251 |
+ } |
|
252 |
+ } |
|
253 |
+ lookback := timestamp.Add(-window) |
|
254 |
+ |
|
255 |
+ numRestarts := uint64(restartInfo.restartedInstances.Len()) |
|
256 |
+ |
|
257 |
+ // Disregard any restarts that happened before the lookback window, |
|
258 |
+ // and remove them from the linked list since they will no longer |
|
259 |
+ // be relevant to figuring out if tasks should be restarted going |
|
260 |
+ // forward. |
|
237 | 261 |
var next *list.Element |
238 | 262 |
for e := restartInfo.restartedInstances.Front(); e != nil; e = next { |
239 | 263 |
next = e.Next() |
... | ... |
@@ -242,51 +271,115 @@ func (r *Supervisor) shouldRestart(ctx context.Context, t *api.Task, service *ap |
242 | 242 |
break |
243 | 243 |
} |
244 | 244 |
restartInfo.restartedInstances.Remove(e) |
245 |
+ numRestarts-- |
|
245 | 246 |
} |
246 | 247 |
|
247 |
- numRestarts := uint64(restartInfo.restartedInstances.Len()) |
|
248 |
+ // Ignore restarts that didn't happen before the task we're looking at. |
|
249 |
+ for e2 := restartInfo.restartedInstances.Back(); e2 != nil; e2 = e2.Prev() { |
|
250 |
+ if e2.Value.(restartedInstance).timestamp.Before(timestamp) { |
|
251 |
+ break |
|
252 |
+ } |
|
253 |
+ numRestarts-- |
|
254 |
+ } |
|
248 | 255 |
|
249 |
- if numRestarts == 0 { |
|
256 |
+ if restartInfo.restartedInstances.Len() == 0 { |
|
250 | 257 |
restartInfo.restartedInstances = nil |
251 | 258 |
} |
252 | 259 |
|
253 | 260 |
return numRestarts < t.Spec.Restart.MaxAttempts |
254 | 261 |
} |
255 | 262 |
|
256 |
-func (r *Supervisor) recordRestartHistory(restartTask *api.Task) { |
|
257 |
- if restartTask.Spec.Restart == nil || restartTask.Spec.Restart.MaxAttempts == 0 { |
|
263 |
+// UpdatableTasksInSlot returns the set of tasks that should be passed to the |
|
264 |
+// updater from this slot, or an empty slice if none should be. An updatable |
|
265 |
+// slot has either at least one task that with desired state <= RUNNING, or its |
|
266 |
+// most recent task has stopped running and should not be restarted. The latter |
|
267 |
+// case is for making sure that tasks that shouldn't normally be restarted will |
|
268 |
+// still be handled by rolling updates when they become outdated. There is a |
|
269 |
+// special case for rollbacks to make sure that a rollback always takes the |
|
270 |
+// service to a converged state, instead of ignoring tasks with the original |
|
271 |
+// spec that stopped running and shouldn't be restarted according to the |
|
272 |
+// restart policy. |
|
273 |
+func (r *Supervisor) UpdatableTasksInSlot(ctx context.Context, slot orchestrator.Slot, service *api.Service) orchestrator.Slot { |
|
274 |
+ if len(slot) < 1 { |
|
275 |
+ return nil |
|
276 |
+ } |
|
277 |
+ |
|
278 |
+ var updatable orchestrator.Slot |
|
279 |
+ for _, t := range slot { |
|
280 |
+ if t.DesiredState <= api.TaskStateRunning { |
|
281 |
+ updatable = append(updatable, t) |
|
282 |
+ } |
|
283 |
+ } |
|
284 |
+ if len(updatable) > 0 { |
|
285 |
+ return updatable |
|
286 |
+ } |
|
287 |
+ |
|
288 |
+ if service.UpdateStatus != nil && service.UpdateStatus.State == api.UpdateStatus_ROLLBACK_STARTED { |
|
289 |
+ return nil |
|
290 |
+ } |
|
291 |
+ |
|
292 |
+ // Find most recent task |
|
293 |
+ byTimestamp := orchestrator.TasksByTimestamp(slot) |
|
294 |
+ newestIndex := 0 |
|
295 |
+ for i := 1; i != len(slot); i++ { |
|
296 |
+ if byTimestamp.Less(newestIndex, i) { |
|
297 |
+ newestIndex = i |
|
298 |
+ } |
|
299 |
+ } |
|
300 |
+ |
|
301 |
+ if !r.shouldRestart(ctx, slot[newestIndex], service) { |
|
302 |
+ return orchestrator.Slot{slot[newestIndex]} |
|
303 |
+ } |
|
304 |
+ return nil |
|
305 |
+} |
|
306 |
+ |
|
307 |
+// RecordRestartHistory updates the historyByService map to reflect the restart |
|
308 |
+// of restartedTask. |
|
309 |
+func (r *Supervisor) RecordRestartHistory(tuple orchestrator.SlotTuple, replacementTask *api.Task) { |
|
310 |
+ if replacementTask.Spec.Restart == nil || replacementTask.Spec.Restart.MaxAttempts == 0 { |
|
258 | 311 |
// No limit on the number of restarts, so no need to record |
259 | 312 |
// history. |
260 | 313 |
return |
261 | 314 |
} |
262 |
- tuple := instanceTuple{ |
|
263 |
- instance: restartTask.Slot, |
|
264 |
- serviceID: restartTask.ServiceID, |
|
265 |
- nodeID: restartTask.NodeID, |
|
266 |
- } |
|
267 | 315 |
|
268 | 316 |
r.mu.Lock() |
269 | 317 |
defer r.mu.Unlock() |
270 | 318 |
|
271 |
- if r.history[tuple] == nil { |
|
272 |
- r.history[tuple] = &instanceRestartInfo{} |
|
319 |
+ serviceID := replacementTask.ServiceID |
|
320 |
+ if r.historyByService[serviceID] == nil { |
|
321 |
+ r.historyByService[serviceID] = make(map[orchestrator.SlotTuple]*instanceRestartInfo) |
|
322 |
+ } |
|
323 |
+ if r.historyByService[serviceID][tuple] == nil { |
|
324 |
+ r.historyByService[serviceID][tuple] = &instanceRestartInfo{} |
|
273 | 325 |
} |
274 | 326 |
|
275 |
- restartInfo := r.history[tuple] |
|
276 |
- restartInfo.totalRestarts++ |
|
327 |
+ restartInfo := r.historyByService[serviceID][tuple] |
|
277 | 328 |
|
278 |
- if r.historyByService[restartTask.ServiceID] == nil { |
|
279 |
- r.historyByService[restartTask.ServiceID] = make(map[instanceTuple]struct{}) |
|
329 |
+ if replacementTask.SpecVersion != nil && *replacementTask.SpecVersion != restartInfo.specVersion { |
|
330 |
+ // This task has a different SpecVersion from the one we're |
|
331 |
+ // tracking. Most likely, the service was updated. Past failures |
|
332 |
+ // shouldn't count against the new service definition, so clear |
|
333 |
+ // the history for this instance. |
|
334 |
+ *restartInfo = instanceRestartInfo{ |
|
335 |
+ specVersion: *replacementTask.SpecVersion, |
|
336 |
+ } |
|
280 | 337 |
} |
281 |
- r.historyByService[restartTask.ServiceID][tuple] = struct{}{} |
|
282 | 338 |
|
283 |
- if restartTask.Spec.Restart.Window != nil && (restartTask.Spec.Restart.Window.Seconds != 0 || restartTask.Spec.Restart.Window.Nanos != 0) { |
|
339 |
+ restartInfo.totalRestarts++ |
|
340 |
+ |
|
341 |
+ if replacementTask.Spec.Restart.Window != nil && (replacementTask.Spec.Restart.Window.Seconds != 0 || replacementTask.Spec.Restart.Window.Nanos != 0) { |
|
284 | 342 |
if restartInfo.restartedInstances == nil { |
285 | 343 |
restartInfo.restartedInstances = list.New() |
286 | 344 |
} |
287 | 345 |
|
346 |
+ // it's okay to call TimestampFromProto with a nil argument |
|
347 |
+ timestamp, err := gogotypes.TimestampFromProto(replacementTask.Meta.CreatedAt) |
|
348 |
+ if replacementTask.Meta.CreatedAt == nil || err != nil { |
|
349 |
+ timestamp = time.Now() |
|
350 |
+ } |
|
351 |
+ |
|
288 | 352 |
restartedInstance := restartedInstance{ |
289 |
- timestamp: time.Now(), |
|
353 |
+ timestamp: timestamp, |
|
290 | 354 |
} |
291 | 355 |
|
292 | 356 |
restartInfo.restartedInstances.PushBack(restartedInstance) |
... | ... |
@@ -323,7 +416,9 @@ func (r *Supervisor) DelayStart(ctx context.Context, _ store.Tx, oldTask *api.Ta |
323 | 323 |
var watch chan events.Event |
324 | 324 |
cancelWatch := func() {} |
325 | 325 |
|
326 |
- if waitStop && oldTask != nil { |
|
326 |
+ waitForTask := waitStop && oldTask != nil && oldTask.Status.State <= api.TaskStateRunning |
|
327 |
+ |
|
328 |
+ if waitForTask { |
|
327 | 329 |
// Wait for either the old task to complete, or the old task's |
328 | 330 |
// node to become unavailable. |
329 | 331 |
watch, cancelWatch = state.Watch( |
... | ... |
@@ -364,7 +459,7 @@ func (r *Supervisor) DelayStart(ctx context.Context, _ store.Tx, oldTask *api.Ta |
364 | 364 |
} |
365 | 365 |
} |
366 | 366 |
|
367 |
- if waitStop && oldTask != nil { |
|
367 |
+ if waitForTask { |
|
368 | 368 |
select { |
369 | 369 |
case <-watch: |
370 | 370 |
case <-oldTaskTimer.C: |
... | ... |
@@ -432,16 +527,6 @@ func (r *Supervisor) CancelAll() { |
432 | 432 |
// ClearServiceHistory forgets restart history related to a given service ID. |
433 | 433 |
func (r *Supervisor) ClearServiceHistory(serviceID string) { |
434 | 434 |
r.mu.Lock() |
435 |
- defer r.mu.Unlock() |
|
436 |
- |
|
437 |
- tuples := r.historyByService[serviceID] |
|
438 |
- if tuples == nil { |
|
439 |
- return |
|
440 |
- } |
|
441 |
- |
|
442 | 435 |
delete(r.historyByService, serviceID) |
443 |
- |
|
444 |
- for t := range tuples { |
|
445 |
- delete(r.history, t) |
|
446 |
- } |
|
436 |
+ r.mu.Unlock() |
|
447 | 437 |
} |
... | ... |
@@ -2,7 +2,6 @@ package orchestrator |
2 | 2 |
|
3 | 3 |
import ( |
4 | 4 |
"github.com/docker/swarmkit/api" |
5 |
- "github.com/docker/swarmkit/manager/state/store" |
|
6 | 5 |
) |
7 | 6 |
|
8 | 7 |
// Slot is a list of the running tasks occupying a certain slot. Generally this |
... | ... |
@@ -12,35 +11,11 @@ import ( |
12 | 12 |
// is also considered a slot for global services. |
13 | 13 |
type Slot []*api.Task |
14 | 14 |
|
15 |
-// GetRunnableAndDeadSlots returns two maps of slots. The first contains slots |
|
16 |
-// that have at least one task with a desired state above NEW and lesser or |
|
17 |
-// equal to RUNNING. The second is for slots that only contain tasks with a |
|
18 |
-// desired state above RUNNING. |
|
19 |
-func GetRunnableAndDeadSlots(s *store.MemoryStore, serviceID string) (map[uint64]Slot, map[uint64]Slot, error) { |
|
20 |
- var ( |
|
21 |
- tasks []*api.Task |
|
22 |
- err error |
|
23 |
- ) |
|
24 |
- s.View(func(tx store.ReadTx) { |
|
25 |
- tasks, err = store.FindTasks(tx, store.ByServiceID(serviceID)) |
|
26 |
- }) |
|
27 |
- if err != nil { |
|
28 |
- return nil, nil, err |
|
29 |
- } |
|
30 |
- |
|
31 |
- runningSlots := make(map[uint64]Slot) |
|
32 |
- for _, t := range tasks { |
|
33 |
- if t.DesiredState <= api.TaskStateRunning { |
|
34 |
- runningSlots[t.Slot] = append(runningSlots[t.Slot], t) |
|
35 |
- } |
|
36 |
- } |
|
37 |
- |
|
38 |
- deadSlots := make(map[uint64]Slot) |
|
39 |
- for _, t := range tasks { |
|
40 |
- if _, exists := runningSlots[t.Slot]; !exists { |
|
41 |
- deadSlots[t.Slot] = append(deadSlots[t.Slot], t) |
|
42 |
- } |
|
43 |
- } |
|
44 |
- |
|
45 |
- return runningSlots, deadSlots, nil |
|
15 |
+// SlotTuple identifies a unique slot, in the broad sense described above. It's |
|
16 |
+// a combination of either a service ID and a slot number (replicated services), |
|
17 |
+// or a service ID and a node ID (global services). |
|
18 |
+type SlotTuple struct { |
|
19 |
+ Slot uint64 // unset for global service tasks |
|
20 |
+ ServiceID string |
|
21 |
+ NodeID string // unset for replicated service tasks |
|
46 | 22 |
} |
... | ... |
@@ -67,7 +67,29 @@ func IsTaskDirty(s *api.Service, t *api.Task) bool { |
67 | 67 |
return false |
68 | 68 |
} |
69 | 69 |
|
70 |
- return !reflect.DeepEqual(s.Spec.Task, t.Spec) || |
|
70 |
+ // Make a deep copy of the service and task spec for the comparison. |
|
71 |
+ serviceTaskSpec := *s.Spec.Task.Copy() |
|
72 |
+ |
|
73 |
+ // For non-failed tasks with a container spec runtime that have already |
|
74 |
+ // pulled the required image (i.e., current state is between READY and |
|
75 |
+ // RUNNING inclusively), ignore the value of the `PullOptions` field by |
|
76 |
+ // setting the copied service to have the same PullOptions value as the |
|
77 |
+ // task. A difference in only the `PullOptions` field should not cause |
|
78 |
+ // a running (or ready to run) task to be considered 'dirty' when we |
|
79 |
+ // handle updates. |
|
80 |
+ // See https://github.com/docker/swarmkit/issues/971 |
|
81 |
+ currentState := t.Status.State |
|
82 |
+ // Ignore PullOpts if the task is desired to be in a "runnable" state |
|
83 |
+ // and its last known current state is between READY and RUNNING in |
|
84 |
+ // which case we know that the task either successfully pulled its |
|
85 |
+ // container image or didn't need to. |
|
86 |
+ ignorePullOpts := t.DesiredState <= api.TaskStateRunning && currentState >= api.TaskStateReady && currentState <= api.TaskStateRunning |
|
87 |
+ if ignorePullOpts && serviceTaskSpec.GetContainer() != nil && t.Spec.GetContainer() != nil { |
|
88 |
+ // Modify the service's container spec. |
|
89 |
+ serviceTaskSpec.GetContainer().PullOptions = t.Spec.GetContainer().PullOptions |
|
90 |
+ } |
|
91 |
+ |
|
92 |
+ return !reflect.DeepEqual(serviceTaskSpec, t.Spec) || |
|
71 | 93 |
(t.Endpoint != nil && !reflect.DeepEqual(s.Spec.Endpoint, t.Endpoint.Spec)) |
72 | 94 |
} |
73 | 95 |
|
... | ... |
@@ -77,3 +99,44 @@ func InvalidNode(n *api.Node) bool { |
77 | 77 |
n.Status.State == api.NodeStatus_DOWN || |
78 | 78 |
n.Spec.Availability == api.NodeAvailabilityDrain |
79 | 79 |
} |
80 |
+ |
|
81 |
+// TasksByTimestamp sorts tasks by applied timestamp if available, otherwise |
|
82 |
+// status timestamp. |
|
83 |
+type TasksByTimestamp []*api.Task |
|
84 |
+ |
|
85 |
+// Len implements the Len method for sorting. |
|
86 |
+func (t TasksByTimestamp) Len() int { |
|
87 |
+ return len(t) |
|
88 |
+} |
|
89 |
+ |
|
90 |
+// Swap implements the Swap method for sorting. |
|
91 |
+func (t TasksByTimestamp) Swap(i, j int) { |
|
92 |
+ t[i], t[j] = t[j], t[i] |
|
93 |
+} |
|
94 |
+ |
|
95 |
+// Less implements the Less method for sorting. |
|
96 |
+func (t TasksByTimestamp) Less(i, j int) bool { |
|
97 |
+ iTimestamp := t[i].Status.Timestamp |
|
98 |
+ if t[i].Status.AppliedAt != nil { |
|
99 |
+ iTimestamp = t[i].Status.AppliedAt |
|
100 |
+ } |
|
101 |
+ |
|
102 |
+ jTimestamp := t[j].Status.Timestamp |
|
103 |
+ if t[j].Status.AppliedAt != nil { |
|
104 |
+ iTimestamp = t[j].Status.AppliedAt |
|
105 |
+ } |
|
106 |
+ |
|
107 |
+ if iTimestamp == nil { |
|
108 |
+ return true |
|
109 |
+ } |
|
110 |
+ if jTimestamp == nil { |
|
111 |
+ return false |
|
112 |
+ } |
|
113 |
+ if iTimestamp.Seconds < jTimestamp.Seconds { |
|
114 |
+ return true |
|
115 |
+ } |
|
116 |
+ if iTimestamp.Seconds > jTimestamp.Seconds { |
|
117 |
+ return false |
|
118 |
+ } |
|
119 |
+ return iTimestamp.Nanos < jTimestamp.Nanos |
|
120 |
+} |
... | ... |
@@ -1,11 +1,13 @@ |
1 | 1 |
package taskinit |
2 | 2 |
|
3 | 3 |
import ( |
4 |
+ "sort" |
|
4 | 5 |
"time" |
5 | 6 |
|
6 | 7 |
"github.com/docker/swarmkit/api" |
7 | 8 |
"github.com/docker/swarmkit/api/defaults" |
8 | 9 |
"github.com/docker/swarmkit/log" |
10 |
+ "github.com/docker/swarmkit/manager/orchestrator" |
|
9 | 11 |
"github.com/docker/swarmkit/manager/orchestrator/restart" |
10 | 12 |
"github.com/docker/swarmkit/manager/state/store" |
11 | 13 |
gogotypes "github.com/gogo/protobuf/types" |
... | ... |
@@ -16,11 +18,13 @@ import ( |
16 | 16 |
type InitHandler interface { |
17 | 17 |
IsRelatedService(service *api.Service) bool |
18 | 18 |
FixTask(ctx context.Context, batch *store.Batch, t *api.Task) |
19 |
+ SlotTuple(t *api.Task) orchestrator.SlotTuple |
|
19 | 20 |
} |
20 | 21 |
|
21 | 22 |
// CheckTasks fixes tasks in the store before orchestrator runs. The previous leader might |
22 | 23 |
// not have finished processing their updates and left them in an inconsistent state. |
23 | 24 |
func CheckTasks(ctx context.Context, s *store.MemoryStore, readTx store.ReadTx, initHandler InitHandler, startSupervisor *restart.Supervisor) error { |
25 |
+ instances := make(map[orchestrator.SlotTuple][]*api.Task) |
|
24 | 26 |
err := s.Batch(func(batch *store.Batch) error { |
25 | 27 |
tasks, err := store.FindTasks(readTx, store.All) |
26 | 28 |
if err != nil { |
... | ... |
@@ -47,6 +51,9 @@ func CheckTasks(ctx context.Context, s *store.MemoryStore, readTx store.ReadTx, |
47 | 47 |
continue |
48 | 48 |
} |
49 | 49 |
|
50 |
+ tuple := initHandler.SlotTuple(t) |
|
51 |
+ instances[tuple] = append(instances[tuple], t) |
|
52 |
+ |
|
50 | 53 |
// handle task updates from agent which should have been triggered by task update events |
51 | 54 |
initHandler.FixTask(ctx, batch, t) |
52 | 55 |
|
... | ... |
@@ -65,7 +72,12 @@ func CheckTasks(ctx context.Context, s *store.MemoryStore, readTx store.ReadTx, |
65 | 65 |
} |
66 | 66 |
} |
67 | 67 |
if restartDelay != 0 { |
68 |
- timestamp, err := gogotypes.TimestampFromProto(t.Status.Timestamp) |
|
68 |
+ var timestamp time.Time |
|
69 |
+ if t.Status.AppliedAt != nil { |
|
70 |
+ timestamp, err = gogotypes.TimestampFromProto(t.Status.AppliedAt) |
|
71 |
+ } else { |
|
72 |
+ timestamp, err = gogotypes.TimestampFromProto(t.Status.Timestamp) |
|
73 |
+ } |
|
69 | 74 |
if err == nil { |
70 | 75 |
restartTime := timestamp.Add(restartDelay) |
71 | 76 |
calculatedRestartDelay := restartTime.Sub(time.Now()) |
... | ... |
@@ -99,5 +111,64 @@ func CheckTasks(ctx context.Context, s *store.MemoryStore, readTx store.ReadTx, |
99 | 99 |
} |
100 | 100 |
return nil |
101 | 101 |
}) |
102 |
- return err |
|
102 |
+ if err != nil { |
|
103 |
+ return err |
|
104 |
+ } |
|
105 |
+ |
|
106 |
+ for tuple, instance := range instances { |
|
107 |
+ // Find the most current spec version. That's the only one |
|
108 |
+ // we care about for the purpose of reconstructing restart |
|
109 |
+ // history. |
|
110 |
+ maxVersion := uint64(0) |
|
111 |
+ for _, t := range instance { |
|
112 |
+ if t.SpecVersion != nil && t.SpecVersion.Index > maxVersion { |
|
113 |
+ maxVersion = t.SpecVersion.Index |
|
114 |
+ } |
|
115 |
+ } |
|
116 |
+ |
|
117 |
+ // Create a new slice with just the current spec version tasks. |
|
118 |
+ var upToDate []*api.Task |
|
119 |
+ for _, t := range instance { |
|
120 |
+ if t.SpecVersion != nil && t.SpecVersion.Index == maxVersion { |
|
121 |
+ upToDate = append(upToDate, t) |
|
122 |
+ } |
|
123 |
+ } |
|
124 |
+ |
|
125 |
+ // Sort by creation timestamp |
|
126 |
+ sort.Sort(tasksByCreationTimestamp(upToDate)) |
|
127 |
+ |
|
128 |
+ // All up-to-date tasks in this instance except the first one |
|
129 |
+ // should be considered restarted. |
|
130 |
+ if len(upToDate) < 2 { |
|
131 |
+ continue |
|
132 |
+ } |
|
133 |
+ for _, t := range upToDate[1:] { |
|
134 |
+ startSupervisor.RecordRestartHistory(tuple, t) |
|
135 |
+ } |
|
136 |
+ } |
|
137 |
+ return nil |
|
138 |
+} |
|
139 |
+ |
|
140 |
+type tasksByCreationTimestamp []*api.Task |
|
141 |
+ |
|
142 |
+func (t tasksByCreationTimestamp) Len() int { |
|
143 |
+ return len(t) |
|
144 |
+} |
|
145 |
+func (t tasksByCreationTimestamp) Swap(i, j int) { |
|
146 |
+ t[i], t[j] = t[j], t[i] |
|
147 |
+} |
|
148 |
+func (t tasksByCreationTimestamp) Less(i, j int) bool { |
|
149 |
+ if t[i].Meta.CreatedAt == nil { |
|
150 |
+ return true |
|
151 |
+ } |
|
152 |
+ if t[j].Meta.CreatedAt == nil { |
|
153 |
+ return false |
|
154 |
+ } |
|
155 |
+ if t[i].Meta.CreatedAt.Seconds < t[j].Meta.CreatedAt.Seconds { |
|
156 |
+ return true |
|
157 |
+ } |
|
158 |
+ if t[i].Meta.CreatedAt.Seconds > t[j].Meta.CreatedAt.Seconds { |
|
159 |
+ return false |
|
160 |
+ } |
|
161 |
+ return t[i].Meta.CreatedAt.Nanos < t[j].Meta.CreatedAt.Nanos |
|
103 | 162 |
} |
... | ... |
@@ -6,6 +6,7 @@ import ( |
6 | 6 |
|
7 | 7 |
"github.com/docker/swarmkit/api" |
8 | 8 |
"github.com/docker/swarmkit/log" |
9 |
+ "github.com/docker/swarmkit/manager/orchestrator" |
|
9 | 10 |
"github.com/docker/swarmkit/manager/state" |
10 | 11 |
"github.com/docker/swarmkit/manager/state/store" |
11 | 12 |
"golang.org/x/net/context" |
... | ... |
@@ -18,19 +19,13 @@ const ( |
18 | 18 |
reaperBatchingInterval = 250 * time.Millisecond |
19 | 19 |
) |
20 | 20 |
|
21 |
-type instanceTuple struct { |
|
22 |
- instance uint64 // unset for global tasks |
|
23 |
- serviceID string |
|
24 |
- nodeID string // unset for replicated tasks |
|
25 |
-} |
|
26 |
- |
|
27 | 21 |
// A TaskReaper deletes old tasks when more than TaskHistoryRetentionLimit tasks |
28 | 22 |
// exist for the same service/instance or service/nodeid combination. |
29 | 23 |
type TaskReaper struct { |
30 | 24 |
store *store.MemoryStore |
31 | 25 |
// taskHistory is the number of tasks to keep |
32 | 26 |
taskHistory int64 |
33 |
- dirty map[instanceTuple]struct{} |
|
27 |
+ dirty map[orchestrator.SlotTuple]struct{} |
|
34 | 28 |
orphaned []string |
35 | 29 |
stopChan chan struct{} |
36 | 30 |
doneChan chan struct{} |
... | ... |
@@ -40,7 +35,7 @@ type TaskReaper struct { |
40 | 40 |
func New(store *store.MemoryStore) *TaskReaper { |
41 | 41 |
return &TaskReaper{ |
42 | 42 |
store: store, |
43 |
- dirty: make(map[instanceTuple]struct{}), |
|
43 |
+ dirty: make(map[orchestrator.SlotTuple]struct{}), |
|
44 | 44 |
stopChan: make(chan struct{}), |
45 | 45 |
doneChan: make(chan struct{}), |
46 | 46 |
} |
... | ... |
@@ -93,10 +88,10 @@ func (tr *TaskReaper) Run(ctx context.Context) { |
93 | 93 |
switch v := event.(type) { |
94 | 94 |
case api.EventCreateTask: |
95 | 95 |
t := v.Task |
96 |
- tr.dirty[instanceTuple{ |
|
97 |
- instance: t.Slot, |
|
98 |
- serviceID: t.ServiceID, |
|
99 |
- nodeID: t.NodeID, |
|
96 |
+ tr.dirty[orchestrator.SlotTuple{ |
|
97 |
+ Slot: t.Slot, |
|
98 |
+ ServiceID: t.ServiceID, |
|
99 |
+ NodeID: t.NodeID, |
|
100 | 100 |
}] = struct{}{} |
101 | 101 |
case api.EventUpdateTask: |
102 | 102 |
t := v.Task |
... | ... |
@@ -138,13 +133,29 @@ func (tr *TaskReaper) tick() { |
138 | 138 |
} |
139 | 139 |
tr.store.View(func(tx store.ReadTx) { |
140 | 140 |
for dirty := range tr.dirty { |
141 |
- service := store.GetService(tx, dirty.serviceID) |
|
141 |
+ service := store.GetService(tx, dirty.ServiceID) |
|
142 | 142 |
if service == nil { |
143 | 143 |
continue |
144 | 144 |
} |
145 | 145 |
|
146 | 146 |
taskHistory := tr.taskHistory |
147 | 147 |
|
148 |
+ // If MaxAttempts is set, keep at least one more than |
|
149 |
+ // that number of tasks. This is necessary reconstruct |
|
150 |
+ // restart history when the orchestrator starts up. |
|
151 |
+ // TODO(aaronl): Consider hiding tasks beyond the normal |
|
152 |
+ // retention limit in the UI. |
|
153 |
+ // TODO(aaronl): There are some ways to cut down the |
|
154 |
+ // number of retained tasks at the cost of more |
|
155 |
+ // complexity: |
|
156 |
+ // - Don't force retention of tasks with an older spec |
|
157 |
+ // version. |
|
158 |
+ // - Don't force retention of tasks outside of the |
|
159 |
+ // time window configured for restart lookback. |
|
160 |
+ if service.Spec.Task.Restart != nil && service.Spec.Task.Restart.MaxAttempts > 0 { |
|
161 |
+ taskHistory = int64(service.Spec.Task.Restart.MaxAttempts) + 1 |
|
162 |
+ } |
|
163 |
+ |
|
148 | 164 |
if taskHistory < 0 { |
149 | 165 |
continue |
150 | 166 |
} |
... | ... |
@@ -154,19 +165,19 @@ func (tr *TaskReaper) tick() { |
154 | 154 |
switch service.Spec.GetMode().(type) { |
155 | 155 |
case *api.ServiceSpec_Replicated: |
156 | 156 |
var err error |
157 |
- historicTasks, err = store.FindTasks(tx, store.BySlot(dirty.serviceID, dirty.instance)) |
|
157 |
+ historicTasks, err = store.FindTasks(tx, store.BySlot(dirty.ServiceID, dirty.Slot)) |
|
158 | 158 |
if err != nil { |
159 | 159 |
continue |
160 | 160 |
} |
161 | 161 |
|
162 | 162 |
case *api.ServiceSpec_Global: |
163 |
- tasksByNode, err := store.FindTasks(tx, store.ByNodeID(dirty.nodeID)) |
|
163 |
+ tasksByNode, err := store.FindTasks(tx, store.ByNodeID(dirty.NodeID)) |
|
164 | 164 |
if err != nil { |
165 | 165 |
continue |
166 | 166 |
} |
167 | 167 |
|
168 | 168 |
for _, t := range tasksByNode { |
169 |
- if t.ServiceID == dirty.serviceID { |
|
169 |
+ if t.ServiceID == dirty.ServiceID { |
|
170 | 170 |
historicTasks = append(historicTasks, t) |
171 | 171 |
} |
172 | 172 |
} |
... | ... |
@@ -178,7 +189,9 @@ func (tr *TaskReaper) tick() { |
178 | 178 |
|
179 | 179 |
// TODO(aaronl): This could filter for non-running tasks and use quickselect |
180 | 180 |
// instead of sorting the whole slice. |
181 |
- sort.Sort(tasksByTimestamp(historicTasks)) |
|
181 |
+ // TODO(aaronl): This sort should really use lamport time instead of wall |
|
182 |
+ // clock time. We should store a Version in the Status field. |
|
183 |
+ sort.Sort(orchestrator.TasksByTimestamp(historicTasks)) |
|
182 | 184 |
|
183 | 185 |
runningTasks := 0 |
184 | 186 |
for _, t := range historicTasks { |
... | ... |
@@ -219,27 +232,3 @@ func (tr *TaskReaper) Stop() { |
219 | 219 |
close(tr.stopChan) |
220 | 220 |
<-tr.doneChan |
221 | 221 |
} |
222 |
- |
|
223 |
-type tasksByTimestamp []*api.Task |
|
224 |
- |
|
225 |
-func (t tasksByTimestamp) Len() int { |
|
226 |
- return len(t) |
|
227 |
-} |
|
228 |
-func (t tasksByTimestamp) Swap(i, j int) { |
|
229 |
- t[i], t[j] = t[j], t[i] |
|
230 |
-} |
|
231 |
-func (t tasksByTimestamp) Less(i, j int) bool { |
|
232 |
- if t[i].Status.Timestamp == nil { |
|
233 |
- return true |
|
234 |
- } |
|
235 |
- if t[j].Status.Timestamp == nil { |
|
236 |
- return false |
|
237 |
- } |
|
238 |
- if t[i].Status.Timestamp.Seconds < t[j].Status.Timestamp.Seconds { |
|
239 |
- return true |
|
240 |
- } |
|
241 |
- if t[i].Status.Timestamp.Seconds > t[j].Status.Timestamp.Seconds { |
|
242 |
- return false |
|
243 |
- } |
|
244 |
- return t[i].Status.Timestamp.Nanos < t[j].Status.Timestamp.Nanos |
|
245 |
-} |
... | ... |
@@ -430,7 +430,7 @@ func (u *Updater) updateTask(ctx context.Context, slot orchestrator.Slot, update |
430 | 430 |
u.updatedTasks[updated.ID] = time.Now() |
431 | 431 |
u.updatedTasksMu.Unlock() |
432 | 432 |
|
433 |
- if startThenStop { |
|
433 |
+ if startThenStop && updated.Status.State == api.TaskStateRunning { |
|
434 | 434 |
err := u.store.Batch(func(batch *store.Batch) error { |
435 | 435 |
_, err := u.removeOldTasks(ctx, batch, slot) |
436 | 436 |
if err != nil { |
... | ... |
@@ -496,6 +496,9 @@ func (u *Updater) removeOldTasks(ctx context.Context, batch *store.Batch, remove |
496 | 496 |
removedTask *api.Task |
497 | 497 |
) |
498 | 498 |
for _, original := range removeTasks { |
499 |
+ if original.DesiredState > api.TaskStateRunning { |
|
500 |
+ continue |
|
501 |
+ } |
|
499 | 502 |
err := batch.Update(func(tx store.Tx) error { |
500 | 503 |
t := store.GetTask(tx, original.ID) |
501 | 504 |
if t == nil { |
... | ... |
@@ -583,9 +586,8 @@ func (u *Updater) pauseUpdate(ctx context.Context, serviceID, message string) { |
583 | 583 |
func (u *Updater) rollbackUpdate(ctx context.Context, serviceID, message string) { |
584 | 584 |
log.G(ctx).Debugf("starting rollback of service %s", serviceID) |
585 | 585 |
|
586 |
- var service *api.Service |
|
587 | 586 |
err := u.store.Update(func(tx store.Tx) error { |
588 |
- service = store.GetService(tx, serviceID) |
|
587 |
+ service := store.GetService(tx, serviceID) |
|
589 | 588 |
if service == nil { |
590 | 589 |
return nil |
591 | 590 |
} |
... | ... |
@@ -601,7 +603,9 @@ func (u *Updater) rollbackUpdate(ctx context.Context, serviceID, message string) |
601 | 601 |
return errors.New("cannot roll back service because no previous spec is available") |
602 | 602 |
} |
603 | 603 |
service.Spec = *service.PreviousSpec |
604 |
+ service.SpecVersion = service.PreviousSpecVersion.Copy() |
|
604 | 605 |
service.PreviousSpec = nil |
606 |
+ service.PreviousSpecVersion = nil |
|
605 | 607 |
|
606 | 608 |
return store.UpdateService(tx, service) |
607 | 609 |
}) |
... | ... |
@@ -166,6 +166,8 @@ type NodeOptions struct { |
166 | 166 |
// JoinAddr is the cluster to join. May be an empty string to create |
167 | 167 |
// a standalone cluster. |
168 | 168 |
JoinAddr string |
169 |
+ // ForceJoin tells us to join even if already part of a cluster. |
|
170 |
+ ForceJoin bool |
|
169 | 171 |
// Config is the raft config. |
170 | 172 |
Config *raft.Config |
171 | 173 |
// StateDir is the directory to store durable state. |
... | ... |
@@ -393,8 +395,10 @@ func (n *Node) JoinAndStart(ctx context.Context) (err error) { |
393 | 393 |
|
394 | 394 |
// restore from snapshot |
395 | 395 |
if loadAndStartErr == nil { |
396 |
- if n.opts.JoinAddr != "" { |
|
397 |
- log.G(ctx).Warning("ignoring request to join cluster, because raft state already exists") |
|
396 |
+ if n.opts.JoinAddr != "" && n.opts.ForceJoin { |
|
397 |
+ if err := n.joinCluster(ctx); err != nil { |
|
398 |
+ return errors.Wrap(err, "failed to rejoin cluster") |
|
399 |
+ } |
|
398 | 400 |
} |
399 | 401 |
n.campaignWhenAble = true |
400 | 402 |
n.initTransport() |
... | ... |
@@ -402,7 +406,6 @@ func (n *Node) JoinAndStart(ctx context.Context) (err error) { |
402 | 402 |
return nil |
403 | 403 |
} |
404 | 404 |
|
405 |
- // first member of cluster |
|
406 | 405 |
if n.opts.JoinAddr == "" { |
407 | 406 |
// First member in the cluster, self-assign ID |
408 | 407 |
n.Config.ID = uint64(rand.Int63()) + 1 |
... | ... |
@@ -417,6 +420,22 @@ func (n *Node) JoinAndStart(ctx context.Context) (err error) { |
417 | 417 |
} |
418 | 418 |
|
419 | 419 |
// join to existing cluster |
420 |
+ |
|
421 |
+ if err := n.joinCluster(ctx); err != nil { |
|
422 |
+ return err |
|
423 |
+ } |
|
424 |
+ |
|
425 |
+ if _, err := n.newRaftLogs(n.opts.ID); err != nil { |
|
426 |
+ return err |
|
427 |
+ } |
|
428 |
+ |
|
429 |
+ n.initTransport() |
|
430 |
+ n.raftNode = raft.StartNode(n.Config, nil) |
|
431 |
+ |
|
432 |
+ return nil |
|
433 |
+} |
|
434 |
+ |
|
435 |
+func (n *Node) joinCluster(ctx context.Context) error { |
|
420 | 436 |
if n.opts.Addr == "" { |
421 | 437 |
return errors.New("attempted to join raft cluster without knowing own address") |
422 | 438 |
} |
... | ... |
@@ -438,15 +457,7 @@ func (n *Node) JoinAndStart(ctx context.Context) (err error) { |
438 | 438 |
} |
439 | 439 |
|
440 | 440 |
n.Config.ID = resp.RaftID |
441 |
- |
|
442 |
- if _, err := n.newRaftLogs(n.opts.ID); err != nil { |
|
443 |
- return err |
|
444 |
- } |
|
445 | 441 |
n.bootstrapMembers = resp.Members |
446 |
- |
|
447 |
- n.initTransport() |
|
448 |
- n.raftNode = raft.StartNode(n.Config, nil) |
|
449 |
- |
|
450 | 442 |
return nil |
451 | 443 |
} |
452 | 444 |
|
... | ... |
@@ -909,24 +920,6 @@ func (n *Node) Join(ctx context.Context, req *api.JoinRequest) (*api.JoinRespons |
909 | 909 |
return nil, grpc.Errorf(codes.FailedPrecondition, "%s", ErrLostLeadership.Error()) |
910 | 910 |
} |
911 | 911 |
|
912 |
- // A single manager must not be able to join the raft cluster twice. If |
|
913 |
- // it did, that would cause the quorum to be computed incorrectly. This |
|
914 |
- // could happen if the WAL was deleted from an active manager. |
|
915 |
- for _, m := range n.cluster.Members() { |
|
916 |
- if m.NodeID == nodeInfo.NodeID { |
|
917 |
- return nil, grpc.Errorf(codes.AlreadyExists, "%s", "a raft member with this node ID already exists") |
|
918 |
- } |
|
919 |
- } |
|
920 |
- |
|
921 |
- // Find a unique ID for the joining member. |
|
922 |
- var raftID uint64 |
|
923 |
- for { |
|
924 |
- raftID = uint64(rand.Int63()) + 1 |
|
925 |
- if n.cluster.GetMember(raftID) == nil && !n.cluster.IsIDRemoved(raftID) { |
|
926 |
- break |
|
927 |
- } |
|
928 |
- } |
|
929 |
- |
|
930 | 912 |
remoteAddr := req.Addr |
931 | 913 |
|
932 | 914 |
// If the joining node sent an address like 0.0.0.0:4242, automatically |
... | ... |
@@ -953,12 +946,54 @@ func (n *Node) Join(ctx context.Context, req *api.JoinRequest) (*api.JoinRespons |
953 | 953 |
return nil, err |
954 | 954 |
} |
955 | 955 |
|
956 |
+ // If the peer is already a member of the cluster, we will only update |
|
957 |
+ // its information, not add it as a new member. Adding it again would |
|
958 |
+ // cause the quorum to be computed incorrectly. |
|
959 |
+ for _, m := range n.cluster.Members() { |
|
960 |
+ if m.NodeID == nodeInfo.NodeID { |
|
961 |
+ if remoteAddr == m.Addr { |
|
962 |
+ return n.joinResponse(m.RaftID), nil |
|
963 |
+ } |
|
964 |
+ updatedRaftMember := &api.RaftMember{ |
|
965 |
+ RaftID: m.RaftID, |
|
966 |
+ NodeID: m.NodeID, |
|
967 |
+ Addr: remoteAddr, |
|
968 |
+ } |
|
969 |
+ if err := n.cluster.UpdateMember(m.RaftID, updatedRaftMember); err != nil { |
|
970 |
+ return nil, err |
|
971 |
+ } |
|
972 |
+ |
|
973 |
+ if err := n.updateNodeBlocking(ctx, m.RaftID, remoteAddr); err != nil { |
|
974 |
+ log.WithError(err).Error("failed to update node address") |
|
975 |
+ return nil, err |
|
976 |
+ } |
|
977 |
+ |
|
978 |
+ log.Info("updated node address") |
|
979 |
+ return n.joinResponse(m.RaftID), nil |
|
980 |
+ } |
|
981 |
+ } |
|
982 |
+ |
|
983 |
+ // Find a unique ID for the joining member. |
|
984 |
+ var raftID uint64 |
|
985 |
+ for { |
|
986 |
+ raftID = uint64(rand.Int63()) + 1 |
|
987 |
+ if n.cluster.GetMember(raftID) == nil && !n.cluster.IsIDRemoved(raftID) { |
|
988 |
+ break |
|
989 |
+ } |
|
990 |
+ } |
|
991 |
+ |
|
956 | 992 |
err = n.addMember(ctx, remoteAddr, raftID, nodeInfo.NodeID) |
957 | 993 |
if err != nil { |
958 | 994 |
log.WithError(err).Errorf("failed to add member %x", raftID) |
959 | 995 |
return nil, err |
960 | 996 |
} |
961 | 997 |
|
998 |
+ log.Debug("node joined") |
|
999 |
+ |
|
1000 |
+ return n.joinResponse(raftID), nil |
|
1001 |
+} |
|
1002 |
+ |
|
1003 |
+func (n *Node) joinResponse(raftID uint64) *api.JoinResponse { |
|
962 | 1004 |
var nodes []*api.RaftMember |
963 | 1005 |
for _, node := range n.cluster.Members() { |
964 | 1006 |
nodes = append(nodes, &api.RaftMember{ |
... | ... |
@@ -967,9 +1002,8 @@ func (n *Node) Join(ctx context.Context, req *api.JoinRequest) (*api.JoinRespons |
967 | 967 |
Addr: node.Addr, |
968 | 968 |
}) |
969 | 969 |
} |
970 |
- log.Debugf("node joined") |
|
971 | 970 |
|
972 |
- return &api.JoinResponse{Members: nodes, RaftID: raftID}, nil |
|
971 |
+ return &api.JoinResponse{Members: nodes, RaftID: raftID} |
|
973 | 972 |
} |
974 | 973 |
|
975 | 974 |
// checkHealth tries to contact an aspiring member through its advertised address |
... | ... |
@@ -1,12 +1,24 @@ |
1 | 1 |
package watchapi |
2 | 2 |
|
3 | 3 |
import ( |
4 |
+ "errors" |
|
5 |
+ "sync" |
|
6 |
+ |
|
4 | 7 |
"github.com/docker/swarmkit/manager/state/store" |
8 |
+ "golang.org/x/net/context" |
|
9 |
+) |
|
10 |
+ |
|
11 |
+var ( |
|
12 |
+ errAlreadyRunning = errors.New("broker is already running") |
|
13 |
+ errNotRunning = errors.New("broker is not running") |
|
5 | 14 |
) |
6 | 15 |
|
7 | 16 |
// Server is the store API gRPC server. |
8 | 17 |
type Server struct { |
9 |
- store *store.MemoryStore |
|
18 |
+ store *store.MemoryStore |
|
19 |
+ mu sync.Mutex |
|
20 |
+ pctx context.Context |
|
21 |
+ cancelAll func() |
|
10 | 22 |
} |
11 | 23 |
|
12 | 24 |
// NewServer creates a store API server. |
... | ... |
@@ -15,3 +27,30 @@ func NewServer(store *store.MemoryStore) *Server { |
15 | 15 |
store: store, |
16 | 16 |
} |
17 | 17 |
} |
18 |
+ |
|
19 |
+// Start starts the watch server. |
|
20 |
+func (s *Server) Start(ctx context.Context) error { |
|
21 |
+ s.mu.Lock() |
|
22 |
+ defer s.mu.Unlock() |
|
23 |
+ |
|
24 |
+ if s.cancelAll != nil { |
|
25 |
+ return errAlreadyRunning |
|
26 |
+ } |
|
27 |
+ |
|
28 |
+ s.pctx, s.cancelAll = context.WithCancel(ctx) |
|
29 |
+ return nil |
|
30 |
+} |
|
31 |
+ |
|
32 |
+// Stop stops the watch server. |
|
33 |
+func (s *Server) Stop() error { |
|
34 |
+ s.mu.Lock() |
|
35 |
+ defer s.mu.Unlock() |
|
36 |
+ |
|
37 |
+ if s.cancelAll == nil { |
|
38 |
+ return errNotRunning |
|
39 |
+ } |
|
40 |
+ s.cancelAll() |
|
41 |
+ s.cancelAll = nil |
|
42 |
+ |
|
43 |
+ return nil |
|
44 |
+} |
... | ... |
@@ -17,6 +17,13 @@ import ( |
17 | 17 |
func (s *Server) Watch(request *api.WatchRequest, stream api.Watch_WatchServer) error { |
18 | 18 |
ctx := stream.Context() |
19 | 19 |
|
20 |
+ s.mu.Lock() |
|
21 |
+ pctx := s.pctx |
|
22 |
+ s.mu.Unlock() |
|
23 |
+ if pctx == nil { |
|
24 |
+ return errNotRunning |
|
25 |
+ } |
|
26 |
+ |
|
20 | 27 |
watchArgs, err := api.ConvertWatchArgs(request.Entries) |
21 | 28 |
if err != nil { |
22 | 29 |
return grpc.Errorf(codes.InvalidArgument, "%s", err.Error()) |
... | ... |
@@ -39,6 +46,8 @@ func (s *Server) Watch(request *api.WatchRequest, stream api.Watch_WatchServer) |
39 | 39 |
select { |
40 | 40 |
case <-ctx.Done(): |
41 | 41 |
return ctx.Err() |
42 |
+ case <-pctx.Done(): |
|
43 |
+ return pctx.Err() |
|
42 | 44 |
case event := <-watch: |
43 | 45 |
if commitEvent, ok := event.(state.EventCommit); ok && len(events) > 0 { |
44 | 46 |
if err := stream.Send(&api.WatchMessage{Events: events, Version: commitEvent.Version}); err != nil { |
... | ... |
@@ -308,8 +308,6 @@ func (n *Node) run(ctx context.Context) (err error) { |
308 | 308 |
case <-agentDone: |
309 | 309 |
return |
310 | 310 |
case nodeChanges := <-n.notifyNodeChange: |
311 |
- currentRole := n.currentRole() |
|
312 |
- |
|
313 | 311 |
if nodeChanges.Node != nil { |
314 | 312 |
// This is a bit complex to be backward compatible with older CAs that |
315 | 313 |
// don't support the Node.Role field. They only use what's presently |
... | ... |
@@ -335,10 +333,7 @@ func (n *Node) run(ctx context.Context) (err error) { |
335 | 335 |
} |
336 | 336 |
|
337 | 337 |
if nodeChanges.RootCert != nil { |
338 |
- // We only want to update the root CA if this is a worker node. Manager nodes directly watch the raft |
|
339 |
- // store and update the root CA, with the necessary signer, from the raft store (since the managers |
|
340 |
- // need the CA key as well to potentially issue new TLS certificates). |
|
341 |
- if currentRole == api.NodeRoleManager || bytes.Equal(nodeChanges.RootCert, securityConfig.RootCA().Certs) { |
|
338 |
+ if bytes.Equal(nodeChanges.RootCert, securityConfig.RootCA().Certs) { |
|
342 | 339 |
continue |
343 | 340 |
} |
344 | 341 |
newRootCA, err := ca.NewRootCA(nodeChanges.RootCert, nil, nil, ca.DefaultNodeCertExpiration, nil) |
... | ... |
@@ -346,7 +341,7 @@ func (n *Node) run(ctx context.Context) (err error) { |
346 | 346 |
log.G(ctx).WithError(err).Error("invalid new root certificate from the dispatcher") |
347 | 347 |
continue |
348 | 348 |
} |
349 |
- if err := securityConfig.UpdateRootCA(&newRootCA, newRootCA.Pool); err != nil { |
|
349 |
+ if err := securityConfig.UpdateRootCA(&newRootCA); err != nil { |
|
350 | 350 |
log.G(ctx).WithError(err).Error("could not use new root CA from dispatcher") |
351 | 351 |
continue |
352 | 352 |
} |
... | ... |
@@ -828,14 +823,22 @@ func (n *Node) runManager(ctx context.Context, securityConfig *ca.SecurityConfig |
828 | 828 |
} |
829 | 829 |
} |
830 | 830 |
|
831 |
- remoteAddr, _ := n.remotes.Select(n.NodeID()) |
|
831 |
+ joinAddr := n.config.JoinAddr |
|
832 |
+ if joinAddr == "" { |
|
833 |
+ remoteAddr, err := n.remotes.Select(n.NodeID()) |
|
834 |
+ if err == nil { |
|
835 |
+ joinAddr = remoteAddr.Addr |
|
836 |
+ } |
|
837 |
+ } |
|
838 |
+ |
|
832 | 839 |
m, err := manager.New(&manager.Config{ |
833 | 840 |
ForceNewCluster: n.config.ForceNewCluster, |
834 | 841 |
RemoteAPI: remoteAPI, |
835 | 842 |
ControlAPI: n.config.ListenControlAPI, |
836 | 843 |
SecurityConfig: securityConfig, |
837 | 844 |
ExternalCAs: n.config.ExternalCAs, |
838 |
- JoinRaft: remoteAddr.Addr, |
|
845 |
+ JoinRaft: joinAddr, |
|
846 |
+ ForceJoin: n.config.JoinAddr != "", |
|
839 | 847 |
StateDir: n.config.StateDir, |
840 | 848 |
HeartbeatTick: n.config.HeartbeatTick, |
841 | 849 |
ElectionTick: n.config.ElectionTick, |
... | ... |
@@ -1,12 +1,12 @@ |
1 | 1 |
// Code generated by protoc-gen-gogo. |
2 |
-// source: plugin.proto |
|
2 |
+// source: github.com/docker/swarmkit/protobuf/plugin/plugin.proto |
|
3 | 3 |
// DO NOT EDIT! |
4 | 4 |
|
5 | 5 |
/* |
6 | 6 |
Package plugin is a generated protocol buffer package. |
7 | 7 |
|
8 | 8 |
It is generated from these files: |
9 |
- plugin.proto |
|
9 |
+ github.com/docker/swarmkit/protobuf/plugin/plugin.proto |
|
10 | 10 |
|
11 | 11 |
It has these top-level messages: |
12 | 12 |
WatchSelectors |
... | ... |
@@ -20,6 +20,8 @@ import fmt "fmt" |
20 | 20 |
import math "math" |
21 | 21 |
import google_protobuf "github.com/gogo/protobuf/protoc-gen-gogo/descriptor" |
22 | 22 |
|
23 |
+import github_com_docker_swarmkit_api_deepcopy "github.com/docker/swarmkit/api/deepcopy" |
|
24 |
+ |
|
23 | 25 |
import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto" |
24 | 26 |
|
25 | 27 |
import strings "strings" |
... | ... |
@@ -92,7 +94,7 @@ var E_Deepcopy = &proto.ExtensionDesc{ |
92 | 92 |
Field: 70000, |
93 | 93 |
Name: "docker.protobuf.plugin.deepcopy", |
94 | 94 |
Tag: "varint,70000,opt,name=deepcopy,def=1", |
95 |
- Filename: "plugin.proto", |
|
95 |
+ Filename: "github.com/docker/swarmkit/protobuf/plugin/plugin.proto", |
|
96 | 96 |
} |
97 | 97 |
|
98 | 98 |
var E_StoreObject = &proto.ExtensionDesc{ |
... | ... |
@@ -101,7 +103,7 @@ var E_StoreObject = &proto.ExtensionDesc{ |
101 | 101 |
Field: 70001, |
102 | 102 |
Name: "docker.protobuf.plugin.store_object", |
103 | 103 |
Tag: "bytes,70001,opt,name=store_object,json=storeObject", |
104 |
- Filename: "plugin.proto", |
|
104 |
+ Filename: "github.com/docker/swarmkit/protobuf/plugin/plugin.proto", |
|
105 | 105 |
} |
106 | 106 |
|
107 | 107 |
var E_TlsAuthorization = &proto.ExtensionDesc{ |
... | ... |
@@ -110,7 +112,7 @@ var E_TlsAuthorization = &proto.ExtensionDesc{ |
110 | 110 |
Field: 73626345, |
111 | 111 |
Name: "docker.protobuf.plugin.tls_authorization", |
112 | 112 |
Tag: "bytes,73626345,opt,name=tls_authorization,json=tlsAuthorization", |
113 |
- Filename: "plugin.proto", |
|
113 |
+ Filename: "github.com/docker/swarmkit/protobuf/plugin/plugin.proto", |
|
114 | 114 |
} |
115 | 115 |
|
116 | 116 |
func init() { |
... | ... |
@@ -121,6 +123,61 @@ func init() { |
121 | 121 |
proto.RegisterExtension(E_StoreObject) |
122 | 122 |
proto.RegisterExtension(E_TlsAuthorization) |
123 | 123 |
} |
124 |
+ |
|
125 |
+func (m *WatchSelectors) Copy() *WatchSelectors { |
|
126 |
+ if m == nil { |
|
127 |
+ return nil |
|
128 |
+ } |
|
129 |
+ o := &WatchSelectors{} |
|
130 |
+ o.CopyFrom(m) |
|
131 |
+ return o |
|
132 |
+} |
|
133 |
+ |
|
134 |
+func (m *WatchSelectors) CopyFrom(src interface{}) { |
|
135 |
+ |
|
136 |
+ o := src.(*WatchSelectors) |
|
137 |
+ *m = *o |
|
138 |
+} |
|
139 |
+ |
|
140 |
+func (m *StoreObject) Copy() *StoreObject { |
|
141 |
+ if m == nil { |
|
142 |
+ return nil |
|
143 |
+ } |
|
144 |
+ o := &StoreObject{} |
|
145 |
+ o.CopyFrom(m) |
|
146 |
+ return o |
|
147 |
+} |
|
148 |
+ |
|
149 |
+func (m *StoreObject) CopyFrom(src interface{}) { |
|
150 |
+ |
|
151 |
+ o := src.(*StoreObject) |
|
152 |
+ *m = *o |
|
153 |
+ if o.WatchSelectors != nil { |
|
154 |
+ m.WatchSelectors = &WatchSelectors{} |
|
155 |
+ github_com_docker_swarmkit_api_deepcopy.Copy(m.WatchSelectors, o.WatchSelectors) |
|
156 |
+ } |
|
157 |
+} |
|
158 |
+ |
|
159 |
+func (m *TLSAuthorization) Copy() *TLSAuthorization { |
|
160 |
+ if m == nil { |
|
161 |
+ return nil |
|
162 |
+ } |
|
163 |
+ o := &TLSAuthorization{} |
|
164 |
+ o.CopyFrom(m) |
|
165 |
+ return o |
|
166 |
+} |
|
167 |
+ |
|
168 |
+func (m *TLSAuthorization) CopyFrom(src interface{}) { |
|
169 |
+ |
|
170 |
+ o := src.(*TLSAuthorization) |
|
171 |
+ *m = *o |
|
172 |
+ if o.Roles != nil { |
|
173 |
+ m.Roles = make([]string, len(o.Roles)) |
|
174 |
+ copy(m.Roles, o.Roles) |
|
175 |
+ } |
|
176 |
+ |
|
177 |
+} |
|
178 |
+ |
|
124 | 179 |
func (m *WatchSelectors) Marshal() (dAtA []byte, err error) { |
125 | 180 |
size := m.Size() |
126 | 181 |
dAtA = make([]byte, size) |
... | ... |
@@ -378,6 +435,7 @@ func encodeVarintPlugin(dAtA []byte, offset int, v uint64) int { |
378 | 378 |
dAtA[offset] = uint8(v) |
379 | 379 |
return offset + 1 |
380 | 380 |
} |
381 |
+ |
|
381 | 382 |
func (m *WatchSelectors) Size() (n int) { |
382 | 383 |
var l int |
383 | 384 |
_ = l |
... | ... |
@@ -1143,43 +1201,46 @@ var ( |
1143 | 1143 |
ErrIntOverflowPlugin = fmt.Errorf("proto: integer overflow") |
1144 | 1144 |
) |
1145 | 1145 |
|
1146 |
-func init() { proto.RegisterFile("plugin.proto", fileDescriptorPlugin) } |
|
1146 |
+func init() { |
|
1147 |
+ proto.RegisterFile("github.com/docker/swarmkit/protobuf/plugin/plugin.proto", fileDescriptorPlugin) |
|
1148 |
+} |
|
1147 | 1149 |
|
1148 | 1150 |
var fileDescriptorPlugin = []byte{ |
1149 |
- // 551 bytes of a gzipped FileDescriptorProto |
|
1150 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xc1, 0x6e, 0xd3, 0x40, |
|
1151 |
- 0x10, 0xad, 0xd3, 0x36, 0x4d, 0xc6, 0x69, 0x29, 0x2b, 0x54, 0xad, 0x7a, 0xb0, 0xab, 0x46, 0x42, |
|
1152 |
- 0x41, 0x42, 0xa9, 0xd4, 0x63, 0x6e, 0x94, 0x5c, 0x22, 0x01, 0x45, 0x0e, 0x12, 0x37, 0x2c, 0xd7, |
|
1153 |
- 0x3b, 0x4d, 0x96, 0x3a, 0x5e, 0x6b, 0x77, 0x4d, 0x0b, 0x27, 0x7e, 0x80, 0x0f, 0xe0, 0xca, 0xd7, |
|
1154 |
- 0xf4, 0xc8, 0x91, 0x53, 0x44, 0x2d, 0x71, 0xe0, 0x06, 0x7f, 0x80, 0x76, 0xd7, 0x69, 0x09, 0x6a, |
|
1155 |
- 0xc5, 0xc9, 0x33, 0x6f, 0xe6, 0xcd, 0xcc, 0xdb, 0x67, 0xe8, 0x14, 0x59, 0x39, 0xe1, 0x79, 0xbf, |
|
1156 |
- 0x90, 0x42, 0x0b, 0xb2, 0xc3, 0x44, 0x7a, 0x86, 0xd2, 0x65, 0x27, 0xe5, 0x69, 0xdf, 0x55, 0x77, |
|
1157 |
- 0xf7, 0x26, 0x42, 0x4c, 0x32, 0x3c, 0x58, 0xe0, 0x07, 0x0c, 0x55, 0x2a, 0x79, 0xa1, 0x45, 0xdd, |
|
1158 |
- 0xbb, 0xff, 0x79, 0x15, 0xb6, 0x5e, 0x27, 0x3a, 0x9d, 0x8e, 0x31, 0xc3, 0x54, 0x0b, 0xa9, 0xc8, |
|
1159 |
- 0x0e, 0x34, 0x38, 0xa3, 0xde, 0x9e, 0xd7, 0x6b, 0x1d, 0x35, 0xab, 0x79, 0xd8, 0x18, 0x0d, 0xa3, |
|
1160 |
- 0x06, 0x67, 0xe4, 0x11, 0xb4, 0x39, 0x8b, 0x0b, 0x89, 0xa7, 0xfc, 0x82, 0x36, 0x6c, 0xb9, 0x53, |
|
1161 |
- 0xcd, 0xc3, 0xd6, 0x68, 0xf8, 0xd2, 0x62, 0x51, 0x8b, 0x33, 0x17, 0x11, 0x02, 0x6b, 0x79, 0x32, |
|
1162 |
- 0x43, 0xba, 0x6a, 0xba, 0x22, 0x1b, 0x93, 0x10, 0x7c, 0xf3, 0x5d, 0x0c, 0x58, 0xb3, 0x25, 0x30, |
|
1163 |
- 0x50, 0x4d, 0xda, 0x81, 0x66, 0x5a, 0x2a, 0x2d, 0x66, 0x74, 0xdd, 0xd6, 0xea, 0x8c, 0x74, 0x61, |
|
1164 |
- 0xd3, 0x45, 0x0b, 0x6a, 0xd3, 0x96, 0x3b, 0x0e, 0xac, 0xc9, 0x8f, 0x01, 0x14, 0xca, 0x77, 0x3c, |
|
1165 |
- 0xc5, 0x98, 0x33, 0xba, 0x61, 0xaf, 0xdb, 0xac, 0xe6, 0x61, 0x7b, 0xec, 0xd0, 0xd1, 0x30, 0x6a, |
|
1166 |
- 0xd7, 0x0d, 0x23, 0x46, 0xba, 0xb0, 0x91, 0x0b, 0x66, 0x5b, 0x5b, 0xb6, 0x15, 0xaa, 0x79, 0xd8, |
|
1167 |
- 0x7c, 0x21, 0x98, 0xe9, 0x6b, 0x9a, 0xd2, 0x88, 0x19, 0x11, 0x2a, 0x13, 0x9a, 0xb6, 0x9d, 0x08, |
|
1168 |
- 0x13, 0x9b, 0x5b, 0x18, 0x2a, 0x2e, 0x91, 0xc5, 0x4a, 0x27, 0x1a, 0x29, 0xb8, 0x5b, 0x6a, 0x70, |
|
1169 |
- 0x6c, 0x30, 0x43, 0x94, 0x22, 0x43, 0xea, 0x3b, 0xa2, 0x89, 0x49, 0x00, 0x30, 0xc3, 0xd9, 0x09, |
|
1170 |
- 0x4a, 0x35, 0xe5, 0x05, 0xed, 0x38, 0xf1, 0x37, 0x88, 0xe1, 0x9c, 0xf1, 0x9c, 0xd1, 0x4d, 0xc7, |
|
1171 |
- 0x31, 0xf1, 0xfe, 0x1b, 0xf0, 0xc7, 0x5a, 0x48, 0x3c, 0x3e, 0x79, 0x8b, 0xa9, 0x26, 0xc7, 0x70, |
|
1172 |
- 0xef, 0xdc, 0x38, 0x15, 0xab, 0x85, 0x55, 0xd4, 0xdb, 0x6b, 0xf4, 0xfc, 0xc3, 0x87, 0xfd, 0xdb, |
|
1173 |
- 0xed, 0xef, 0x2f, 0x1b, 0x1b, 0x6d, 0x9d, 0x2f, 0xe5, 0xfb, 0x43, 0xd8, 0x7e, 0xf5, 0x6c, 0xfc, |
|
1174 |
- 0xa4, 0xd4, 0x53, 0x21, 0xf9, 0x87, 0x44, 0x73, 0x91, 0x93, 0x07, 0xb0, 0x6e, 0xee, 0x35, 0xa3, |
|
1175 |
- 0x57, 0x7b, 0xed, 0xc8, 0x25, 0x64, 0x17, 0x5a, 0x3c, 0x57, 0x98, 0x96, 0x12, 0x9d, 0xf3, 0xd1, |
|
1176 |
- 0x75, 0x3e, 0x78, 0x0a, 0x2d, 0x86, 0x58, 0xa4, 0xa2, 0x78, 0x4f, 0xc2, 0xbe, 0xfb, 0xe1, 0x6e, |
|
1177 |
- 0x2e, 0x79, 0x8e, 0x4a, 0x25, 0x13, 0x3c, 0x2e, 0xcc, 0x74, 0x45, 0x7f, 0x7d, 0xb1, 0xbe, 0x0f, |
|
1178 |
- 0xd6, 0xb4, 0x2c, 0x31, 0xba, 0x26, 0x0e, 0x38, 0x74, 0x94, 0x91, 0x1a, 0x0b, 0xa7, 0xf5, 0xbf, |
|
1179 |
- 0x83, 0x7e, 0xdb, 0x41, 0xfe, 0x61, 0xf7, 0x2e, 0xed, 0x7f, 0xbd, 0x5c, 0xe4, 0xab, 0x9b, 0x64, |
|
1180 |
- 0x70, 0x01, 0xf7, 0x75, 0xa6, 0xe2, 0x64, 0x49, 0x76, 0x70, 0xcb, 0x3e, 0x3d, 0x15, 0x6c, 0xb1, |
|
1181 |
- 0xee, 0xe7, 0x8f, 0x4f, 0x5d, 0xbb, 0xaf, 0x77, 0xd7, 0xbe, 0x7f, 0x5f, 0x32, 0xda, 0xd6, 0x99, |
|
1182 |
- 0x5a, 0x42, 0x8e, 0xe8, 0xe5, 0x55, 0xb0, 0xf2, 0xed, 0x2a, 0x58, 0xf9, 0x58, 0x05, 0xde, 0x65, |
|
1183 |
- 0x15, 0x78, 0x5f, 0xab, 0xc0, 0xfb, 0x5e, 0x05, 0xde, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x94, |
|
1184 |
- 0xd6, 0x21, 0x73, 0xce, 0x03, 0x00, 0x00, |
|
1151 |
+ // 575 bytes of a gzipped FileDescriptorProto |
|
1152 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x52, 0xc1, 0x6e, 0xd3, 0x4c, |
|
1153 |
+ 0x10, 0xae, 0xd3, 0x36, 0x4d, 0x26, 0x69, 0xff, 0xfe, 0x2b, 0x54, 0xad, 0x7a, 0x70, 0xaa, 0x46, |
|
1154 |
+ 0x42, 0x41, 0x42, 0x8e, 0xd4, 0x0b, 0x52, 0x6e, 0x94, 0x5c, 0x22, 0x01, 0x45, 0x0e, 0x12, 0x37, |
|
1155 |
+ 0x22, 0xc7, 0x3b, 0x4d, 0x96, 0x3a, 0x5e, 0x6b, 0x77, 0x4d, 0x0a, 0x27, 0x5e, 0x80, 0x07, 0xe0, |
|
1156 |
+ 0xca, 0xd3, 0xf4, 0xc8, 0x91, 0x53, 0x44, 0x2d, 0x71, 0xe0, 0x06, 0x6f, 0x80, 0x76, 0xd7, 0x69, |
|
1157 |
+ 0x08, 0x6a, 0xc5, 0xc9, 0x33, 0xdf, 0x7c, 0xdf, 0xcc, 0x7c, 0x3b, 0x86, 0x47, 0x13, 0xae, 0xa7, |
|
1158 |
+ 0xf9, 0x38, 0x88, 0xc5, 0xac, 0xcb, 0x44, 0x7c, 0x81, 0xb2, 0xab, 0xe6, 0x91, 0x9c, 0x5d, 0x70, |
|
1159 |
+ 0xdd, 0xcd, 0xa4, 0xd0, 0x62, 0x9c, 0x9f, 0x77, 0xb3, 0x24, 0x9f, 0xf0, 0xb4, 0xfc, 0x04, 0x16, |
|
1160 |
+ 0x26, 0x07, 0x8e, 0x1d, 0x2c, 0x49, 0x81, 0xab, 0x1e, 0x1e, 0x4d, 0x84, 0x98, 0x24, 0xb8, 0x12, |
|
1161 |
+ 0x33, 0x54, 0xb1, 0xe4, 0x99, 0x16, 0x25, 0xf7, 0xf8, 0xd3, 0x26, 0xec, 0xbd, 0x8a, 0x74, 0x3c, |
|
1162 |
+ 0x1d, 0x62, 0x82, 0xb1, 0x16, 0x52, 0x91, 0x03, 0xa8, 0x70, 0x46, 0xbd, 0x23, 0xaf, 0x53, 0x3b, |
|
1163 |
+ 0xad, 0x16, 0x8b, 0x56, 0x65, 0xd0, 0x0f, 0x2b, 0x9c, 0x91, 0x07, 0x50, 0xe7, 0x6c, 0x94, 0x49, |
|
1164 |
+ 0x3c, 0xe7, 0x97, 0xb4, 0x62, 0xcb, 0xcd, 0x62, 0xd1, 0xaa, 0x0d, 0xfa, 0x2f, 0x2c, 0x16, 0xd6, |
|
1165 |
+ 0x38, 0x73, 0x11, 0x21, 0xb0, 0x95, 0x46, 0x33, 0xa4, 0x9b, 0x86, 0x15, 0xda, 0x98, 0xb4, 0xa0, |
|
1166 |
+ 0x61, 0xbe, 0xcb, 0x06, 0x5b, 0xb6, 0x04, 0x06, 0x2a, 0x45, 0x07, 0x50, 0x8d, 0x73, 0xa5, 0xc5, |
|
1167 |
+ 0x8c, 0x6e, 0xdb, 0x5a, 0x99, 0x91, 0x36, 0xec, 0xba, 0x68, 0x29, 0xad, 0xda, 0x72, 0xd3, 0x81, |
|
1168 |
+ 0xa5, 0xf8, 0x21, 0x80, 0x42, 0xf9, 0x96, 0xc7, 0x38, 0xe2, 0x8c, 0xee, 0xd8, 0xed, 0x76, 0x8b, |
|
1169 |
+ 0x45, 0xab, 0x3e, 0x74, 0xe8, 0xa0, 0x1f, 0xd6, 0x4b, 0xc2, 0x80, 0x91, 0x36, 0xec, 0xa4, 0x82, |
|
1170 |
+ 0x59, 0x6a, 0xcd, 0x52, 0xa1, 0x58, 0xb4, 0xaa, 0xcf, 0x05, 0x33, 0xbc, 0xaa, 0x29, 0x0d, 0x98, |
|
1171 |
+ 0x31, 0xa1, 0x12, 0xa1, 0x69, 0xdd, 0x99, 0x30, 0xb1, 0xd9, 0x85, 0xa1, 0xe2, 0x12, 0xd9, 0x48, |
|
1172 |
+ 0xe9, 0x48, 0x23, 0x05, 0xb7, 0x4b, 0x09, 0x0e, 0x0d, 0x66, 0x84, 0x52, 0x24, 0x48, 0x1b, 0x4e, |
|
1173 |
+ 0x68, 0x62, 0xe2, 0x03, 0xcc, 0x70, 0x36, 0x46, 0xa9, 0xa6, 0x3c, 0xa3, 0x4d, 0x67, 0x7e, 0x85, |
|
1174 |
+ 0x18, 0xcd, 0x05, 0x4f, 0x19, 0xdd, 0x75, 0x1a, 0x13, 0x1f, 0xbf, 0x86, 0xc6, 0x50, 0x0b, 0x89, |
|
1175 |
+ 0x67, 0xe3, 0x37, 0x18, 0x6b, 0x72, 0x06, 0xff, 0xcd, 0xcd, 0xa5, 0x46, 0x6a, 0x79, 0x2a, 0xea, |
|
1176 |
+ 0x1d, 0x55, 0x3a, 0x8d, 0x93, 0xfb, 0xc1, 0xed, 0xe7, 0x0f, 0xd6, 0x0f, 0x1b, 0xee, 0xcd, 0xd7, |
|
1177 |
+ 0xf2, 0xe3, 0x3e, 0xec, 0xbf, 0x7c, 0x3a, 0x7c, 0x9c, 0xeb, 0xa9, 0x90, 0xfc, 0x7d, 0xa4, 0xb9, |
|
1178 |
+ 0x48, 0xc9, 0x3d, 0xd8, 0x36, 0xfb, 0x9a, 0xd6, 0x9b, 0x9d, 0x7a, 0xe8, 0x12, 0x72, 0x08, 0x35, |
|
1179 |
+ 0x9e, 0x2a, 0x8c, 0x73, 0x89, 0xee, 0xf2, 0xe1, 0x4d, 0xde, 0x7b, 0x02, 0x35, 0x86, 0x98, 0xc5, |
|
1180 |
+ 0x22, 0x7b, 0x47, 0x5a, 0x81, 0xfb, 0xe1, 0x56, 0x9b, 0x3c, 0x43, 0xa5, 0xa2, 0x09, 0x9e, 0x65, |
|
1181 |
+ 0xa6, 0xbb, 0xa2, 0x3f, 0x3f, 0xdb, 0xbb, 0xf7, 0xb6, 0xb4, 0xcc, 0x31, 0xbc, 0x11, 0xf6, 0x38, |
|
1182 |
+ 0x34, 0x95, 0xb1, 0x3a, 0x12, 0xce, 0xeb, 0x3f, 0x1b, 0xfd, 0xb2, 0x8d, 0x1a, 0x27, 0xed, 0xbb, |
|
1183 |
+ 0xbc, 0xff, 0xf1, 0x72, 0x61, 0x43, 0xad, 0x92, 0xde, 0x25, 0xfc, 0xaf, 0x13, 0x35, 0x8a, 0xd6, |
|
1184 |
+ 0x6c, 0xfb, 0xb7, 0xcc, 0xd3, 0x53, 0xc1, 0x96, 0xe3, 0x7e, 0x7c, 0xff, 0xd8, 0xb6, 0xf3, 0x3a, |
|
1185 |
+ 0x77, 0xcd, 0xfb, 0xfb, 0x25, 0xc3, 0x7d, 0x9d, 0xa8, 0x35, 0xe4, 0x94, 0x5e, 0x5d, 0xfb, 0x1b, |
|
1186 |
+ 0x5f, 0xaf, 0xfd, 0x8d, 0x0f, 0x85, 0xef, 0x5d, 0x15, 0xbe, 0xf7, 0xa5, 0xf0, 0xbd, 0x6f, 0x85, |
|
1187 |
+ 0xef, 0xfd, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x99, 0x7d, 0xfb, 0xf9, 0x03, 0x00, 0x00, |
|
1185 | 1188 |
} |
... | ... |
@@ -107,9 +107,10 @@ type PayloadContext struct { |
107 | 107 |
t *api.Task |
108 | 108 |
restrictedSecrets exec.SecretGetter |
109 | 109 |
restrictedConfigs exec.ConfigGetter |
110 |
+ sensitive bool |
|
110 | 111 |
} |
111 | 112 |
|
112 |
-func (ctx PayloadContext) secretGetter(target string) (string, error) { |
|
113 |
+func (ctx *PayloadContext) secretGetter(target string) (string, error) { |
|
113 | 114 |
if ctx.restrictedSecrets == nil { |
114 | 115 |
return "", errors.New("secrets unavailable") |
115 | 116 |
} |
... | ... |
@@ -126,6 +127,7 @@ func (ctx PayloadContext) secretGetter(target string) (string, error) { |
126 | 126 |
if err != nil { |
127 | 127 |
return "", err |
128 | 128 |
} |
129 |
+ ctx.sensitive = true |
|
129 | 130 |
return string(secret.Spec.Data), nil |
130 | 131 |
} |
131 | 132 |
} |
... | ... |
@@ -133,7 +135,7 @@ func (ctx PayloadContext) secretGetter(target string) (string, error) { |
133 | 133 |
return "", errors.Errorf("secret target %s not found", target) |
134 | 134 |
} |
135 | 135 |
|
136 |
-func (ctx PayloadContext) configGetter(target string) (string, error) { |
|
136 |
+func (ctx *PayloadContext) configGetter(target string) (string, error) { |
|
137 | 137 |
if ctx.restrictedConfigs == nil { |
138 | 138 |
return "", errors.New("configs unavailable") |
139 | 139 |
} |
... | ... |
@@ -157,7 +159,7 @@ func (ctx PayloadContext) configGetter(target string) (string, error) { |
157 | 157 |
return "", errors.Errorf("config target %s not found", target) |
158 | 158 |
} |
159 | 159 |
|
160 |
-func (ctx PayloadContext) envGetter(variable string) (string, error) { |
|
160 |
+func (ctx *PayloadContext) envGetter(variable string) (string, error) { |
|
161 | 161 |
container := ctx.t.Spec.GetContainer() |
162 | 162 |
if container == nil { |
163 | 163 |
return "", errors.New("task is not a container") |
... | ... |
@@ -119,7 +119,7 @@ func expandEnv(ctx Context, values []string) ([]string, error) { |
119 | 119 |
return result, nil |
120 | 120 |
} |
121 | 121 |
|
122 |
-func expandPayload(ctx PayloadContext, payload []byte) ([]byte, error) { |
|
122 |
+func expandPayload(ctx *PayloadContext, payload []byte) ([]byte, error) { |
|
123 | 123 |
result, err := ctx.Expand(string(payload)) |
124 | 124 |
if err != nil { |
125 | 125 |
return payload, err |
... | ... |
@@ -138,7 +138,7 @@ func ExpandSecretSpec(s *api.Secret, node *api.NodeDescription, t *api.Task, dep |
138 | 138 |
secretSpec := s.Spec.Copy() |
139 | 139 |
|
140 | 140 |
var err error |
141 |
- secretSpec.Data, err = expandPayload(ctx, secretSpec.Data) |
|
141 |
+ secretSpec.Data, err = expandPayload(&ctx, secretSpec.Data) |
|
142 | 142 |
return secretSpec, err |
143 | 143 |
} |
144 | 144 |
return &s.Spec, errors.New("unrecognized template type") |
... | ... |
@@ -146,17 +146,17 @@ func ExpandSecretSpec(s *api.Secret, node *api.NodeDescription, t *api.Task, dep |
146 | 146 |
|
147 | 147 |
// ExpandConfigSpec expands the template inside the config payload, if any. |
148 | 148 |
// Templating is evaluated on the agent-side. |
149 |
-func ExpandConfigSpec(c *api.Config, node *api.NodeDescription, t *api.Task, dependencies exec.DependencyGetter) (*api.ConfigSpec, error) { |
|
149 |
+func ExpandConfigSpec(c *api.Config, node *api.NodeDescription, t *api.Task, dependencies exec.DependencyGetter) (*api.ConfigSpec, bool, error) { |
|
150 | 150 |
if c.Spec.Templating == nil { |
151 |
- return &c.Spec, nil |
|
151 |
+ return &c.Spec, false, nil |
|
152 | 152 |
} |
153 | 153 |
if c.Spec.Templating.Name == "golang" { |
154 | 154 |
ctx := NewPayloadContextFromTask(node, t, dependencies) |
155 | 155 |
configSpec := c.Spec.Copy() |
156 | 156 |
|
157 | 157 |
var err error |
158 |
- configSpec.Data, err = expandPayload(ctx, configSpec.Data) |
|
159 |
- return configSpec, err |
|
158 |
+ configSpec.Data, err = expandPayload(&ctx, configSpec.Data) |
|
159 |
+ return configSpec, ctx.sensitive, err |
|
160 | 160 |
} |
161 |
- return &c.Spec, errors.New("unrecognized template type") |
|
161 |
+ return &c.Spec, false, errors.New("unrecognized template type") |
|
162 | 162 |
} |
... | ... |
@@ -42,6 +42,18 @@ func (t templatedSecretGetter) Get(secretID string) (*api.Secret, error) { |
42 | 42 |
return &secretCopy, nil |
43 | 43 |
} |
44 | 44 |
|
45 |
+// TemplatedConfigGetter is a ConfigGetter with an additional method to expose |
|
46 |
+// whether a config contains sensitive data. |
|
47 |
+type TemplatedConfigGetter interface { |
|
48 |
+ exec.ConfigGetter |
|
49 |
+ |
|
50 |
+ // GetAndFlagSecretData returns the interpolated config, and also |
|
51 |
+ // returns true if the config has been interpolated with data from a |
|
52 |
+ // secret. In this case, the config should be handled specially and |
|
53 |
+ // should not be written to disk. |
|
54 |
+ GetAndFlagSecretData(configID string) (*api.Config, bool, error) |
|
55 |
+} |
|
56 |
+ |
|
45 | 57 |
type templatedConfigGetter struct { |
46 | 58 |
dependencies exec.DependencyGetter |
47 | 59 |
t *api.Task |
... | ... |
@@ -49,38 +61,43 @@ type templatedConfigGetter struct { |
49 | 49 |
} |
50 | 50 |
|
51 | 51 |
// NewTemplatedConfigGetter returns a ConfigGetter that evaluates templates. |
52 |
-func NewTemplatedConfigGetter(dependencies exec.DependencyGetter, t *api.Task, node *api.NodeDescription) exec.ConfigGetter { |
|
52 |
+func NewTemplatedConfigGetter(dependencies exec.DependencyGetter, t *api.Task, node *api.NodeDescription) TemplatedConfigGetter { |
|
53 | 53 |
return templatedConfigGetter{dependencies: dependencies, t: t, node: node} |
54 | 54 |
} |
55 | 55 |
|
56 | 56 |
func (t templatedConfigGetter) Get(configID string) (*api.Config, error) { |
57 |
+ config, _, err := t.GetAndFlagSecretData(configID) |
|
58 |
+ return config, err |
|
59 |
+} |
|
60 |
+ |
|
61 |
+func (t templatedConfigGetter) GetAndFlagSecretData(configID string) (*api.Config, bool, error) { |
|
57 | 62 |
if t.dependencies == nil { |
58 |
- return nil, errors.New("no config provider available") |
|
63 |
+ return nil, false, errors.New("no config provider available") |
|
59 | 64 |
} |
60 | 65 |
|
61 | 66 |
configs := t.dependencies.Configs() |
62 | 67 |
if configs == nil { |
63 |
- return nil, errors.New("no config provider available") |
|
68 |
+ return nil, false, errors.New("no config provider available") |
|
64 | 69 |
} |
65 | 70 |
|
66 | 71 |
config, err := configs.Get(configID) |
67 | 72 |
if err != nil { |
68 |
- return config, err |
|
73 |
+ return config, false, err |
|
69 | 74 |
} |
70 | 75 |
|
71 |
- newSpec, err := ExpandConfigSpec(config, t.node, t.t, t.dependencies) |
|
76 |
+ newSpec, sensitive, err := ExpandConfigSpec(config, t.node, t.t, t.dependencies) |
|
72 | 77 |
if err != nil { |
73 |
- return config, errors.Wrapf(err, "failed to expand templated config %s", configID) |
|
78 |
+ return config, false, errors.Wrapf(err, "failed to expand templated config %s", configID) |
|
74 | 79 |
} |
75 | 80 |
|
76 | 81 |
configCopy := *config |
77 | 82 |
configCopy.Spec = *newSpec |
78 |
- return &configCopy, nil |
|
83 |
+ return &configCopy, sensitive, nil |
|
79 | 84 |
} |
80 | 85 |
|
81 | 86 |
type templatedDependencyGetter struct { |
82 | 87 |
secrets exec.SecretGetter |
83 |
- configs exec.ConfigGetter |
|
88 |
+ configs TemplatedConfigGetter |
|
84 | 89 |
} |
85 | 90 |
|
86 | 91 |
// NewTemplatedDependencyGetter returns a DependencyGetter that evaluates templates. |
... | ... |
@@ -19,26 +19,27 @@ github.com/prometheus/common ebdfc6da46522d58825777cf1f90490a5b1ef1d8 |
19 | 19 |
github.com/prometheus/procfs abf152e5f3e97f2fafac028d2cc06c1feb87ffa5 |
20 | 20 |
|
21 | 21 |
github.com/docker/distribution b38e5838b7b2f2ad48e06ec4b500011976080621 |
22 |
-github.com/docker/docker 77c9728847358a3ed3581d828fb0753017e1afd3 |
|
23 |
-github.com/docker/go-connections 34b5052da6b11e27f5f2e357b38b571ddddd3928 |
|
24 |
-github.com/docker/go-events 37d35add5005832485c0225ec870121b78fcff1c |
|
22 |
+github.com/docker/docker 8af4db6f002ac907b6ef8610b237879dfcaa5b7a |
|
23 |
+github.com/docker/go-connections 3ede32e2033de7505e6500d6c868c2b9ed9f169d |
|
24 |
+github.com/docker/go-events 9461782956ad83b30282bf90e31fa6a70c255ba9 |
|
25 | 25 |
github.com/docker/go-units 954fed01cc617c55d838fa2230073f2cb17386c8 |
26 | 26 |
github.com/docker/libkv 9fd56606e928ff1f309808f5d5a0b7a2ef73f9a8 |
27 |
-github.com/docker/libnetwork 37e20af882e13dd01ade3658b7aabdae3412118b |
|
27 |
+github.com/docker/libnetwork 19ac3ea7f52bb46e0eb10669756cdae0c441a5b1 |
|
28 | 28 |
github.com/docker/libtrust 9cbd2a1374f46905c68a4eb3694a130610adc62a |
29 |
-github.com/opencontainers/runc b6b70e53451794e8333e9b602cc096b47a20bd0f |
|
30 |
-github.com/opencontainers/go-digest a6d0ee40d4207ea02364bd3b9e8e77b9159ba1eb |
|
31 |
-github.com/opencontainers/image-spec 372ad780f63454fbbbbcc7cf80e5b90245c13e13 |
|
29 |
+github.com/opencontainers/runc d40db12e72a40109dfcf28539f5ee0930d2f0277 |
|
30 |
+github.com/opencontainers/go-digest 21dfd564fd89c944783d00d069f33e3e7123c448 |
|
31 |
+github.com/opencontainers/image-spec v1.0.0 |
|
32 | 32 |
|
33 | 33 |
# containerd executor |
34 |
-github.com/containerd/containerd 76697ac8cbf357a19beb58e4805a81fe48cf7974 |
|
34 |
+github.com/containerd/containerd 29a4dd7f46e0780d0bff2a237dc600a5b90a4dd5 |
|
35 | 35 |
github.com/containerd/fifo 69b99525e472735860a5269b75af1970142b3062 |
36 |
-github.com/opencontainers/runtime-spec v1.0.0-rc5 |
|
36 |
+github.com/opencontainers/runtime-spec v1.0.0 |
|
37 | 37 |
golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c |
38 |
+github.com/containerd/continuity cf279e6ac893682272b4479d4c67fd3abf878b4e |
|
38 | 39 |
|
39 | 40 |
github.com/davecgh/go-spew 5215b55f46b2b919f50a1df0eaa5886afe4e3b3d |
40 | 41 |
github.com/Microsoft/go-winio v0.4.2 |
41 |
-github.com/Sirupsen/logrus v0.11.0 |
|
42 |
+github.com/sirupsen/logrus v1.0.1 |
|
42 | 43 |
github.com/beorn7/perks 4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9 |
43 | 44 |
github.com/boltdb/bolt e72f08ddb5a52992c0a44c7dda9316c7333938b2 |
44 | 45 |
github.com/cloudflare/cfssl 7fb22c8cba7ecaf98e4082d22d65800cf45e042a |
... | ... |
@@ -58,6 +59,6 @@ github.com/spf13/pflag 7f60f83a2c81bc3c3c0d5297f61ddfa68da9d3b7 |
58 | 58 |
github.com/stretchr/testify v1.1.4 |
59 | 59 |
golang.org/x/crypto 3fbbcd23f1cb824e69491a5930cfeff09b12f4d2 |
60 | 60 |
golang.org/x/net 7dcfb8076726a3fdd9353b6b8a1f1b6be6811bd6 |
61 |
-golang.org/x/sys 5eaf0df67e70d6997a9fe0ed24383fa1b01638d3 |
|
61 |
+golang.org/x/sys 739734461d1c916b6c72a63d7efda2b27edb369f |
|
62 | 62 |
golang.org/x/text f72d8390a633d5dfb0cc84043294db9f6c935756 |
63 | 63 |
golang.org/x/time a4bde12657593d5e90d0533a3e4fd95e635124cb |