datasource.pb.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: datasource.proto
  3. /*
  4. Package datasource is a generated protocol buffer package.
  5. It is generated from these files:
  6. datasource.proto
  7. It has these top-level messages:
  8. DatasourceRequest
  9. Query
  10. TimeRange
  11. DatasourceResponse
  12. QueryResult
  13. Table
  14. TableColumn
  15. TableRow
  16. RowValue
  17. DatasourceInfo
  18. TimeSeries
  19. Point
  20. */
  21. package datasource
  22. import proto "github.com/golang/protobuf/proto"
  23. import fmt "fmt"
  24. import math "math"
  25. import (
  26. context "golang.org/x/net/context"
  27. grpc "google.golang.org/grpc"
  28. )
  29. // Reference imports to suppress errors if they are not otherwise used.
  30. var _ = proto.Marshal
  31. var _ = fmt.Errorf
  32. var _ = math.Inf
  33. // This is a compile-time assertion to ensure that this generated file
  34. // is compatible with the proto package it is being compiled against.
  35. // A compilation error at this line likely means your copy of the
  36. // proto package needs to be updated.
  37. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  38. type RowValue_Kind int32
  39. const (
  40. // Field type null.
  41. RowValue_TYPE_NULL RowValue_Kind = 0
  42. // Field type double.
  43. RowValue_TYPE_DOUBLE RowValue_Kind = 1
  44. // Field type int64.
  45. RowValue_TYPE_INT64 RowValue_Kind = 2
  46. // Field type bool.
  47. RowValue_TYPE_BOOL RowValue_Kind = 3
  48. // Field type string.
  49. RowValue_TYPE_STRING RowValue_Kind = 4
  50. // Field type bytes.
  51. RowValue_TYPE_BYTES RowValue_Kind = 5
  52. )
  53. var RowValue_Kind_name = map[int32]string{
  54. 0: "TYPE_NULL",
  55. 1: "TYPE_DOUBLE",
  56. 2: "TYPE_INT64",
  57. 3: "TYPE_BOOL",
  58. 4: "TYPE_STRING",
  59. 5: "TYPE_BYTES",
  60. }
  61. var RowValue_Kind_value = map[string]int32{
  62. "TYPE_NULL": 0,
  63. "TYPE_DOUBLE": 1,
  64. "TYPE_INT64": 2,
  65. "TYPE_BOOL": 3,
  66. "TYPE_STRING": 4,
  67. "TYPE_BYTES": 5,
  68. }
  69. func (x RowValue_Kind) String() string {
  70. return proto.EnumName(RowValue_Kind_name, int32(x))
  71. }
  72. func (RowValue_Kind) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{8, 0} }
  73. type DatasourceRequest struct {
  74. TimeRange *TimeRange `protobuf:"bytes,1,opt,name=timeRange" json:"timeRange,omitempty"`
  75. Datasource *DatasourceInfo `protobuf:"bytes,2,opt,name=datasource" json:"datasource,omitempty"`
  76. Queries []*Query `protobuf:"bytes,3,rep,name=queries" json:"queries,omitempty"`
  77. }
  78. func (m *DatasourceRequest) Reset() { *m = DatasourceRequest{} }
  79. func (m *DatasourceRequest) String() string { return proto.CompactTextString(m) }
  80. func (*DatasourceRequest) ProtoMessage() {}
  81. func (*DatasourceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
  82. func (m *DatasourceRequest) GetTimeRange() *TimeRange {
  83. if m != nil {
  84. return m.TimeRange
  85. }
  86. return nil
  87. }
  88. func (m *DatasourceRequest) GetDatasource() *DatasourceInfo {
  89. if m != nil {
  90. return m.Datasource
  91. }
  92. return nil
  93. }
  94. func (m *DatasourceRequest) GetQueries() []*Query {
  95. if m != nil {
  96. return m.Queries
  97. }
  98. return nil
  99. }
  100. type Query struct {
  101. RefId string `protobuf:"bytes,1,opt,name=refId" json:"refId,omitempty"`
  102. MaxDataPoints int64 `protobuf:"varint,2,opt,name=maxDataPoints" json:"maxDataPoints,omitempty"`
  103. IntervalMs int64 `protobuf:"varint,3,opt,name=intervalMs" json:"intervalMs,omitempty"`
  104. ModelJson string `protobuf:"bytes,4,opt,name=modelJson" json:"modelJson,omitempty"`
  105. }
  106. func (m *Query) Reset() { *m = Query{} }
  107. func (m *Query) String() string { return proto.CompactTextString(m) }
  108. func (*Query) ProtoMessage() {}
  109. func (*Query) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
  110. func (m *Query) GetRefId() string {
  111. if m != nil {
  112. return m.RefId
  113. }
  114. return ""
  115. }
  116. func (m *Query) GetMaxDataPoints() int64 {
  117. if m != nil {
  118. return m.MaxDataPoints
  119. }
  120. return 0
  121. }
  122. func (m *Query) GetIntervalMs() int64 {
  123. if m != nil {
  124. return m.IntervalMs
  125. }
  126. return 0
  127. }
  128. func (m *Query) GetModelJson() string {
  129. if m != nil {
  130. return m.ModelJson
  131. }
  132. return ""
  133. }
  134. type TimeRange struct {
  135. FromRaw string `protobuf:"bytes,1,opt,name=fromRaw" json:"fromRaw,omitempty"`
  136. ToRaw string `protobuf:"bytes,2,opt,name=toRaw" json:"toRaw,omitempty"`
  137. FromEpochMs int64 `protobuf:"varint,3,opt,name=fromEpochMs" json:"fromEpochMs,omitempty"`
  138. ToEpochMs int64 `protobuf:"varint,4,opt,name=toEpochMs" json:"toEpochMs,omitempty"`
  139. }
  140. func (m *TimeRange) Reset() { *m = TimeRange{} }
  141. func (m *TimeRange) String() string { return proto.CompactTextString(m) }
  142. func (*TimeRange) ProtoMessage() {}
  143. func (*TimeRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
  144. func (m *TimeRange) GetFromRaw() string {
  145. if m != nil {
  146. return m.FromRaw
  147. }
  148. return ""
  149. }
  150. func (m *TimeRange) GetToRaw() string {
  151. if m != nil {
  152. return m.ToRaw
  153. }
  154. return ""
  155. }
  156. func (m *TimeRange) GetFromEpochMs() int64 {
  157. if m != nil {
  158. return m.FromEpochMs
  159. }
  160. return 0
  161. }
  162. func (m *TimeRange) GetToEpochMs() int64 {
  163. if m != nil {
  164. return m.ToEpochMs
  165. }
  166. return 0
  167. }
  168. type DatasourceResponse struct {
  169. Results []*QueryResult `protobuf:"bytes,1,rep,name=results" json:"results,omitempty"`
  170. }
  171. func (m *DatasourceResponse) Reset() { *m = DatasourceResponse{} }
  172. func (m *DatasourceResponse) String() string { return proto.CompactTextString(m) }
  173. func (*DatasourceResponse) ProtoMessage() {}
  174. func (*DatasourceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
  175. func (m *DatasourceResponse) GetResults() []*QueryResult {
  176. if m != nil {
  177. return m.Results
  178. }
  179. return nil
  180. }
  181. type QueryResult struct {
  182. Error string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"`
  183. RefId string `protobuf:"bytes,2,opt,name=refId" json:"refId,omitempty"`
  184. MetaJson string `protobuf:"bytes,3,opt,name=metaJson" json:"metaJson,omitempty"`
  185. Series []*TimeSeries `protobuf:"bytes,4,rep,name=series" json:"series,omitempty"`
  186. Tables []*Table `protobuf:"bytes,5,rep,name=tables" json:"tables,omitempty"`
  187. }
  188. func (m *QueryResult) Reset() { *m = QueryResult{} }
  189. func (m *QueryResult) String() string { return proto.CompactTextString(m) }
  190. func (*QueryResult) ProtoMessage() {}
  191. func (*QueryResult) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
  192. func (m *QueryResult) GetError() string {
  193. if m != nil {
  194. return m.Error
  195. }
  196. return ""
  197. }
  198. func (m *QueryResult) GetRefId() string {
  199. if m != nil {
  200. return m.RefId
  201. }
  202. return ""
  203. }
  204. func (m *QueryResult) GetMetaJson() string {
  205. if m != nil {
  206. return m.MetaJson
  207. }
  208. return ""
  209. }
  210. func (m *QueryResult) GetSeries() []*TimeSeries {
  211. if m != nil {
  212. return m.Series
  213. }
  214. return nil
  215. }
  216. func (m *QueryResult) GetTables() []*Table {
  217. if m != nil {
  218. return m.Tables
  219. }
  220. return nil
  221. }
  222. type Table struct {
  223. Columns []*TableColumn `protobuf:"bytes,1,rep,name=columns" json:"columns,omitempty"`
  224. Rows []*TableRow `protobuf:"bytes,2,rep,name=rows" json:"rows,omitempty"`
  225. }
  226. func (m *Table) Reset() { *m = Table{} }
  227. func (m *Table) String() string { return proto.CompactTextString(m) }
  228. func (*Table) ProtoMessage() {}
  229. func (*Table) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
  230. func (m *Table) GetColumns() []*TableColumn {
  231. if m != nil {
  232. return m.Columns
  233. }
  234. return nil
  235. }
  236. func (m *Table) GetRows() []*TableRow {
  237. if m != nil {
  238. return m.Rows
  239. }
  240. return nil
  241. }
  242. type TableColumn struct {
  243. Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  244. }
  245. func (m *TableColumn) Reset() { *m = TableColumn{} }
  246. func (m *TableColumn) String() string { return proto.CompactTextString(m) }
  247. func (*TableColumn) ProtoMessage() {}
  248. func (*TableColumn) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
  249. func (m *TableColumn) GetName() string {
  250. if m != nil {
  251. return m.Name
  252. }
  253. return ""
  254. }
  255. type TableRow struct {
  256. Values []*RowValue `protobuf:"bytes,1,rep,name=values" json:"values,omitempty"`
  257. }
  258. func (m *TableRow) Reset() { *m = TableRow{} }
  259. func (m *TableRow) String() string { return proto.CompactTextString(m) }
  260. func (*TableRow) ProtoMessage() {}
  261. func (*TableRow) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
  262. func (m *TableRow) GetValues() []*RowValue {
  263. if m != nil {
  264. return m.Values
  265. }
  266. return nil
  267. }
  268. type RowValue struct {
  269. Kind RowValue_Kind `protobuf:"varint,1,opt,name=kind,enum=models.RowValue_Kind" json:"kind,omitempty"`
  270. DoubleValue float64 `protobuf:"fixed64,2,opt,name=doubleValue" json:"doubleValue,omitempty"`
  271. Int64Value int64 `protobuf:"varint,3,opt,name=int64Value" json:"int64Value,omitempty"`
  272. BoolValue bool `protobuf:"varint,4,opt,name=boolValue" json:"boolValue,omitempty"`
  273. StringValue string `protobuf:"bytes,5,opt,name=stringValue" json:"stringValue,omitempty"`
  274. BytesValue []byte `protobuf:"bytes,6,opt,name=bytesValue,proto3" json:"bytesValue,omitempty"`
  275. }
  276. func (m *RowValue) Reset() { *m = RowValue{} }
  277. func (m *RowValue) String() string { return proto.CompactTextString(m) }
  278. func (*RowValue) ProtoMessage() {}
  279. func (*RowValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
  280. func (m *RowValue) GetKind() RowValue_Kind {
  281. if m != nil {
  282. return m.Kind
  283. }
  284. return RowValue_TYPE_NULL
  285. }
  286. func (m *RowValue) GetDoubleValue() float64 {
  287. if m != nil {
  288. return m.DoubleValue
  289. }
  290. return 0
  291. }
  292. func (m *RowValue) GetInt64Value() int64 {
  293. if m != nil {
  294. return m.Int64Value
  295. }
  296. return 0
  297. }
  298. func (m *RowValue) GetBoolValue() bool {
  299. if m != nil {
  300. return m.BoolValue
  301. }
  302. return false
  303. }
  304. func (m *RowValue) GetStringValue() string {
  305. if m != nil {
  306. return m.StringValue
  307. }
  308. return ""
  309. }
  310. func (m *RowValue) GetBytesValue() []byte {
  311. if m != nil {
  312. return m.BytesValue
  313. }
  314. return nil
  315. }
  316. type DatasourceInfo struct {
  317. Id int64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
  318. OrgId int64 `protobuf:"varint,2,opt,name=orgId" json:"orgId,omitempty"`
  319. Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
  320. Type string `protobuf:"bytes,4,opt,name=type" json:"type,omitempty"`
  321. Url string `protobuf:"bytes,5,opt,name=url" json:"url,omitempty"`
  322. JsonData string `protobuf:"bytes,6,opt,name=jsonData" json:"jsonData,omitempty"`
  323. DecryptedSecureJsonData map[string]string `protobuf:"bytes,7,rep,name=decryptedSecureJsonData" json:"decryptedSecureJsonData,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
  324. }
  325. func (m *DatasourceInfo) Reset() { *m = DatasourceInfo{} }
  326. func (m *DatasourceInfo) String() string { return proto.CompactTextString(m) }
  327. func (*DatasourceInfo) ProtoMessage() {}
  328. func (*DatasourceInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
  329. func (m *DatasourceInfo) GetId() int64 {
  330. if m != nil {
  331. return m.Id
  332. }
  333. return 0
  334. }
  335. func (m *DatasourceInfo) GetOrgId() int64 {
  336. if m != nil {
  337. return m.OrgId
  338. }
  339. return 0
  340. }
  341. func (m *DatasourceInfo) GetName() string {
  342. if m != nil {
  343. return m.Name
  344. }
  345. return ""
  346. }
  347. func (m *DatasourceInfo) GetType() string {
  348. if m != nil {
  349. return m.Type
  350. }
  351. return ""
  352. }
  353. func (m *DatasourceInfo) GetUrl() string {
  354. if m != nil {
  355. return m.Url
  356. }
  357. return ""
  358. }
  359. func (m *DatasourceInfo) GetJsonData() string {
  360. if m != nil {
  361. return m.JsonData
  362. }
  363. return ""
  364. }
  365. func (m *DatasourceInfo) GetDecryptedSecureJsonData() map[string]string {
  366. if m != nil {
  367. return m.DecryptedSecureJsonData
  368. }
  369. return nil
  370. }
  371. type TimeSeries struct {
  372. Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
  373. Tags map[string]string `protobuf:"bytes,2,rep,name=tags" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
  374. Points []*Point `protobuf:"bytes,3,rep,name=points" json:"points,omitempty"`
  375. }
  376. func (m *TimeSeries) Reset() { *m = TimeSeries{} }
  377. func (m *TimeSeries) String() string { return proto.CompactTextString(m) }
  378. func (*TimeSeries) ProtoMessage() {}
  379. func (*TimeSeries) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
  380. func (m *TimeSeries) GetName() string {
  381. if m != nil {
  382. return m.Name
  383. }
  384. return ""
  385. }
  386. func (m *TimeSeries) GetTags() map[string]string {
  387. if m != nil {
  388. return m.Tags
  389. }
  390. return nil
  391. }
  392. func (m *TimeSeries) GetPoints() []*Point {
  393. if m != nil {
  394. return m.Points
  395. }
  396. return nil
  397. }
  398. type Point struct {
  399. Timestamp int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"`
  400. Value float64 `protobuf:"fixed64,2,opt,name=value" json:"value,omitempty"`
  401. }
  402. func (m *Point) Reset() { *m = Point{} }
  403. func (m *Point) String() string { return proto.CompactTextString(m) }
  404. func (*Point) ProtoMessage() {}
  405. func (*Point) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
  406. func (m *Point) GetTimestamp() int64 {
  407. if m != nil {
  408. return m.Timestamp
  409. }
  410. return 0
  411. }
  412. func (m *Point) GetValue() float64 {
  413. if m != nil {
  414. return m.Value
  415. }
  416. return 0
  417. }
  418. func init() {
  419. proto.RegisterType((*DatasourceRequest)(nil), "models.DatasourceRequest")
  420. proto.RegisterType((*Query)(nil), "models.Query")
  421. proto.RegisterType((*TimeRange)(nil), "models.TimeRange")
  422. proto.RegisterType((*DatasourceResponse)(nil), "models.DatasourceResponse")
  423. proto.RegisterType((*QueryResult)(nil), "models.QueryResult")
  424. proto.RegisterType((*Table)(nil), "models.Table")
  425. proto.RegisterType((*TableColumn)(nil), "models.TableColumn")
  426. proto.RegisterType((*TableRow)(nil), "models.TableRow")
  427. proto.RegisterType((*RowValue)(nil), "models.RowValue")
  428. proto.RegisterType((*DatasourceInfo)(nil), "models.DatasourceInfo")
  429. proto.RegisterType((*TimeSeries)(nil), "models.TimeSeries")
  430. proto.RegisterType((*Point)(nil), "models.Point")
  431. proto.RegisterEnum("models.RowValue_Kind", RowValue_Kind_name, RowValue_Kind_value)
  432. }
  433. // Reference imports to suppress errors if they are not otherwise used.
  434. var _ context.Context
  435. var _ grpc.ClientConn
  436. // This is a compile-time assertion to ensure that this generated file
  437. // is compatible with the grpc package it is being compiled against.
  438. const _ = grpc.SupportPackageIsVersion4
  439. // Client API for DatasourcePlugin service
  440. type DatasourcePluginClient interface {
  441. Query(ctx context.Context, in *DatasourceRequest, opts ...grpc.CallOption) (*DatasourceResponse, error)
  442. }
  443. type datasourcePluginClient struct {
  444. cc *grpc.ClientConn
  445. }
  446. func NewDatasourcePluginClient(cc *grpc.ClientConn) DatasourcePluginClient {
  447. return &datasourcePluginClient{cc}
  448. }
  449. func (c *datasourcePluginClient) Query(ctx context.Context, in *DatasourceRequest, opts ...grpc.CallOption) (*DatasourceResponse, error) {
  450. out := new(DatasourceResponse)
  451. err := grpc.Invoke(ctx, "/models.DatasourcePlugin/Query", in, out, c.cc, opts...)
  452. if err != nil {
  453. return nil, err
  454. }
  455. return out, nil
  456. }
  457. // Server API for DatasourcePlugin service
  458. type DatasourcePluginServer interface {
  459. Query(context.Context, *DatasourceRequest) (*DatasourceResponse, error)
  460. }
  461. func RegisterDatasourcePluginServer(s *grpc.Server, srv DatasourcePluginServer) {
  462. s.RegisterService(&_DatasourcePlugin_serviceDesc, srv)
  463. }
  464. func _DatasourcePlugin_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
  465. in := new(DatasourceRequest)
  466. if err := dec(in); err != nil {
  467. return nil, err
  468. }
  469. if interceptor == nil {
  470. return srv.(DatasourcePluginServer).Query(ctx, in)
  471. }
  472. info := &grpc.UnaryServerInfo{
  473. Server: srv,
  474. FullMethod: "/models.DatasourcePlugin/Query",
  475. }
  476. handler := func(ctx context.Context, req interface{}) (interface{}, error) {
  477. return srv.(DatasourcePluginServer).Query(ctx, req.(*DatasourceRequest))
  478. }
  479. return interceptor(ctx, in, info, handler)
  480. }
  481. var _DatasourcePlugin_serviceDesc = grpc.ServiceDesc{
  482. ServiceName: "models.DatasourcePlugin",
  483. HandlerType: (*DatasourcePluginServer)(nil),
  484. Methods: []grpc.MethodDesc{
  485. {
  486. MethodName: "Query",
  487. Handler: _DatasourcePlugin_Query_Handler,
  488. },
  489. },
  490. Streams: []grpc.StreamDesc{},
  491. Metadata: "datasource.proto",
  492. }
  493. func init() { proto.RegisterFile("datasource.proto", fileDescriptor0) }
  494. var fileDescriptor0 = []byte{
  495. // 841 bytes of a gzipped FileDescriptorProto
  496. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xdb, 0x8e, 0x23, 0x35,
  497. 0x10, 0xa5, 0x2f, 0xc9, 0xa4, 0x2b, 0x3b, 0xa1, 0xd7, 0xdc, 0x42, 0x34, 0x42, 0xa1, 0xb5, 0x88,
  498. 0x80, 0x44, 0x40, 0xd9, 0xd1, 0x80, 0x40, 0xe2, 0x21, 0x3b, 0x11, 0xca, 0x10, 0x66, 0x06, 0x27,
  499. 0x8b, 0xb4, 0x08, 0x09, 0x75, 0xd2, 0x4e, 0x68, 0xb6, 0xbb, 0x9d, 0xb5, 0xdd, 0x13, 0x22, 0x9e,
  500. 0xf8, 0x18, 0x24, 0x9e, 0xf9, 0x01, 0x1e, 0xf9, 0x2d, 0xe4, 0xea, 0x6b, 0x76, 0x02, 0x12, 0x6f,
  501. 0xae, 0x73, 0x4e, 0x95, 0xcb, 0x55, 0x65, 0x1b, 0xdc, 0xc0, 0x57, 0xbe, 0xe4, 0xa9, 0x58, 0xb1,
  502. 0xe1, 0x56, 0x70, 0xc5, 0x49, 0x33, 0xe6, 0x01, 0x8b, 0xa4, 0xf7, 0xbb, 0x01, 0x0f, 0x2f, 0x4b,
  503. 0x92, 0xb2, 0x17, 0x29, 0x93, 0x8a, 0x7c, 0x0c, 0x8e, 0x0a, 0x63, 0x46, 0xfd, 0x64, 0xc3, 0xba,
  504. 0x46, 0xdf, 0x18, 0xb4, 0x47, 0x0f, 0x87, 0x99, 0xc7, 0x70, 0x51, 0x10, 0xb4, 0xd2, 0x90, 0x0b,
  505. 0x80, 0x6a, 0x8b, 0xae, 0x89, 0x1e, 0x6f, 0x16, 0x1e, 0x55, 0xfc, 0x69, 0xb2, 0xe6, 0xb4, 0xa6,
  506. 0x24, 0xef, 0xc3, 0xc9, 0x8b, 0x94, 0x89, 0x90, 0xc9, 0xae, 0xd5, 0xb7, 0x06, 0xed, 0xd1, 0x69,
  507. 0xe1, 0xf4, 0x6d, 0xca, 0xc4, 0x9e, 0x16, 0xac, 0xf7, 0x9b, 0x01, 0x0d, 0x84, 0xc8, 0xeb, 0xd0,
  508. 0x10, 0x6c, 0x3d, 0x0d, 0x30, 0x2f, 0x87, 0x66, 0x06, 0x79, 0x04, 0xa7, 0xb1, 0xff, 0x8b, 0xde,
  509. 0xe9, 0x96, 0x87, 0x89, 0x92, 0x98, 0x83, 0x45, 0x0f, 0x41, 0xf2, 0x0e, 0x40, 0x98, 0x28, 0x26,
  510. 0xee, 0xfc, 0xe8, 0x1b, 0xbd, 0xa3, 0x96, 0xd4, 0x10, 0x72, 0x06, 0x0e, 0x6e, 0x7f, 0x25, 0x79,
  511. 0xd2, 0xb5, 0x31, 0x7e, 0x05, 0x78, 0xbf, 0x82, 0x53, 0x1e, 0x9e, 0x74, 0xe1, 0x64, 0x2d, 0x78,
  512. 0x4c, 0xfd, 0x5d, 0x9e, 0x48, 0x61, 0xea, 0x04, 0x15, 0xd7, 0xb8, 0x99, 0x25, 0x88, 0x06, 0xe9,
  513. 0x43, 0x5b, 0x0b, 0x26, 0x5b, 0xbe, 0xfa, 0xa9, 0xdc, 0xbb, 0x0e, 0xe9, 0xcd, 0x15, 0x2f, 0x78,
  514. 0x1b, 0xf9, 0x0a, 0xf0, 0x9e, 0x00, 0xa9, 0xf7, 0x49, 0x6e, 0x79, 0x22, 0x19, 0xf9, 0x08, 0x4e,
  515. 0x04, 0x93, 0x69, 0xa4, 0x64, 0xd7, 0xc0, 0xfa, 0xbd, 0x76, 0x58, 0x3f, 0xe4, 0x68, 0xa1, 0xf1,
  516. 0xfe, 0x30, 0xa0, 0x5d, 0x23, 0x74, 0xaa, 0x4c, 0x08, 0x2e, 0x8a, 0x5a, 0xa2, 0x51, 0x55, 0xd8,
  517. 0xac, 0x57, 0xb8, 0x07, 0xad, 0x98, 0x29, 0x1f, 0x4b, 0x63, 0x21, 0x51, 0xda, 0xe4, 0x43, 0x68,
  518. 0xca, 0xac, 0x8b, 0x36, 0x66, 0x41, 0xea, 0xc3, 0x32, 0x47, 0x86, 0xe6, 0x0a, 0xf2, 0x1e, 0x34,
  519. 0x95, 0xbf, 0x8c, 0x98, 0xec, 0x36, 0x0e, 0x3b, 0xbe, 0xd0, 0x28, 0xcd, 0x49, 0xef, 0x07, 0x68,
  520. 0x20, 0xa0, 0x8f, 0xb8, 0xe2, 0x51, 0x1a, 0x27, 0xf7, 0x8e, 0x88, 0xfc, 0x13, 0xe4, 0x68, 0xa1,
  521. 0x21, 0x8f, 0xc0, 0x16, 0x7c, 0xa7, 0xfb, 0xaf, 0xb5, 0xee, 0x61, 0x70, 0xbe, 0xa3, 0xc8, 0x7a,
  522. 0xef, 0x42, 0xbb, 0xe6, 0x4d, 0x08, 0xd8, 0x89, 0x1f, 0xb3, 0xbc, 0x0c, 0xb8, 0xf6, 0xce, 0xa1,
  523. 0x55, 0x38, 0x91, 0x01, 0x34, 0xef, 0xfc, 0x28, 0x65, 0x45, 0x0a, 0x65, 0x58, 0xca, 0x77, 0xdf,
  524. 0x69, 0x82, 0xe6, 0xbc, 0xf7, 0x97, 0x09, 0xad, 0x02, 0x24, 0x1f, 0x80, 0xfd, 0x3c, 0x4c, 0xb2,
  525. 0x49, 0xed, 0x8c, 0xde, 0x78, 0xd9, 0x69, 0xf8, 0x75, 0x98, 0x04, 0x14, 0x25, 0x7a, 0x3c, 0x02,
  526. 0x9e, 0x2e, 0x23, 0x86, 0x0c, 0x56, 0xde, 0xa0, 0x75, 0x28, 0x9f, 0xdd, 0x8b, 0xf3, 0x4c, 0x50,
  527. 0xcd, 0x6e, 0x8e, 0xe8, 0xf1, 0x59, 0x72, 0x1e, 0x65, 0xb4, 0x1e, 0x9f, 0x16, 0xad, 0x00, 0x1d,
  528. 0x5f, 0x2a, 0x11, 0x26, 0x9b, 0x8c, 0x6f, 0xe0, 0x41, 0xeb, 0x90, 0x8e, 0xbf, 0xdc, 0x2b, 0x26,
  529. 0x33, 0x41, 0xb3, 0x6f, 0x0c, 0x1e, 0xd0, 0x1a, 0xe2, 0xad, 0xc1, 0xd6, 0xf9, 0x92, 0x53, 0x70,
  530. 0x16, 0xcf, 0x6e, 0x27, 0x3f, 0x5e, 0x3f, 0x9d, 0xcd, 0xdc, 0x57, 0xc8, 0xab, 0xd0, 0x46, 0xf3,
  531. 0xf2, 0xe6, 0xe9, 0x78, 0x36, 0x71, 0x0d, 0xd2, 0x01, 0x40, 0x60, 0x7a, 0xbd, 0xb8, 0x38, 0x77,
  532. 0xcd, 0x52, 0x3f, 0xbe, 0xb9, 0x99, 0xb9, 0x56, 0xa9, 0x9f, 0x2f, 0xe8, 0xf4, 0xfa, 0x2b, 0xd7,
  533. 0x2e, 0xf5, 0xe3, 0x67, 0x8b, 0xc9, 0xdc, 0x6d, 0x78, 0x7f, 0x9b, 0xd0, 0x39, 0x7c, 0x31, 0x48,
  534. 0x07, 0xcc, 0x30, 0xab, 0xa2, 0x45, 0xcd, 0x30, 0xd0, 0x03, 0xca, 0xc5, 0x26, 0x1f, 0x50, 0x8b,
  535. 0x66, 0x46, 0xd9, 0x44, 0xab, 0x6a, 0xa2, 0xc6, 0xd4, 0x7e, 0xcb, 0xf2, 0xbb, 0x8c, 0x6b, 0xe2,
  536. 0x82, 0x95, 0x8a, 0x28, 0x2f, 0x81, 0x5e, 0xea, 0xd1, 0xfe, 0x59, 0xf2, 0x44, 0xef, 0x8a, 0x07,
  537. 0x77, 0x68, 0x69, 0x93, 0x18, 0xde, 0x0a, 0xd8, 0x4a, 0xec, 0xb7, 0x8a, 0x05, 0x73, 0xb6, 0x4a,
  538. 0x05, 0xbb, 0x2a, 0xa4, 0x27, 0x38, 0x0b, 0x8f, 0x8f, 0x3f, 0x73, 0xc3, 0xcb, 0xe3, 0x5e, 0x93,
  539. 0x44, 0x89, 0x3d, 0xfd, 0xb7, 0x98, 0xbd, 0x2b, 0x38, 0xfb, 0x2f, 0x47, 0x9d, 0xfc, 0x73, 0xb6,
  540. 0xcf, 0x07, 0x55, 0x2f, 0x75, 0x31, 0xee, 0xca, 0x99, 0x71, 0x68, 0x66, 0x7c, 0x6e, 0x7e, 0x66,
  541. 0x78, 0x7f, 0x1a, 0x00, 0xd5, 0x05, 0x3c, 0x36, 0xe4, 0xe4, 0x13, 0xb0, 0x95, 0xbf, 0x29, 0x6e,
  542. 0xcb, 0xd9, 0xfd, 0x6b, 0x3b, 0x5c, 0xf8, 0x1b, 0x99, 0xe5, 0x8c, 0x4a, 0x7d, 0x7d, 0xb7, 0xd9,
  543. 0x0b, 0xfb, 0xd2, 0x83, 0x8d, 0x4f, 0x2c, 0xcd, 0xc9, 0xde, 0xa7, 0xe0, 0x94, 0x9e, 0xff, 0x2b,
  544. 0xe9, 0x2f, 0xa0, 0x81, 0x91, 0xf0, 0x39, 0x0c, 0x63, 0x26, 0x95, 0x1f, 0x6f, 0xf3, 0xde, 0x57,
  545. 0xc0, 0x61, 0x00, 0x23, 0x0f, 0x30, 0xa2, 0xe0, 0x56, 0x5d, 0xb8, 0x8d, 0xd2, 0x4d, 0x98, 0x90,
  546. 0x2f, 0x8b, 0x8f, 0xe3, 0xed, 0xfb, 0x8d, 0xca, 0xff, 0xbb, 0x5e, 0xef, 0x18, 0x95, 0x3d, 0xb1,
  547. 0xe3, 0x07, 0xdf, 0xd7, 0x3e, 0xac, 0x65, 0x13, 0xbf, 0xcf, 0xc7, 0xff, 0x04, 0x00, 0x00, 0xff,
  548. 0xff, 0xab, 0xf8, 0xda, 0x77, 0x52, 0x07, 0x00, 0x00,
  549. }