You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

585 lines
20 KiB

  1. // Code generated by protoc-gen-go.
  2. // source: seaweed.proto
  3. // DO NOT EDIT!
  4. /*
  5. Package master_pb is a generated protocol buffer package.
  6. It is generated from these files:
  7. seaweed.proto
  8. It has these top-level messages:
  9. Heartbeat
  10. HeartbeatResponse
  11. VolumeInformationMessage
  12. Empty
  13. SuperBlockExtra
  14. ClientListenRequest
  15. VolumeLocation
  16. */
  17. package master_pb
  18. import proto "github.com/golang/protobuf/proto"
  19. import fmt "fmt"
  20. import math "math"
  21. import (
  22. context "golang.org/x/net/context"
  23. grpc "google.golang.org/grpc"
  24. )
  25. // Reference imports to suppress errors if they are not otherwise used.
  26. var _ = proto.Marshal
  27. var _ = fmt.Errorf
  28. var _ = math.Inf
  29. // This is a compile-time assertion to ensure that this generated file
  30. // is compatible with the proto package it is being compiled against.
  31. // A compilation error at this line likely means your copy of the
  32. // proto package needs to be updated.
  33. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  34. type Heartbeat struct {
  35. Ip string `protobuf:"bytes,1,opt,name=ip" json:"ip,omitempty"`
  36. Port uint32 `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
  37. PublicUrl string `protobuf:"bytes,3,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"`
  38. MaxVolumeCount uint32 `protobuf:"varint,4,opt,name=max_volume_count,json=maxVolumeCount" json:"max_volume_count,omitempty"`
  39. MaxFileKey uint64 `protobuf:"varint,5,opt,name=max_file_key,json=maxFileKey" json:"max_file_key,omitempty"`
  40. DataCenter string `protobuf:"bytes,6,opt,name=data_center,json=dataCenter" json:"data_center,omitempty"`
  41. Rack string `protobuf:"bytes,7,opt,name=rack" json:"rack,omitempty"`
  42. AdminPort uint32 `protobuf:"varint,8,opt,name=admin_port,json=adminPort" json:"admin_port,omitempty"`
  43. Volumes []*VolumeInformationMessage `protobuf:"bytes,9,rep,name=volumes" json:"volumes,omitempty"`
  44. }
  45. func (m *Heartbeat) Reset() { *m = Heartbeat{} }
  46. func (m *Heartbeat) String() string { return proto.CompactTextString(m) }
  47. func (*Heartbeat) ProtoMessage() {}
  48. func (*Heartbeat) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
  49. func (m *Heartbeat) GetIp() string {
  50. if m != nil {
  51. return m.Ip
  52. }
  53. return ""
  54. }
  55. func (m *Heartbeat) GetPort() uint32 {
  56. if m != nil {
  57. return m.Port
  58. }
  59. return 0
  60. }
  61. func (m *Heartbeat) GetPublicUrl() string {
  62. if m != nil {
  63. return m.PublicUrl
  64. }
  65. return ""
  66. }
  67. func (m *Heartbeat) GetMaxVolumeCount() uint32 {
  68. if m != nil {
  69. return m.MaxVolumeCount
  70. }
  71. return 0
  72. }
  73. func (m *Heartbeat) GetMaxFileKey() uint64 {
  74. if m != nil {
  75. return m.MaxFileKey
  76. }
  77. return 0
  78. }
  79. func (m *Heartbeat) GetDataCenter() string {
  80. if m != nil {
  81. return m.DataCenter
  82. }
  83. return ""
  84. }
  85. func (m *Heartbeat) GetRack() string {
  86. if m != nil {
  87. return m.Rack
  88. }
  89. return ""
  90. }
  91. func (m *Heartbeat) GetAdminPort() uint32 {
  92. if m != nil {
  93. return m.AdminPort
  94. }
  95. return 0
  96. }
  97. func (m *Heartbeat) GetVolumes() []*VolumeInformationMessage {
  98. if m != nil {
  99. return m.Volumes
  100. }
  101. return nil
  102. }
  103. type HeartbeatResponse struct {
  104. VolumeSizeLimit uint64 `protobuf:"varint,1,opt,name=volumeSizeLimit" json:"volumeSizeLimit,omitempty"`
  105. SecretKey string `protobuf:"bytes,2,opt,name=secretKey" json:"secretKey,omitempty"`
  106. Leader string `protobuf:"bytes,3,opt,name=leader" json:"leader,omitempty"`
  107. }
  108. func (m *HeartbeatResponse) Reset() { *m = HeartbeatResponse{} }
  109. func (m *HeartbeatResponse) String() string { return proto.CompactTextString(m) }
  110. func (*HeartbeatResponse) ProtoMessage() {}
  111. func (*HeartbeatResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
  112. func (m *HeartbeatResponse) GetVolumeSizeLimit() uint64 {
  113. if m != nil {
  114. return m.VolumeSizeLimit
  115. }
  116. return 0
  117. }
  118. func (m *HeartbeatResponse) GetSecretKey() string {
  119. if m != nil {
  120. return m.SecretKey
  121. }
  122. return ""
  123. }
  124. func (m *HeartbeatResponse) GetLeader() string {
  125. if m != nil {
  126. return m.Leader
  127. }
  128. return ""
  129. }
  130. type VolumeInformationMessage struct {
  131. Id uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
  132. Size uint64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
  133. Collection string `protobuf:"bytes,3,opt,name=collection" json:"collection,omitempty"`
  134. FileCount uint64 `protobuf:"varint,4,opt,name=file_count,json=fileCount" json:"file_count,omitempty"`
  135. DeleteCount uint64 `protobuf:"varint,5,opt,name=delete_count,json=deleteCount" json:"delete_count,omitempty"`
  136. DeletedByteCount uint64 `protobuf:"varint,6,opt,name=deleted_byte_count,json=deletedByteCount" json:"deleted_byte_count,omitempty"`
  137. ReadOnly bool `protobuf:"varint,7,opt,name=read_only,json=readOnly" json:"read_only,omitempty"`
  138. ReplicaPlacement uint32 `protobuf:"varint,8,opt,name=replica_placement,json=replicaPlacement" json:"replica_placement,omitempty"`
  139. Version uint32 `protobuf:"varint,9,opt,name=version" json:"version,omitempty"`
  140. Ttl uint32 `protobuf:"varint,10,opt,name=ttl" json:"ttl,omitempty"`
  141. }
  142. func (m *VolumeInformationMessage) Reset() { *m = VolumeInformationMessage{} }
  143. func (m *VolumeInformationMessage) String() string { return proto.CompactTextString(m) }
  144. func (*VolumeInformationMessage) ProtoMessage() {}
  145. func (*VolumeInformationMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
  146. func (m *VolumeInformationMessage) GetId() uint32 {
  147. if m != nil {
  148. return m.Id
  149. }
  150. return 0
  151. }
  152. func (m *VolumeInformationMessage) GetSize() uint64 {
  153. if m != nil {
  154. return m.Size
  155. }
  156. return 0
  157. }
  158. func (m *VolumeInformationMessage) GetCollection() string {
  159. if m != nil {
  160. return m.Collection
  161. }
  162. return ""
  163. }
  164. func (m *VolumeInformationMessage) GetFileCount() uint64 {
  165. if m != nil {
  166. return m.FileCount
  167. }
  168. return 0
  169. }
  170. func (m *VolumeInformationMessage) GetDeleteCount() uint64 {
  171. if m != nil {
  172. return m.DeleteCount
  173. }
  174. return 0
  175. }
  176. func (m *VolumeInformationMessage) GetDeletedByteCount() uint64 {
  177. if m != nil {
  178. return m.DeletedByteCount
  179. }
  180. return 0
  181. }
  182. func (m *VolumeInformationMessage) GetReadOnly() bool {
  183. if m != nil {
  184. return m.ReadOnly
  185. }
  186. return false
  187. }
  188. func (m *VolumeInformationMessage) GetReplicaPlacement() uint32 {
  189. if m != nil {
  190. return m.ReplicaPlacement
  191. }
  192. return 0
  193. }
  194. func (m *VolumeInformationMessage) GetVersion() uint32 {
  195. if m != nil {
  196. return m.Version
  197. }
  198. return 0
  199. }
  200. func (m *VolumeInformationMessage) GetTtl() uint32 {
  201. if m != nil {
  202. return m.Ttl
  203. }
  204. return 0
  205. }
  206. type Empty struct {
  207. }
  208. func (m *Empty) Reset() { *m = Empty{} }
  209. func (m *Empty) String() string { return proto.CompactTextString(m) }
  210. func (*Empty) ProtoMessage() {}
  211. func (*Empty) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
  212. type SuperBlockExtra struct {
  213. ErasureCoding *SuperBlockExtra_ErasureCoding `protobuf:"bytes,1,opt,name=erasure_coding,json=erasureCoding" json:"erasure_coding,omitempty"`
  214. }
  215. func (m *SuperBlockExtra) Reset() { *m = SuperBlockExtra{} }
  216. func (m *SuperBlockExtra) String() string { return proto.CompactTextString(m) }
  217. func (*SuperBlockExtra) ProtoMessage() {}
  218. func (*SuperBlockExtra) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
  219. func (m *SuperBlockExtra) GetErasureCoding() *SuperBlockExtra_ErasureCoding {
  220. if m != nil {
  221. return m.ErasureCoding
  222. }
  223. return nil
  224. }
  225. type SuperBlockExtra_ErasureCoding struct {
  226. Data uint32 `protobuf:"varint,1,opt,name=data" json:"data,omitempty"`
  227. Parity uint32 `protobuf:"varint,2,opt,name=parity" json:"parity,omitempty"`
  228. VolumeIds []uint32 `protobuf:"varint,3,rep,packed,name=volume_ids,json=volumeIds" json:"volume_ids,omitempty"`
  229. }
  230. func (m *SuperBlockExtra_ErasureCoding) Reset() { *m = SuperBlockExtra_ErasureCoding{} }
  231. func (m *SuperBlockExtra_ErasureCoding) String() string { return proto.CompactTextString(m) }
  232. func (*SuperBlockExtra_ErasureCoding) ProtoMessage() {}
  233. func (*SuperBlockExtra_ErasureCoding) Descriptor() ([]byte, []int) {
  234. return fileDescriptor0, []int{4, 0}
  235. }
  236. func (m *SuperBlockExtra_ErasureCoding) GetData() uint32 {
  237. if m != nil {
  238. return m.Data
  239. }
  240. return 0
  241. }
  242. func (m *SuperBlockExtra_ErasureCoding) GetParity() uint32 {
  243. if m != nil {
  244. return m.Parity
  245. }
  246. return 0
  247. }
  248. func (m *SuperBlockExtra_ErasureCoding) GetVolumeIds() []uint32 {
  249. if m != nil {
  250. return m.VolumeIds
  251. }
  252. return nil
  253. }
  254. type ClientListenRequest struct {
  255. Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  256. }
  257. func (m *ClientListenRequest) Reset() { *m = ClientListenRequest{} }
  258. func (m *ClientListenRequest) String() string { return proto.CompactTextString(m) }
  259. func (*ClientListenRequest) ProtoMessage() {}
  260. func (*ClientListenRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
  261. func (m *ClientListenRequest) GetName() string {
  262. if m != nil {
  263. return m.Name
  264. }
  265. return ""
  266. }
  267. type VolumeLocation struct {
  268. Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
  269. PublicUrl string `protobuf:"bytes,2,opt,name=public_url,json=publicUrl" json:"public_url,omitempty"`
  270. NewVids []uint32 `protobuf:"varint,3,rep,packed,name=new_vids,json=newVids" json:"new_vids,omitempty"`
  271. DeletedVids []uint32 `protobuf:"varint,4,rep,packed,name=deleted_vids,json=deletedVids" json:"deleted_vids,omitempty"`
  272. }
  273. func (m *VolumeLocation) Reset() { *m = VolumeLocation{} }
  274. func (m *VolumeLocation) String() string { return proto.CompactTextString(m) }
  275. func (*VolumeLocation) ProtoMessage() {}
  276. func (*VolumeLocation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
  277. func (m *VolumeLocation) GetUrl() string {
  278. if m != nil {
  279. return m.Url
  280. }
  281. return ""
  282. }
  283. func (m *VolumeLocation) GetPublicUrl() string {
  284. if m != nil {
  285. return m.PublicUrl
  286. }
  287. return ""
  288. }
  289. func (m *VolumeLocation) GetNewVids() []uint32 {
  290. if m != nil {
  291. return m.NewVids
  292. }
  293. return nil
  294. }
  295. func (m *VolumeLocation) GetDeletedVids() []uint32 {
  296. if m != nil {
  297. return m.DeletedVids
  298. }
  299. return nil
  300. }
  301. func init() {
  302. proto.RegisterType((*Heartbeat)(nil), "master_pb.Heartbeat")
  303. proto.RegisterType((*HeartbeatResponse)(nil), "master_pb.HeartbeatResponse")
  304. proto.RegisterType((*VolumeInformationMessage)(nil), "master_pb.VolumeInformationMessage")
  305. proto.RegisterType((*Empty)(nil), "master_pb.Empty")
  306. proto.RegisterType((*SuperBlockExtra)(nil), "master_pb.SuperBlockExtra")
  307. proto.RegisterType((*SuperBlockExtra_ErasureCoding)(nil), "master_pb.SuperBlockExtra.ErasureCoding")
  308. proto.RegisterType((*ClientListenRequest)(nil), "master_pb.ClientListenRequest")
  309. proto.RegisterType((*VolumeLocation)(nil), "master_pb.VolumeLocation")
  310. }
  311. // Reference imports to suppress errors if they are not otherwise used.
  312. var _ context.Context
  313. var _ grpc.ClientConn
  314. // This is a compile-time assertion to ensure that this generated file
  315. // is compatible with the grpc package it is being compiled against.
  316. const _ = grpc.SupportPackageIsVersion4
  317. // Client API for Seaweed service
  318. type SeaweedClient interface {
  319. SendHeartbeat(ctx context.Context, opts ...grpc.CallOption) (Seaweed_SendHeartbeatClient, error)
  320. KeepConnected(ctx context.Context, opts ...grpc.CallOption) (Seaweed_KeepConnectedClient, error)
  321. }
  322. type seaweedClient struct {
  323. cc *grpc.ClientConn
  324. }
  325. func NewSeaweedClient(cc *grpc.ClientConn) SeaweedClient {
  326. return &seaweedClient{cc}
  327. }
  328. func (c *seaweedClient) SendHeartbeat(ctx context.Context, opts ...grpc.CallOption) (Seaweed_SendHeartbeatClient, error) {
  329. stream, err := grpc.NewClientStream(ctx, &_Seaweed_serviceDesc.Streams[0], c.cc, "/master_pb.Seaweed/SendHeartbeat", opts...)
  330. if err != nil {
  331. return nil, err
  332. }
  333. x := &seaweedSendHeartbeatClient{stream}
  334. return x, nil
  335. }
  336. type Seaweed_SendHeartbeatClient interface {
  337. Send(*Heartbeat) error
  338. Recv() (*HeartbeatResponse, error)
  339. grpc.ClientStream
  340. }
  341. type seaweedSendHeartbeatClient struct {
  342. grpc.ClientStream
  343. }
  344. func (x *seaweedSendHeartbeatClient) Send(m *Heartbeat) error {
  345. return x.ClientStream.SendMsg(m)
  346. }
  347. func (x *seaweedSendHeartbeatClient) Recv() (*HeartbeatResponse, error) {
  348. m := new(HeartbeatResponse)
  349. if err := x.ClientStream.RecvMsg(m); err != nil {
  350. return nil, err
  351. }
  352. return m, nil
  353. }
  354. func (c *seaweedClient) KeepConnected(ctx context.Context, opts ...grpc.CallOption) (Seaweed_KeepConnectedClient, error) {
  355. stream, err := grpc.NewClientStream(ctx, &_Seaweed_serviceDesc.Streams[1], c.cc, "/master_pb.Seaweed/KeepConnected", opts...)
  356. if err != nil {
  357. return nil, err
  358. }
  359. x := &seaweedKeepConnectedClient{stream}
  360. return x, nil
  361. }
  362. type Seaweed_KeepConnectedClient interface {
  363. Send(*ClientListenRequest) error
  364. Recv() (*VolumeLocation, error)
  365. grpc.ClientStream
  366. }
  367. type seaweedKeepConnectedClient struct {
  368. grpc.ClientStream
  369. }
  370. func (x *seaweedKeepConnectedClient) Send(m *ClientListenRequest) error {
  371. return x.ClientStream.SendMsg(m)
  372. }
  373. func (x *seaweedKeepConnectedClient) Recv() (*VolumeLocation, error) {
  374. m := new(VolumeLocation)
  375. if err := x.ClientStream.RecvMsg(m); err != nil {
  376. return nil, err
  377. }
  378. return m, nil
  379. }
  380. // Server API for Seaweed service
  381. type SeaweedServer interface {
  382. SendHeartbeat(Seaweed_SendHeartbeatServer) error
  383. KeepConnected(Seaweed_KeepConnectedServer) error
  384. }
  385. func RegisterSeaweedServer(s *grpc.Server, srv SeaweedServer) {
  386. s.RegisterService(&_Seaweed_serviceDesc, srv)
  387. }
  388. func _Seaweed_SendHeartbeat_Handler(srv interface{}, stream grpc.ServerStream) error {
  389. return srv.(SeaweedServer).SendHeartbeat(&seaweedSendHeartbeatServer{stream})
  390. }
  391. type Seaweed_SendHeartbeatServer interface {
  392. Send(*HeartbeatResponse) error
  393. Recv() (*Heartbeat, error)
  394. grpc.ServerStream
  395. }
  396. type seaweedSendHeartbeatServer struct {
  397. grpc.ServerStream
  398. }
  399. func (x *seaweedSendHeartbeatServer) Send(m *HeartbeatResponse) error {
  400. return x.ServerStream.SendMsg(m)
  401. }
  402. func (x *seaweedSendHeartbeatServer) Recv() (*Heartbeat, error) {
  403. m := new(Heartbeat)
  404. if err := x.ServerStream.RecvMsg(m); err != nil {
  405. return nil, err
  406. }
  407. return m, nil
  408. }
  409. func _Seaweed_KeepConnected_Handler(srv interface{}, stream grpc.ServerStream) error {
  410. return srv.(SeaweedServer).KeepConnected(&seaweedKeepConnectedServer{stream})
  411. }
  412. type Seaweed_KeepConnectedServer interface {
  413. Send(*VolumeLocation) error
  414. Recv() (*ClientListenRequest, error)
  415. grpc.ServerStream
  416. }
  417. type seaweedKeepConnectedServer struct {
  418. grpc.ServerStream
  419. }
  420. func (x *seaweedKeepConnectedServer) Send(m *VolumeLocation) error {
  421. return x.ServerStream.SendMsg(m)
  422. }
  423. func (x *seaweedKeepConnectedServer) Recv() (*ClientListenRequest, error) {
  424. m := new(ClientListenRequest)
  425. if err := x.ServerStream.RecvMsg(m); err != nil {
  426. return nil, err
  427. }
  428. return m, nil
  429. }
  430. var _Seaweed_serviceDesc = grpc.ServiceDesc{
  431. ServiceName: "master_pb.Seaweed",
  432. HandlerType: (*SeaweedServer)(nil),
  433. Methods: []grpc.MethodDesc{},
  434. Streams: []grpc.StreamDesc{
  435. {
  436. StreamName: "SendHeartbeat",
  437. Handler: _Seaweed_SendHeartbeat_Handler,
  438. ServerStreams: true,
  439. ClientStreams: true,
  440. },
  441. {
  442. StreamName: "KeepConnected",
  443. Handler: _Seaweed_KeepConnected_Handler,
  444. ServerStreams: true,
  445. ClientStreams: true,
  446. },
  447. },
  448. Metadata: "seaweed.proto",
  449. }
  450. func init() { proto.RegisterFile("seaweed.proto", fileDescriptor0) }
  451. var fileDescriptor0 = []byte{
  452. // 708 bytes of a gzipped FileDescriptorProto
  453. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x54, 0x41, 0x6f, 0xf3, 0x44,
  454. 0x10, 0xc5, 0x49, 0xbe, 0x24, 0x9e, 0x7c, 0xc9, 0x97, 0x2e, 0x08, 0xb9, 0xa5, 0x94, 0x60, 0x2e,
  455. 0x46, 0xa0, 0x08, 0x95, 0x33, 0x97, 0x46, 0x45, 0x54, 0x2d, 0x6a, 0xe5, 0x88, 0x1e, 0xb8, 0x58,
  456. 0x1b, 0xef, 0xb4, 0x5a, 0x75, 0xbd, 0x36, 0xbb, 0x9b, 0x36, 0xee, 0x85, 0x7f, 0xc3, 0x8d, 0xbf,
  457. 0xc0, 0x89, 0x1f, 0x86, 0x76, 0xd7, 0x4e, 0x42, 0x28, 0xb7, 0xd9, 0x37, 0x6f, 0xbc, 0xe3, 0xf7,
  458. 0x66, 0x16, 0xc6, 0x1a, 0xe9, 0x0b, 0x22, 0x9b, 0x57, 0xaa, 0x34, 0x25, 0x09, 0x0b, 0xaa, 0x0d,
  459. 0xaa, 0xac, 0x5a, 0xc5, 0x7f, 0x76, 0x20, 0xfc, 0x09, 0xa9, 0x32, 0x2b, 0xa4, 0x86, 0x4c, 0xa0,
  460. 0xc3, 0xab, 0x28, 0x98, 0x05, 0x49, 0x98, 0x76, 0x78, 0x45, 0x08, 0xf4, 0xaa, 0x52, 0x99, 0xa8,
  461. 0x33, 0x0b, 0x92, 0x71, 0xea, 0x62, 0xf2, 0x39, 0x40, 0xb5, 0x5e, 0x09, 0x9e, 0x67, 0x6b, 0x25,
  462. 0xa2, 0xae, 0xe3, 0x86, 0x1e, 0xf9, 0x45, 0x09, 0x92, 0xc0, 0xb4, 0xa0, 0x9b, 0xec, 0xb9, 0x14,
  463. 0xeb, 0x02, 0xb3, 0xbc, 0x5c, 0x4b, 0x13, 0xf5, 0x5c, 0xf9, 0xa4, 0xa0, 0x9b, 0x7b, 0x07, 0x2f,
  464. 0x2c, 0x4a, 0x66, 0xf0, 0xde, 0x32, 0x1f, 0xb8, 0xc0, 0xec, 0x09, 0xeb, 0xe8, 0xdd, 0x2c, 0x48,
  465. 0x7a, 0x29, 0x14, 0x74, 0xf3, 0x23, 0x17, 0x78, 0x8d, 0x35, 0xf9, 0x02, 0x46, 0x8c, 0x1a, 0x9a,
  466. 0xe5, 0x28, 0x0d, 0xaa, 0xa8, 0xef, 0xee, 0x02, 0x0b, 0x2d, 0x1c, 0x62, 0xfb, 0x53, 0x34, 0x7f,
  467. 0x8a, 0x06, 0x2e, 0xe3, 0x62, 0xdb, 0x1f, 0x65, 0x05, 0x97, 0x99, 0xeb, 0x7c, 0xe8, 0xae, 0x0e,
  468. 0x1d, 0x72, 0x67, 0xdb, 0xff, 0x01, 0x06, 0xbe, 0x37, 0x1d, 0x85, 0xb3, 0x6e, 0x32, 0x3a, 0xff,
  469. 0x6a, 0xbe, 0x55, 0x63, 0xee, 0xdb, 0xbb, 0x92, 0x0f, 0xa5, 0x2a, 0xa8, 0xe1, 0xa5, 0xfc, 0x19,
  470. 0xb5, 0xa6, 0x8f, 0x98, 0xb6, 0x35, 0xb1, 0x86, 0xa3, 0xad, 0x5c, 0x29, 0xea, 0xaa, 0x94, 0x1a,
  471. 0x49, 0x02, 0x1f, 0x7c, 0x7e, 0xc9, 0x5f, 0xf1, 0x86, 0x17, 0xdc, 0x38, 0x0d, 0x7b, 0xe9, 0x21,
  472. 0x4c, 0x4e, 0x21, 0xd4, 0x98, 0x2b, 0x34, 0xd7, 0x58, 0x3b, 0x55, 0xc3, 0x74, 0x07, 0x90, 0x4f,
  473. 0xa1, 0x2f, 0x90, 0x32, 0x54, 0x8d, 0xac, 0xcd, 0x29, 0xfe, 0xbb, 0x03, 0xd1, 0xff, 0xb5, 0xe6,
  474. 0x3c, 0x63, 0xee, 0xbe, 0x71, 0xda, 0xe1, 0xcc, 0x6a, 0xa2, 0xf9, 0x2b, 0xba, 0xaf, 0xf7, 0x52,
  475. 0x17, 0x93, 0x33, 0x80, 0xbc, 0x14, 0x02, 0x73, 0x5b, 0xd8, 0x7c, 0x7c, 0x0f, 0xb1, 0x9a, 0x39,
  476. 0x1b, 0x76, 0x76, 0xf5, 0xd2, 0xd0, 0x22, 0xde, 0xa9, 0x2f, 0xe1, 0x3d, 0x43, 0x81, 0xa6, 0x25,
  477. 0x78, 0xa7, 0x46, 0x1e, 0xf3, 0x94, 0x6f, 0x81, 0xf8, 0x23, 0xcb, 0x56, 0xf5, 0x96, 0xd8, 0x77,
  478. 0xc4, 0x69, 0x93, 0xb9, 0xa8, 0x5b, 0xf6, 0x67, 0x10, 0x2a, 0xa4, 0x2c, 0x2b, 0xa5, 0xa8, 0x9d,
  479. 0x79, 0xc3, 0x74, 0x68, 0x81, 0x5b, 0x29, 0x6a, 0xf2, 0x0d, 0x1c, 0x29, 0xac, 0x04, 0xcf, 0x69,
  480. 0x56, 0x09, 0x9a, 0x63, 0x81, 0xb2, 0xf5, 0x71, 0xda, 0x24, 0xee, 0x5a, 0x9c, 0x44, 0x30, 0x78,
  481. 0x46, 0xa5, 0xed, 0x6f, 0x85, 0x8e, 0xd2, 0x1e, 0xc9, 0x14, 0xba, 0xc6, 0x88, 0x08, 0x1c, 0x6a,
  482. 0xc3, 0x78, 0x00, 0xef, 0x2e, 0x8b, 0xca, 0xd4, 0xf1, 0x5f, 0x01, 0x7c, 0x58, 0xae, 0x2b, 0x54,
  483. 0x17, 0xa2, 0xcc, 0x9f, 0x2e, 0x37, 0x46, 0x51, 0x72, 0x0b, 0x13, 0x54, 0x54, 0xaf, 0x95, 0xed,
  484. 0x9d, 0x71, 0xf9, 0xe8, 0x24, 0x1d, 0x9d, 0x27, 0x7b, 0xe3, 0x71, 0x50, 0x33, 0xbf, 0xf4, 0x05,
  485. 0x0b, 0xc7, 0x4f, 0xc7, 0xb8, 0x7f, 0x3c, 0xf9, 0x15, 0xc6, 0xff, 0xca, 0x5b, 0x63, 0xec, 0xe8,
  486. 0x36, 0x56, 0xb9, 0xd8, 0x3a, 0x5e, 0x51, 0xc5, 0x4d, 0xdd, 0xac, 0x58, 0x73, 0xb2, 0x86, 0x34,
  487. 0x1b, 0xc4, 0x99, 0x8e, 0xba, 0xb3, 0xae, 0x1d, 0x62, 0x8f, 0x5c, 0x31, 0x1d, 0x7f, 0x0d, 0x1f,
  488. 0x2f, 0x04, 0x47, 0x69, 0x6e, 0xb8, 0x36, 0x28, 0x53, 0xfc, 0x6d, 0x8d, 0xda, 0xd8, 0x1b, 0x24,
  489. 0x2d, 0xb0, 0x59, 0x60, 0x17, 0xc7, 0xbf, 0xc3, 0xc4, 0x8f, 0xce, 0x4d, 0x99, 0xbb, 0xb9, 0xb1,
  490. 0xc2, 0xd8, 0xcd, 0xf5, 0x24, 0x1b, 0x1e, 0xac, 0x74, 0xe7, 0x70, 0xa5, 0x8f, 0x61, 0x28, 0xf1,
  491. 0x25, 0x7b, 0xde, 0xb5, 0x32, 0x90, 0xf8, 0x72, 0xcf, 0x99, 0xde, 0x4d, 0x06, 0xf3, 0xe9, 0x9e,
  492. 0x4b, 0x37, 0x93, 0xc1, 0x2c, 0xe5, 0xfc, 0x8f, 0x00, 0x06, 0x4b, 0xff, 0xfc, 0x90, 0x2b, 0x18,
  493. 0x2f, 0x51, 0xb2, 0xdd, 0x83, 0xf3, 0xc9, 0x9e, 0xba, 0x5b, 0xf4, 0xe4, 0xf4, 0x2d, 0xb4, 0xdd,
  494. 0xb6, 0xf8, 0xa3, 0x24, 0xf8, 0x2e, 0x20, 0x77, 0x30, 0xbe, 0x46, 0xac, 0x16, 0xa5, 0x94, 0x98,
  495. 0x1b, 0x64, 0xe4, 0x6c, 0xaf, 0xe8, 0x0d, 0x71, 0x4e, 0x8e, 0xff, 0xb3, 0xe7, 0xad, 0x22, 0xfe,
  496. 0x8b, 0xab, 0xbe, 0x7b, 0x1c, 0xbf, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x83, 0xd9, 0x6b,
  497. 0x2d, 0x05, 0x00, 0x00,
  498. }