chord.pb.go 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041
  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: chord.proto
  3. package models
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import (
  8. context "golang.org/x/net/context"
  9. grpc "google.golang.org/grpc"
  10. )
  11. // Reference imports to suppress errors if they are not otherwise used.
  12. var _ = proto.Marshal
  13. var _ = fmt.Errorf
  14. var _ = math.Inf
  15. // This is a compile-time assertion to ensure that this generated file
  16. // is compatible with the proto package it is being compiled against.
  17. // A compilation error at this line likely means your copy of the
  18. // proto package needs to be updated.
  19. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  20. // Node contains a node ID and address.
  21. type Node struct {
  22. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
  23. Addr string `protobuf:"bytes,2,opt,name=addr" json:"addr,omitempty"`
  24. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  25. XXX_unrecognized []byte `json:"-"`
  26. XXX_sizecache int32 `json:"-"`
  27. }
  28. func (m *Node) Reset() { *m = Node{} }
  29. func (m *Node) String() string { return proto.CompactTextString(m) }
  30. func (*Node) ProtoMessage() {}
  31. func (*Node) Descriptor() ([]byte, []int) {
  32. return fileDescriptor_chord_cec7e5290417eec1, []int{0}
  33. }
  34. func (m *Node) XXX_Unmarshal(b []byte) error {
  35. return xxx_messageInfo_Node.Unmarshal(m, b)
  36. }
  37. func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  38. return xxx_messageInfo_Node.Marshal(b, m, deterministic)
  39. }
  40. func (dst *Node) XXX_Merge(src proto.Message) {
  41. xxx_messageInfo_Node.Merge(dst, src)
  42. }
  43. func (m *Node) XXX_Size() int {
  44. return xxx_messageInfo_Node.Size(m)
  45. }
  46. func (m *Node) XXX_DiscardUnknown() {
  47. xxx_messageInfo_Node.DiscardUnknown(m)
  48. }
  49. var xxx_messageInfo_Node proto.InternalMessageInfo
  50. func (m *Node) GetId() []byte {
  51. if m != nil {
  52. return m.Id
  53. }
  54. return nil
  55. }
  56. func (m *Node) GetAddr() string {
  57. if m != nil {
  58. return m.Addr
  59. }
  60. return ""
  61. }
  62. type ER struct {
  63. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  64. XXX_unrecognized []byte `json:"-"`
  65. XXX_sizecache int32 `json:"-"`
  66. }
  67. func (m *ER) Reset() { *m = ER{} }
  68. func (m *ER) String() string { return proto.CompactTextString(m) }
  69. func (*ER) ProtoMessage() {}
  70. func (*ER) Descriptor() ([]byte, []int) {
  71. return fileDescriptor_chord_cec7e5290417eec1, []int{1}
  72. }
  73. func (m *ER) XXX_Unmarshal(b []byte) error {
  74. return xxx_messageInfo_ER.Unmarshal(m, b)
  75. }
  76. func (m *ER) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  77. return xxx_messageInfo_ER.Marshal(b, m, deterministic)
  78. }
  79. func (dst *ER) XXX_Merge(src proto.Message) {
  80. xxx_messageInfo_ER.Merge(dst, src)
  81. }
  82. func (m *ER) XXX_Size() int {
  83. return xxx_messageInfo_ER.Size(m)
  84. }
  85. func (m *ER) XXX_DiscardUnknown() {
  86. xxx_messageInfo_ER.DiscardUnknown(m)
  87. }
  88. var xxx_messageInfo_ER proto.InternalMessageInfo
  89. type ID struct {
  90. Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
  91. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  92. XXX_unrecognized []byte `json:"-"`
  93. XXX_sizecache int32 `json:"-"`
  94. }
  95. func (m *ID) Reset() { *m = ID{} }
  96. func (m *ID) String() string { return proto.CompactTextString(m) }
  97. func (*ID) ProtoMessage() {}
  98. func (*ID) Descriptor() ([]byte, []int) {
  99. return fileDescriptor_chord_cec7e5290417eec1, []int{2}
  100. }
  101. func (m *ID) XXX_Unmarshal(b []byte) error {
  102. return xxx_messageInfo_ID.Unmarshal(m, b)
  103. }
  104. func (m *ID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  105. return xxx_messageInfo_ID.Marshal(b, m, deterministic)
  106. }
  107. func (dst *ID) XXX_Merge(src proto.Message) {
  108. xxx_messageInfo_ID.Merge(dst, src)
  109. }
  110. func (m *ID) XXX_Size() int {
  111. return xxx_messageInfo_ID.Size(m)
  112. }
  113. func (m *ID) XXX_DiscardUnknown() {
  114. xxx_messageInfo_ID.DiscardUnknown(m)
  115. }
  116. var xxx_messageInfo_ID proto.InternalMessageInfo
  117. func (m *ID) GetId() []byte {
  118. if m != nil {
  119. return m.Id
  120. }
  121. return nil
  122. }
  123. type GetRequest struct {
  124. Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
  125. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  126. XXX_unrecognized []byte `json:"-"`
  127. XXX_sizecache int32 `json:"-"`
  128. }
  129. func (m *GetRequest) Reset() { *m = GetRequest{} }
  130. func (m *GetRequest) String() string { return proto.CompactTextString(m) }
  131. func (*GetRequest) ProtoMessage() {}
  132. func (*GetRequest) Descriptor() ([]byte, []int) {
  133. return fileDescriptor_chord_cec7e5290417eec1, []int{3}
  134. }
  135. func (m *GetRequest) XXX_Unmarshal(b []byte) error {
  136. return xxx_messageInfo_GetRequest.Unmarshal(m, b)
  137. }
  138. func (m *GetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  139. return xxx_messageInfo_GetRequest.Marshal(b, m, deterministic)
  140. }
  141. func (dst *GetRequest) XXX_Merge(src proto.Message) {
  142. xxx_messageInfo_GetRequest.Merge(dst, src)
  143. }
  144. func (m *GetRequest) XXX_Size() int {
  145. return xxx_messageInfo_GetRequest.Size(m)
  146. }
  147. func (m *GetRequest) XXX_DiscardUnknown() {
  148. xxx_messageInfo_GetRequest.DiscardUnknown(m)
  149. }
  150. var xxx_messageInfo_GetRequest proto.InternalMessageInfo
  151. func (m *GetRequest) GetKey() string {
  152. if m != nil {
  153. return m.Key
  154. }
  155. return ""
  156. }
  157. type GetResponse struct {
  158. Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
  159. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  160. XXX_unrecognized []byte `json:"-"`
  161. XXX_sizecache int32 `json:"-"`
  162. }
  163. func (m *GetResponse) Reset() { *m = GetResponse{} }
  164. func (m *GetResponse) String() string { return proto.CompactTextString(m) }
  165. func (*GetResponse) ProtoMessage() {}
  166. func (*GetResponse) Descriptor() ([]byte, []int) {
  167. return fileDescriptor_chord_cec7e5290417eec1, []int{4}
  168. }
  169. func (m *GetResponse) XXX_Unmarshal(b []byte) error {
  170. return xxx_messageInfo_GetResponse.Unmarshal(m, b)
  171. }
  172. func (m *GetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  173. return xxx_messageInfo_GetResponse.Marshal(b, m, deterministic)
  174. }
  175. func (dst *GetResponse) XXX_Merge(src proto.Message) {
  176. xxx_messageInfo_GetResponse.Merge(dst, src)
  177. }
  178. func (m *GetResponse) XXX_Size() int {
  179. return xxx_messageInfo_GetResponse.Size(m)
  180. }
  181. func (m *GetResponse) XXX_DiscardUnknown() {
  182. xxx_messageInfo_GetResponse.DiscardUnknown(m)
  183. }
  184. var xxx_messageInfo_GetResponse proto.InternalMessageInfo
  185. func (m *GetResponse) GetValue() []byte {
  186. if m != nil {
  187. return m.Value
  188. }
  189. return nil
  190. }
  191. type SetRequest struct {
  192. Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
  193. Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
  194. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  195. XXX_unrecognized []byte `json:"-"`
  196. XXX_sizecache int32 `json:"-"`
  197. }
  198. func (m *SetRequest) Reset() { *m = SetRequest{} }
  199. func (m *SetRequest) String() string { return proto.CompactTextString(m) }
  200. func (*SetRequest) ProtoMessage() {}
  201. func (*SetRequest) Descriptor() ([]byte, []int) {
  202. return fileDescriptor_chord_cec7e5290417eec1, []int{5}
  203. }
  204. func (m *SetRequest) XXX_Unmarshal(b []byte) error {
  205. return xxx_messageInfo_SetRequest.Unmarshal(m, b)
  206. }
  207. func (m *SetRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  208. return xxx_messageInfo_SetRequest.Marshal(b, m, deterministic)
  209. }
  210. func (dst *SetRequest) XXX_Merge(src proto.Message) {
  211. xxx_messageInfo_SetRequest.Merge(dst, src)
  212. }
  213. func (m *SetRequest) XXX_Size() int {
  214. return xxx_messageInfo_SetRequest.Size(m)
  215. }
  216. func (m *SetRequest) XXX_DiscardUnknown() {
  217. xxx_messageInfo_SetRequest.DiscardUnknown(m)
  218. }
  219. var xxx_messageInfo_SetRequest proto.InternalMessageInfo
  220. func (m *SetRequest) GetKey() string {
  221. if m != nil {
  222. return m.Key
  223. }
  224. return ""
  225. }
  226. func (m *SetRequest) GetValue() string {
  227. if m != nil {
  228. return m.Value
  229. }
  230. return ""
  231. }
  232. type SetResponse struct {
  233. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  234. XXX_unrecognized []byte `json:"-"`
  235. XXX_sizecache int32 `json:"-"`
  236. }
  237. func (m *SetResponse) Reset() { *m = SetResponse{} }
  238. func (m *SetResponse) String() string { return proto.CompactTextString(m) }
  239. func (*SetResponse) ProtoMessage() {}
  240. func (*SetResponse) Descriptor() ([]byte, []int) {
  241. return fileDescriptor_chord_cec7e5290417eec1, []int{6}
  242. }
  243. func (m *SetResponse) XXX_Unmarshal(b []byte) error {
  244. return xxx_messageInfo_SetResponse.Unmarshal(m, b)
  245. }
  246. func (m *SetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  247. return xxx_messageInfo_SetResponse.Marshal(b, m, deterministic)
  248. }
  249. func (dst *SetResponse) XXX_Merge(src proto.Message) {
  250. xxx_messageInfo_SetResponse.Merge(dst, src)
  251. }
  252. func (m *SetResponse) XXX_Size() int {
  253. return xxx_messageInfo_SetResponse.Size(m)
  254. }
  255. func (m *SetResponse) XXX_DiscardUnknown() {
  256. xxx_messageInfo_SetResponse.DiscardUnknown(m)
  257. }
  258. var xxx_messageInfo_SetResponse proto.InternalMessageInfo
  259. type DeleteRequest struct {
  260. Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
  261. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  262. XXX_unrecognized []byte `json:"-"`
  263. XXX_sizecache int32 `json:"-"`
  264. }
  265. func (m *DeleteRequest) Reset() { *m = DeleteRequest{} }
  266. func (m *DeleteRequest) String() string { return proto.CompactTextString(m) }
  267. func (*DeleteRequest) ProtoMessage() {}
  268. func (*DeleteRequest) Descriptor() ([]byte, []int) {
  269. return fileDescriptor_chord_cec7e5290417eec1, []int{7}
  270. }
  271. func (m *DeleteRequest) XXX_Unmarshal(b []byte) error {
  272. return xxx_messageInfo_DeleteRequest.Unmarshal(m, b)
  273. }
  274. func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  275. return xxx_messageInfo_DeleteRequest.Marshal(b, m, deterministic)
  276. }
  277. func (dst *DeleteRequest) XXX_Merge(src proto.Message) {
  278. xxx_messageInfo_DeleteRequest.Merge(dst, src)
  279. }
  280. func (m *DeleteRequest) XXX_Size() int {
  281. return xxx_messageInfo_DeleteRequest.Size(m)
  282. }
  283. func (m *DeleteRequest) XXX_DiscardUnknown() {
  284. xxx_messageInfo_DeleteRequest.DiscardUnknown(m)
  285. }
  286. var xxx_messageInfo_DeleteRequest proto.InternalMessageInfo
  287. func (m *DeleteRequest) GetKey() string {
  288. if m != nil {
  289. return m.Key
  290. }
  291. return ""
  292. }
  293. type DeleteResponse struct {
  294. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  295. XXX_unrecognized []byte `json:"-"`
  296. XXX_sizecache int32 `json:"-"`
  297. }
  298. func (m *DeleteResponse) Reset() { *m = DeleteResponse{} }
  299. func (m *DeleteResponse) String() string { return proto.CompactTextString(m) }
  300. func (*DeleteResponse) ProtoMessage() {}
  301. func (*DeleteResponse) Descriptor() ([]byte, []int) {
  302. return fileDescriptor_chord_cec7e5290417eec1, []int{8}
  303. }
  304. func (m *DeleteResponse) XXX_Unmarshal(b []byte) error {
  305. return xxx_messageInfo_DeleteResponse.Unmarshal(m, b)
  306. }
  307. func (m *DeleteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  308. return xxx_messageInfo_DeleteResponse.Marshal(b, m, deterministic)
  309. }
  310. func (dst *DeleteResponse) XXX_Merge(src proto.Message) {
  311. xxx_messageInfo_DeleteResponse.Merge(dst, src)
  312. }
  313. func (m *DeleteResponse) XXX_Size() int {
  314. return xxx_messageInfo_DeleteResponse.Size(m)
  315. }
  316. func (m *DeleteResponse) XXX_DiscardUnknown() {
  317. xxx_messageInfo_DeleteResponse.DiscardUnknown(m)
  318. }
  319. var xxx_messageInfo_DeleteResponse proto.InternalMessageInfo
  320. type MultiDeleteRequest struct {
  321. Keys []string `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
  322. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  323. XXX_unrecognized []byte `json:"-"`
  324. XXX_sizecache int32 `json:"-"`
  325. }
  326. func (m *MultiDeleteRequest) Reset() { *m = MultiDeleteRequest{} }
  327. func (m *MultiDeleteRequest) String() string { return proto.CompactTextString(m) }
  328. func (*MultiDeleteRequest) ProtoMessage() {}
  329. func (*MultiDeleteRequest) Descriptor() ([]byte, []int) {
  330. return fileDescriptor_chord_cec7e5290417eec1, []int{9}
  331. }
  332. func (m *MultiDeleteRequest) XXX_Unmarshal(b []byte) error {
  333. return xxx_messageInfo_MultiDeleteRequest.Unmarshal(m, b)
  334. }
  335. func (m *MultiDeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  336. return xxx_messageInfo_MultiDeleteRequest.Marshal(b, m, deterministic)
  337. }
  338. func (dst *MultiDeleteRequest) XXX_Merge(src proto.Message) {
  339. xxx_messageInfo_MultiDeleteRequest.Merge(dst, src)
  340. }
  341. func (m *MultiDeleteRequest) XXX_Size() int {
  342. return xxx_messageInfo_MultiDeleteRequest.Size(m)
  343. }
  344. func (m *MultiDeleteRequest) XXX_DiscardUnknown() {
  345. xxx_messageInfo_MultiDeleteRequest.DiscardUnknown(m)
  346. }
  347. var xxx_messageInfo_MultiDeleteRequest proto.InternalMessageInfo
  348. func (m *MultiDeleteRequest) GetKeys() []string {
  349. if m != nil {
  350. return m.Keys
  351. }
  352. return nil
  353. }
  354. type RequestKeysRequest struct {
  355. From []byte `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"`
  356. To []byte `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"`
  357. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  358. XXX_unrecognized []byte `json:"-"`
  359. XXX_sizecache int32 `json:"-"`
  360. }
  361. func (m *RequestKeysRequest) Reset() { *m = RequestKeysRequest{} }
  362. func (m *RequestKeysRequest) String() string { return proto.CompactTextString(m) }
  363. func (*RequestKeysRequest) ProtoMessage() {}
  364. func (*RequestKeysRequest) Descriptor() ([]byte, []int) {
  365. return fileDescriptor_chord_cec7e5290417eec1, []int{10}
  366. }
  367. func (m *RequestKeysRequest) XXX_Unmarshal(b []byte) error {
  368. return xxx_messageInfo_RequestKeysRequest.Unmarshal(m, b)
  369. }
  370. func (m *RequestKeysRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  371. return xxx_messageInfo_RequestKeysRequest.Marshal(b, m, deterministic)
  372. }
  373. func (dst *RequestKeysRequest) XXX_Merge(src proto.Message) {
  374. xxx_messageInfo_RequestKeysRequest.Merge(dst, src)
  375. }
  376. func (m *RequestKeysRequest) XXX_Size() int {
  377. return xxx_messageInfo_RequestKeysRequest.Size(m)
  378. }
  379. func (m *RequestKeysRequest) XXX_DiscardUnknown() {
  380. xxx_messageInfo_RequestKeysRequest.DiscardUnknown(m)
  381. }
  382. var xxx_messageInfo_RequestKeysRequest proto.InternalMessageInfo
  383. func (m *RequestKeysRequest) GetFrom() []byte {
  384. if m != nil {
  385. return m.From
  386. }
  387. return nil
  388. }
  389. func (m *RequestKeysRequest) GetTo() []byte {
  390. if m != nil {
  391. return m.To
  392. }
  393. return nil
  394. }
  395. type KV struct {
  396. Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
  397. Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
  398. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  399. XXX_unrecognized []byte `json:"-"`
  400. XXX_sizecache int32 `json:"-"`
  401. }
  402. func (m *KV) Reset() { *m = KV{} }
  403. func (m *KV) String() string { return proto.CompactTextString(m) }
  404. func (*KV) ProtoMessage() {}
  405. func (*KV) Descriptor() ([]byte, []int) {
  406. return fileDescriptor_chord_cec7e5290417eec1, []int{11}
  407. }
  408. func (m *KV) XXX_Unmarshal(b []byte) error {
  409. return xxx_messageInfo_KV.Unmarshal(m, b)
  410. }
  411. func (m *KV) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  412. return xxx_messageInfo_KV.Marshal(b, m, deterministic)
  413. }
  414. func (dst *KV) XXX_Merge(src proto.Message) {
  415. xxx_messageInfo_KV.Merge(dst, src)
  416. }
  417. func (m *KV) XXX_Size() int {
  418. return xxx_messageInfo_KV.Size(m)
  419. }
  420. func (m *KV) XXX_DiscardUnknown() {
  421. xxx_messageInfo_KV.DiscardUnknown(m)
  422. }
  423. var xxx_messageInfo_KV proto.InternalMessageInfo
  424. func (m *KV) GetKey() string {
  425. if m != nil {
  426. return m.Key
  427. }
  428. return ""
  429. }
  430. func (m *KV) GetValue() string {
  431. if m != nil {
  432. return m.Value
  433. }
  434. return ""
  435. }
  436. type RequestKeysResponse struct {
  437. Values []*KV `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
  438. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  439. XXX_unrecognized []byte `json:"-"`
  440. XXX_sizecache int32 `json:"-"`
  441. }
  442. func (m *RequestKeysResponse) Reset() { *m = RequestKeysResponse{} }
  443. func (m *RequestKeysResponse) String() string { return proto.CompactTextString(m) }
  444. func (*RequestKeysResponse) ProtoMessage() {}
  445. func (*RequestKeysResponse) Descriptor() ([]byte, []int) {
  446. return fileDescriptor_chord_cec7e5290417eec1, []int{12}
  447. }
  448. func (m *RequestKeysResponse) XXX_Unmarshal(b []byte) error {
  449. return xxx_messageInfo_RequestKeysResponse.Unmarshal(m, b)
  450. }
  451. func (m *RequestKeysResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  452. return xxx_messageInfo_RequestKeysResponse.Marshal(b, m, deterministic)
  453. }
  454. func (dst *RequestKeysResponse) XXX_Merge(src proto.Message) {
  455. xxx_messageInfo_RequestKeysResponse.Merge(dst, src)
  456. }
  457. func (m *RequestKeysResponse) XXX_Size() int {
  458. return xxx_messageInfo_RequestKeysResponse.Size(m)
  459. }
  460. func (m *RequestKeysResponse) XXX_DiscardUnknown() {
  461. xxx_messageInfo_RequestKeysResponse.DiscardUnknown(m)
  462. }
  463. var xxx_messageInfo_RequestKeysResponse proto.InternalMessageInfo
  464. func (m *RequestKeysResponse) GetValues() []*KV {
  465. if m != nil {
  466. return m.Values
  467. }
  468. return nil
  469. }
  470. func init() {
  471. proto.RegisterType((*Node)(nil), "internal.Node")
  472. proto.RegisterType((*ER)(nil), "internal.ER")
  473. proto.RegisterType((*ID)(nil), "internal.ID")
  474. proto.RegisterType((*GetRequest)(nil), "internal.GetRequest")
  475. proto.RegisterType((*GetResponse)(nil), "internal.GetResponse")
  476. proto.RegisterType((*SetRequest)(nil), "internal.SetRequest")
  477. proto.RegisterType((*SetResponse)(nil), "internal.SetResponse")
  478. proto.RegisterType((*DeleteRequest)(nil), "internal.DeleteRequest")
  479. proto.RegisterType((*DeleteResponse)(nil), "internal.DeleteResponse")
  480. proto.RegisterType((*MultiDeleteRequest)(nil), "internal.MultiDeleteRequest")
  481. proto.RegisterType((*RequestKeysRequest)(nil), "internal.RequestKeysRequest")
  482. proto.RegisterType((*KV)(nil), "internal.KV")
  483. proto.RegisterType((*RequestKeysResponse)(nil), "internal.RequestKeysResponse")
  484. }
  485. // Reference imports to suppress errors if they are not otherwise used.
  486. var _ context.Context
  487. var _ grpc.ClientConn
  488. // This is a compile-time assertion to ensure that this generated file
  489. // is compatible with the grpc package it is being compiled against.
  490. const _ = grpc.SupportPackageIsVersion4
  491. // Client API for Chord service
  492. type ChordClient interface {
  493. // GetPredecessor returns the node believed to be the current predecessor.
  494. GetPredecessor(ctx context.Context, in *ER, opts ...grpc.CallOption) (*Node, error)
  495. // GetSuccessor returns the node believed to be the current successor.
  496. GetSuccessor(ctx context.Context, in *ER, opts ...grpc.CallOption) (*Node, error)
  497. // Notify notifies Chord that Node thinks it is our predecessor. This has
  498. // the potential to initiate the transferring of keys.
  499. Notify(ctx context.Context, in *Node, opts ...grpc.CallOption) (*ER, error)
  500. // FindSuccessor finds the node the succedes ID. May initiate RPC calls to
  501. // other nodes.
  502. FindSuccessor(ctx context.Context, in *ID, opts ...grpc.CallOption) (*Node, error)
  503. // CheckPredecessor checkes whether predecessor has failed.
  504. CheckPredecessor(ctx context.Context, in *ID, opts ...grpc.CallOption) (*ER, error)
  505. // SetPredecessor sets predecessor for a node.
  506. SetPredecessor(ctx context.Context, in *Node, opts ...grpc.CallOption) (*ER, error)
  507. // SetPredecessor sets predecessor for a node.
  508. SetSuccessor(ctx context.Context, in *Node, opts ...grpc.CallOption) (*ER, error)
  509. // Get returns the value in Chord ring for the given key.
  510. XGet(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
  511. // Set writes a key value pair to the Chord ring.
  512. XSet(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error)
  513. // Delete returns the value in Chord ring for the given key.
  514. XDelete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
  515. // Multiple delete returns the value in Chord ring between the given keys.
  516. XMultiDelete(ctx context.Context, in *MultiDeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
  517. // RequestKeys returns the keys between given range from the Chord ring.
  518. XRequestKeys(ctx context.Context, in *RequestKeysRequest, opts ...grpc.CallOption) (*RequestKeysResponse, error)
  519. }
  520. type chordClient struct {
  521. cc *grpc.ClientConn
  522. }
  523. func NewChordClient(cc *grpc.ClientConn) ChordClient {
  524. return &chordClient{cc}
  525. }
  526. func (c *chordClient) GetPredecessor(ctx context.Context, in *ER, opts ...grpc.CallOption) (*Node, error) {
  527. out := new(Node)
  528. err := grpc.Invoke(ctx, "/internal.Chord/GetPredecessor", in, out, c.cc, opts...)
  529. if err != nil {
  530. return nil, err
  531. }
  532. return out, nil
  533. }
  534. func (c *chordClient) GetSuccessor(ctx context.Context, in *ER, opts ...grpc.CallOption) (*Node, error) {
  535. out := new(Node)
  536. err := grpc.Invoke(ctx, "/internal.Chord/GetSuccessor", in, out, c.cc, opts...)
  537. if err != nil {
  538. return nil, err
  539. }
  540. return out, nil
  541. }
  542. func (c *chordClient) Notify(ctx context.Context, in *Node, opts ...grpc.CallOption) (*ER, error) {
  543. out := new(ER)
  544. err := grpc.Invoke(ctx, "/internal.Chord/Notify", in, out, c.cc, opts...)
  545. if err != nil {
  546. return nil, err
  547. }
  548. return out, nil
  549. }
  550. func (c *chordClient) FindSuccessor(ctx context.Context, in *ID, opts ...grpc.CallOption) (*Node, error) {
  551. out := new(Node)
  552. err := grpc.Invoke(ctx, "/internal.Chord/FindSuccessor", in, out, c.cc, opts...)
  553. if err != nil {
  554. return nil, err
  555. }
  556. return out, nil
  557. }
  558. func (c *chordClient) CheckPredecessor(ctx context.Context, in *ID, opts ...grpc.CallOption) (*ER, error) {
  559. out := new(ER)
  560. err := grpc.Invoke(ctx, "/internal.Chord/CheckPredecessor", in, out, c.cc, opts...)
  561. if err != nil {
  562. return nil, err
  563. }
  564. return out, nil
  565. }
  566. func (c *chordClient) SetPredecessor(ctx context.Context, in *Node, opts ...grpc.CallOption) (*ER, error) {
  567. out := new(ER)
  568. err := grpc.Invoke(ctx, "/internal.Chord/SetPredecessor", in, out, c.cc, opts...)
  569. if err != nil {
  570. return nil, err
  571. }
  572. return out, nil
  573. }
  574. func (c *chordClient) SetSuccessor(ctx context.Context, in *Node, opts ...grpc.CallOption) (*ER, error) {
  575. out := new(ER)
  576. err := grpc.Invoke(ctx, "/internal.Chord/SetSuccessor", in, out, c.cc, opts...)
  577. if err != nil {
  578. return nil, err
  579. }
  580. return out, nil
  581. }
  582. func (c *chordClient) XGet(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
  583. out := new(GetResponse)
  584. err := grpc.Invoke(ctx, "/internal.Chord/XGet", in, out, c.cc, opts...)
  585. if err != nil {
  586. return nil, err
  587. }
  588. return out, nil
  589. }
  590. func (c *chordClient) XSet(ctx context.Context, in *SetRequest, opts ...grpc.CallOption) (*SetResponse, error) {
  591. out := new(SetResponse)
  592. err := grpc.Invoke(ctx, "/internal.Chord/XSet", in, out, c.cc, opts...)
  593. if err != nil {
  594. return nil, err
  595. }
  596. return out, nil
  597. }
  598. func (c *chordClient) XDelete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
  599. out := new(DeleteResponse)
  600. err := grpc.Invoke(ctx, "/internal.Chord/XDelete", in, out, c.cc, opts...)
  601. if err != nil {
  602. return nil, err
  603. }
  604. return out, nil
  605. }
  606. func (c *chordClient) XMultiDelete(ctx context.Context, in *MultiDeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
  607. out := new(DeleteResponse)
  608. err := grpc.Invoke(ctx, "/internal.Chord/XMultiDelete", in, out, c.cc, opts...)
  609. if err != nil {
  610. return nil, err
  611. }
  612. return out, nil
  613. }
  614. func (c *chordClient) XRequestKeys(ctx context.Context, in *RequestKeysRequest, opts ...grpc.CallOption) (*RequestKeysResponse, error) {
  615. out := new(RequestKeysResponse)
  616. err := grpc.Invoke(ctx, "/internal.Chord/XRequestKeys", in, out, c.cc, opts...)
  617. if err != nil {
  618. return nil, err
  619. }
  620. return out, nil
  621. }
  622. // Server API for Chord service
  623. type ChordServer interface {
  624. // GetPredecessor returns the node believed to be the current predecessor.
  625. GetPredecessor(context.Context, *ER) (*Node, error)
  626. // GetSuccessor returns the node believed to be the current successor.
  627. GetSuccessor(context.Context, *ER) (*Node, error)
  628. // Notify notifies Chord that Node thinks it is our predecessor. This has
  629. // the potential to initiate the transferring of keys.
  630. Notify(context.Context, *Node) (*ER, error)
  631. // FindSuccessor finds the node the succedes ID. May initiate RPC calls to
  632. // other nodes.
  633. FindSuccessor(context.Context, *ID) (*Node, error)
  634. // CheckPredecessor checkes whether predecessor has failed.
  635. CheckPredecessor(context.Context, *ID) (*ER, error)
  636. // SetPredecessor sets predecessor for a node.
  637. SetPredecessor(context.Context, *Node) (*ER, error)
  638. // SetPredecessor sets predecessor for a node.
  639. SetSuccessor(context.Context, *Node) (*ER, error)
  640. // Get returns the value in Chord ring for the given key.
  641. XGet(context.Context, *GetRequest) (*GetResponse, error)
  642. // Set writes a key value pair to the Chord ring.
  643. XSet(context.Context, *SetRequest) (*SetResponse, error)
  644. // Delete returns the value in Chord ring for the given key.
  645. XDelete(context.Context, *DeleteRequest) (*DeleteResponse, error)
  646. // Multiple delete returns the value in Chord ring between the given keys.
  647. XMultiDelete(context.Context, *MultiDeleteRequest) (*DeleteResponse, error)
  648. // RequestKeys returns the keys between given range from the Chord ring.
  649. XRequestKeys(context.Context, *RequestKeysRequest) (*RequestKeysResponse, error)
  650. }
  651. func RegisterChordServer(s *grpc.Server, srv ChordServer) {
  652. s.RegisterService(&_Chord_serviceDesc, srv)
  653. }
  654. func _Chord_GetPredecessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  655. in := new(ER)
  656. if err := dec(in); err != nil {
  657. return nil, err
  658. }
  659. if interceptor == nil {
  660. return srv.(ChordServer).GetPredecessor(ctx, in)
  661. }
  662. info := &grpc.UnaryServerInfo{
  663. Server: srv,
  664. FullMethod: "/internal.Chord/GetPredecessor",
  665. }
  666. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  667. return srv.(ChordServer).GetPredecessor(ctx, req.(*ER))
  668. }
  669. return interceptor(ctx, in, info, handler)
  670. }
  671. func _Chord_GetSuccessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  672. in := new(ER)
  673. if err := dec(in); err != nil {
  674. return nil, err
  675. }
  676. if interceptor == nil {
  677. return srv.(ChordServer).GetSuccessor(ctx, in)
  678. }
  679. info := &grpc.UnaryServerInfo{
  680. Server: srv,
  681. FullMethod: "/internal.Chord/GetSuccessor",
  682. }
  683. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  684. return srv.(ChordServer).GetSuccessor(ctx, req.(*ER))
  685. }
  686. return interceptor(ctx, in, info, handler)
  687. }
  688. func _Chord_Notify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  689. in := new(Node)
  690. if err := dec(in); err != nil {
  691. return nil, err
  692. }
  693. if interceptor == nil {
  694. return srv.(ChordServer).Notify(ctx, in)
  695. }
  696. info := &grpc.UnaryServerInfo{
  697. Server: srv,
  698. FullMethod: "/internal.Chord/Notify",
  699. }
  700. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  701. return srv.(ChordServer).Notify(ctx, req.(*Node))
  702. }
  703. return interceptor(ctx, in, info, handler)
  704. }
  705. func _Chord_FindSuccessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  706. in := new(ID)
  707. if err := dec(in); err != nil {
  708. return nil, err
  709. }
  710. if interceptor == nil {
  711. return srv.(ChordServer).FindSuccessor(ctx, in)
  712. }
  713. info := &grpc.UnaryServerInfo{
  714. Server: srv,
  715. FullMethod: "/internal.Chord/FindSuccessor",
  716. }
  717. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  718. return srv.(ChordServer).FindSuccessor(ctx, req.(*ID))
  719. }
  720. return interceptor(ctx, in, info, handler)
  721. }
  722. func _Chord_CheckPredecessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  723. in := new(ID)
  724. if err := dec(in); err != nil {
  725. return nil, err
  726. }
  727. if interceptor == nil {
  728. return srv.(ChordServer).CheckPredecessor(ctx, in)
  729. }
  730. info := &grpc.UnaryServerInfo{
  731. Server: srv,
  732. FullMethod: "/internal.Chord/CheckPredecessor",
  733. }
  734. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  735. return srv.(ChordServer).CheckPredecessor(ctx, req.(*ID))
  736. }
  737. return interceptor(ctx, in, info, handler)
  738. }
  739. func _Chord_SetPredecessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  740. in := new(Node)
  741. if err := dec(in); err != nil {
  742. return nil, err
  743. }
  744. if interceptor == nil {
  745. return srv.(ChordServer).SetPredecessor(ctx, in)
  746. }
  747. info := &grpc.UnaryServerInfo{
  748. Server: srv,
  749. FullMethod: "/internal.Chord/SetPredecessor",
  750. }
  751. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  752. return srv.(ChordServer).SetPredecessor(ctx, req.(*Node))
  753. }
  754. return interceptor(ctx, in, info, handler)
  755. }
  756. func _Chord_SetSuccessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  757. in := new(Node)
  758. if err := dec(in); err != nil {
  759. return nil, err
  760. }
  761. if interceptor == nil {
  762. return srv.(ChordServer).SetSuccessor(ctx, in)
  763. }
  764. info := &grpc.UnaryServerInfo{
  765. Server: srv,
  766. FullMethod: "/internal.Chord/SetSuccessor",
  767. }
  768. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  769. return srv.(ChordServer).SetSuccessor(ctx, req.(*Node))
  770. }
  771. return interceptor(ctx, in, info, handler)
  772. }
  773. func _Chord_XGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  774. in := new(GetRequest)
  775. if err := dec(in); err != nil {
  776. return nil, err
  777. }
  778. if interceptor == nil {
  779. return srv.(ChordServer).XGet(ctx, in)
  780. }
  781. info := &grpc.UnaryServerInfo{
  782. Server: srv,
  783. FullMethod: "/internal.Chord/XGet",
  784. }
  785. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  786. return srv.(ChordServer).XGet(ctx, req.(*GetRequest))
  787. }
  788. return interceptor(ctx, in, info, handler)
  789. }
  790. func _Chord_XSet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  791. in := new(SetRequest)
  792. if err := dec(in); err != nil {
  793. return nil, err
  794. }
  795. if interceptor == nil {
  796. return srv.(ChordServer).XSet(ctx, in)
  797. }
  798. info := &grpc.UnaryServerInfo{
  799. Server: srv,
  800. FullMethod: "/internal.Chord/XSet",
  801. }
  802. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  803. return srv.(ChordServer).XSet(ctx, req.(*SetRequest))
  804. }
  805. return interceptor(ctx, in, info, handler)
  806. }
  807. func _Chord_XDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  808. in := new(DeleteRequest)
  809. if err := dec(in); err != nil {
  810. return nil, err
  811. }
  812. if interceptor == nil {
  813. return srv.(ChordServer).XDelete(ctx, in)
  814. }
  815. info := &grpc.UnaryServerInfo{
  816. Server: srv,
  817. FullMethod: "/internal.Chord/XDelete",
  818. }
  819. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  820. return srv.(ChordServer).XDelete(ctx, req.(*DeleteRequest))
  821. }
  822. return interceptor(ctx, in, info, handler)
  823. }
  824. func _Chord_XMultiDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  825. in := new(MultiDeleteRequest)
  826. if err := dec(in); err != nil {
  827. return nil, err
  828. }
  829. if interceptor == nil {
  830. return srv.(ChordServer).XMultiDelete(ctx, in)
  831. }
  832. info := &grpc.UnaryServerInfo{
  833. Server: srv,
  834. FullMethod: "/internal.Chord/XMultiDelete",
  835. }
  836. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  837. return srv.(ChordServer).XMultiDelete(ctx, req.(*MultiDeleteRequest))
  838. }
  839. return interceptor(ctx, in, info, handler)
  840. }
  841. func _Chord_XRequestKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  842. in := new(RequestKeysRequest)
  843. if err := dec(in); err != nil {
  844. return nil, err
  845. }
  846. if interceptor == nil {
  847. return srv.(ChordServer).XRequestKeys(ctx, in)
  848. }
  849. info := &grpc.UnaryServerInfo{
  850. Server: srv,
  851. FullMethod: "/internal.Chord/XRequestKeys",
  852. }
  853. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  854. return srv.(ChordServer).XRequestKeys(ctx, req.(*RequestKeysRequest))
  855. }
  856. return interceptor(ctx, in, info, handler)
  857. }
  858. var _Chord_serviceDesc = grpc.ServiceDesc{
  859. ServiceName: "internal.Chord",
  860. HandlerType: (*ChordServer)(nil),
  861. Methods: []grpc.MethodDesc{
  862. {
  863. MethodName: "GetPredecessor",
  864. Handler: _Chord_GetPredecessor_Handler,
  865. },
  866. {
  867. MethodName: "GetSuccessor",
  868. Handler: _Chord_GetSuccessor_Handler,
  869. },
  870. {
  871. MethodName: "Notify",
  872. Handler: _Chord_Notify_Handler,
  873. },
  874. {
  875. MethodName: "FindSuccessor",
  876. Handler: _Chord_FindSuccessor_Handler,
  877. },
  878. {
  879. MethodName: "CheckPredecessor",
  880. Handler: _Chord_CheckPredecessor_Handler,
  881. },
  882. {
  883. MethodName: "SetPredecessor",
  884. Handler: _Chord_SetPredecessor_Handler,
  885. },
  886. {
  887. MethodName: "SetSuccessor",
  888. Handler: _Chord_SetSuccessor_Handler,
  889. },
  890. {
  891. MethodName: "XGet",
  892. Handler: _Chord_XGet_Handler,
  893. },
  894. {
  895. MethodName: "XSet",
  896. Handler: _Chord_XSet_Handler,
  897. },
  898. {
  899. MethodName: "XDelete",
  900. Handler: _Chord_XDelete_Handler,
  901. },
  902. {
  903. MethodName: "XMultiDelete",
  904. Handler: _Chord_XMultiDelete_Handler,
  905. },
  906. {
  907. MethodName: "XRequestKeys",
  908. Handler: _Chord_XRequestKeys_Handler,
  909. },
  910. },
  911. Streams: []grpc.StreamDesc{},
  912. Metadata: "chord.proto",
  913. }
  914. func init() { proto.RegisterFile("chord.proto", fileDescriptor_chord_cec7e5290417eec1) }
  915. var fileDescriptor_chord_cec7e5290417eec1 = []byte{
  916. // 452 bytes of a gzipped FileDescriptorProto
  917. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xdf, 0x6b, 0xd3, 0x50,
  918. 0x14, 0xa6, 0x59, 0x5a, 0xdd, 0xd7, 0x34, 0x94, 0x63, 0xc5, 0x12, 0x54, 0xea, 0x55, 0xa4, 0x48,
  919. 0xcd, 0xc3, 0xe6, 0x83, 0xa0, 0x6f, 0xeb, 0x56, 0x4a, 0x71, 0x48, 0x02, 0xa3, 0xaf, 0xb5, 0x39,
  920. 0x63, 0xa1, 0xb5, 0x77, 0x26, 0xb7, 0x42, 0xff, 0x02, 0xff, 0x6d, 0xc9, 0xcd, 0x1d, 0x49, 0xda,
  921. 0x35, 0xec, 0xed, 0xdc, 0xfb, 0xfd, 0xc8, 0x39, 0xf7, 0x7c, 0x04, 0xed, 0xe5, 0x9d, 0x4c, 0x22,
  922. 0xff, 0x3e, 0x91, 0x4a, 0xd2, 0xf3, 0x78, 0xa3, 0x38, 0xd9, 0x2c, 0xd6, 0xe2, 0x13, 0xec, 0x6b,
  923. 0x19, 0x31, 0xb9, 0xb0, 0xe2, 0xa8, 0xdf, 0x18, 0x34, 0x86, 0x4e, 0x60, 0xc5, 0x11, 0x11, 0xec,
  924. 0x45, 0x14, 0x25, 0x7d, 0x6b, 0xd0, 0x18, 0x9e, 0x06, 0xba, 0x16, 0x36, 0xac, 0xcb, 0x40, 0xf4,
  925. 0x60, 0x4d, 0xc7, 0xfb, 0x7c, 0xf1, 0x16, 0x98, 0xb0, 0x0a, 0xf8, 0xcf, 0x96, 0x53, 0x45, 0x5d,
  926. 0x9c, 0xac, 0x78, 0xa7, 0xe1, 0xd3, 0x20, 0x2b, 0xc5, 0x7b, 0xb4, 0x35, 0x9e, 0xde, 0xcb, 0x4d,
  927. 0xca, 0xd4, 0x43, 0xf3, 0xef, 0x62, 0xbd, 0x65, 0xe3, 0x90, 0x1f, 0xc4, 0x17, 0x20, 0xac, 0x31,
  928. 0x29, 0x54, 0x79, 0x57, 0x46, 0xd5, 0x41, 0x3b, 0x2c, 0xac, 0xc5, 0x3b, 0x74, 0xc6, 0xbc, 0x66,
  929. 0xc5, 0xc7, 0x9b, 0xe9, 0xc2, 0x7d, 0xa0, 0x18, 0xd1, 0x10, 0xf4, 0x63, 0xbb, 0x56, 0x71, 0x55,
  930. 0x49, 0xb0, 0x57, 0xbc, 0x4b, 0xfb, 0x8d, 0xc1, 0x49, 0xf6, 0x08, 0x59, 0x2d, 0xbe, 0x82, 0x0c,
  931. 0x3c, 0xe3, 0x5d, 0x5a, 0x62, 0xde, 0x26, 0xf2, 0xb7, 0x19, 0x47, 0xd7, 0xd9, 0x13, 0x29, 0xa9,
  932. 0x5b, 0x75, 0x02, 0x4b, 0x49, 0x31, 0x82, 0x35, 0xbb, 0x79, 0xf2, 0x54, 0xdf, 0xf0, 0xa2, 0xf2,
  933. 0x1d, 0xf3, 0x70, 0x1f, 0xd0, 0xd2, 0x78, 0xde, 0x54, 0xfb, 0xcc, 0xf1, 0x1f, 0x56, 0xe9, 0xcf,
  934. 0x6e, 0x02, 0x83, 0x9d, 0xfd, 0x6b, 0xa2, 0x79, 0x91, 0xed, 0x9b, 0x7c, 0xb8, 0x13, 0x56, 0x3f,
  935. 0x13, 0x8e, 0x78, 0xc9, 0x69, 0x2a, 0x13, 0x2a, 0x29, 0x2e, 0x03, 0xcf, 0x2d, 0x4e, 0x3a, 0x07,
  936. 0x23, 0x38, 0x13, 0x56, 0xe1, 0x76, 0xf9, 0x24, 0xf6, 0x47, 0xb4, 0xae, 0xa5, 0x8a, 0x6f, 0x77,
  937. 0xb4, 0x87, 0x78, 0x15, 0x1d, 0x7d, 0x46, 0xe7, 0x2a, 0xde, 0x44, 0x8f, 0xda, 0x4e, 0xc7, 0x07,
  938. 0xb6, 0x3e, 0xba, 0x17, 0x77, 0xbc, 0x5c, 0x1d, 0x69, 0x7b, 0x3a, 0xde, 0xb3, 0xf7, 0xe1, 0x86,
  939. 0xd5, 0x21, 0xeb, 0xdb, 0x19, 0xc1, 0x09, 0xcb, 0x43, 0xd6, 0xb3, 0xcf, 0x61, 0xcf, 0x27, 0xac,
  940. 0xa8, 0x57, 0xdc, 0x16, 0x51, 0xf7, 0x5e, 0xee, 0xdd, 0x9a, 0x3d, 0x65, 0xa2, 0xb0, 0x2a, 0x0a,
  941. 0x1f, 0x15, 0x95, 0xa2, 0x4b, 0xdf, 0xf1, 0x6c, 0x9e, 0x27, 0x90, 0x5e, 0x15, 0x8c, 0x4a, 0x26,
  942. 0xbd, 0xfe, 0x21, 0x60, 0xd4, 0x57, 0x70, 0xe6, 0xa5, 0x10, 0xd3, 0xeb, 0x82, 0x79, 0x98, 0xed,
  943. 0x1a, 0x9f, 0x19, 0x9c, 0x79, 0x29, 0x7a, 0x65, 0x9f, 0xc3, 0xe4, 0x7b, 0x6f, 0x8e, 0xa0, 0xb9,
  944. 0xd9, 0xaf, 0x96, 0xfe, 0xe1, 0x9c, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x92, 0xe1, 0xed, 0x2c,
  945. 0x7f, 0x04, 0x00, 0x00,
  946. }