@silvana-one/orderbook 1.1.8 → 1.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/node/index.cjs +262 -5
  2. package/dist/node/index.d.ts +2 -1
  3. package/dist/node/index.js +2 -1
  4. package/dist/node/index.js.map +1 -1
  5. package/dist/node/{grpc.d.ts → orderbook.d.ts} +48 -1
  6. package/dist/{web/grpc.js → node/orderbook.js} +50 -2
  7. package/dist/node/orderbook.js.map +1 -0
  8. package/dist/node/pricing.d.ts +81 -0
  9. package/dist/node/pricing.js +115 -0
  10. package/dist/node/pricing.js.map +1 -0
  11. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +398 -0
  12. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +47 -2
  13. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  14. package/dist/node/proto/silvana/pricing/v1/pricing_pb.d.ts +794 -0
  15. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +119 -0
  16. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js.map +1 -0
  17. package/dist/tsconfig.tsbuildinfo +1 -1
  18. package/dist/tsconfig.web.tsbuildinfo +1 -1
  19. package/dist/web/index.d.ts +2 -1
  20. package/dist/web/index.js +2 -1
  21. package/dist/web/index.js.map +1 -1
  22. package/dist/web/{grpc.d.ts → orderbook.d.ts} +48 -1
  23. package/dist/{node/grpc.js → web/orderbook.js} +50 -2
  24. package/dist/web/orderbook.js.map +1 -0
  25. package/dist/web/pricing.d.ts +81 -0
  26. package/dist/web/pricing.js +115 -0
  27. package/dist/web/pricing.js.map +1 -0
  28. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +398 -0
  29. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +47 -2
  30. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  31. package/dist/web/proto/silvana/pricing/v1/pricing_pb.d.ts +794 -0
  32. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +119 -0
  33. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js.map +1 -0
  34. package/package.json +4 -2
  35. package/src/index.ts +2 -1
  36. package/src/{grpc.ts → orderbook.ts} +91 -0
  37. package/src/pricing.ts +187 -0
  38. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +475 -2
  39. package/src/proto/silvana/pricing/v1/pricing_pb.ts +950 -0
  40. package/dist/node/grpc.js.map +0 -1
  41. package/dist/web/grpc.js.map +0 -1
@@ -22,28 +22,47 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  CancelOrderRequestSchema: () => CancelOrderRequestSchema,
24
24
  CancelOrderResponseSchema: () => CancelOrderResponseSchema,
25
+ CreateInstrumentRequestSchema: () => CreateInstrumentRequestSchema,
26
+ CreateInstrumentResponseSchema: () => CreateInstrumentResponseSchema,
27
+ CreateMarketRequestSchema: () => CreateMarketRequestSchema,
28
+ CreateMarketResponseSchema: () => CreateMarketResponseSchema,
29
+ CreatePartyRequestSchema: () => CreatePartyRequestSchema,
30
+ CreatePartyResponseSchema: () => CreatePartyResponseSchema,
25
31
  GetInstrumentsRequestSchema: () => GetInstrumentsRequestSchema,
26
32
  GetInstrumentsResponseSchema: () => GetInstrumentsResponseSchema,
33
+ GetKlinesRequestSchema: () => GetKlinesRequestSchema,
34
+ GetKlinesResponseSchema: () => GetKlinesResponseSchema,
27
35
  GetMarketDataRequestSchema: () => GetMarketDataRequestSchema,
28
36
  GetMarketDataResponseSchema: () => GetMarketDataResponseSchema,
29
37
  GetMarketsRequestSchema: () => GetMarketsRequestSchema,
30
38
  GetMarketsResponseSchema: () => GetMarketsResponseSchema,
39
+ GetOrderBookRequestSchema: () => GetOrderBookRequestSchema,
40
+ GetOrderBookResponseSchema: () => GetOrderBookResponseSchema,
31
41
  GetOrderHistoryRequestSchema: () => GetOrderHistoryRequestSchema,
32
42
  GetOrderHistoryResponseSchema: () => GetOrderHistoryResponseSchema,
33
43
  GetOrderbookDepthRequestSchema: () => GetOrderbookDepthRequestSchema,
34
44
  GetOrderbookDepthResponseSchema: () => GetOrderbookDepthResponseSchema,
35
45
  GetOrdersRequestSchema: () => GetOrdersRequestSchema,
36
46
  GetOrdersResponseSchema: () => GetOrdersResponseSchema,
47
+ GetPivotPointsRequestSchema: () => GetPivotPointsRequestSchema,
48
+ GetPivotPointsResponseSchema: () => GetPivotPointsResponseSchema,
49
+ GetPriceRequestSchema: () => GetPriceRequestSchema,
50
+ GetPriceResponseSchema: () => GetPriceResponseSchema,
51
+ GetPricesRequestSchema: () => GetPricesRequestSchema,
52
+ GetPricesResponseSchema: () => GetPricesResponseSchema,
37
53
  GetSettlementProposalsRequestSchema: () => GetSettlementProposalsRequestSchema,
38
54
  GetSettlementProposalsResponseSchema: () => GetSettlementProposalsResponseSchema,
39
55
  GetSettlementsRequestSchema: () => GetSettlementsRequestSchema,
40
56
  GetSettlementsResponseSchema: () => GetSettlementsResponseSchema,
41
57
  InstrumentSchema: () => InstrumentSchema,
42
58
  JWTAuthSchema: () => JWTAuthSchema,
59
+ KlineSchema: () => KlineSchema,
43
60
  MarketDataSchema: () => MarketDataSchema,
44
61
  MarketSchema: () => MarketSchema,
45
62
  MarketType: () => MarketType,
46
63
  MarketTypeSchema: () => MarketTypeSchema,
64
+ OrderBookLevelSchema: () => OrderBookLevelSchema,
65
+ OrderBookUpdateSchema: () => OrderBookUpdateSchema,
47
66
  OrderMatchSchema: () => OrderMatchSchema,
48
67
  OrderSchema: () => OrderSchema,
49
68
  OrderStatus: () => OrderStatus,
@@ -61,6 +80,16 @@ __export(index_exports, {
61
80
  OrderbookUpdateSchema: () => OrderbookUpdateSchema,
62
81
  OrderbookUpdate_UpdateType: () => OrderbookUpdate_UpdateType,
63
82
  OrderbookUpdate_UpdateTypeSchema: () => OrderbookUpdate_UpdateTypeSchema,
83
+ PartySchema: () => PartySchema,
84
+ PivotPointsSchema: () => PivotPointsSchema,
85
+ PriceFeedConfigSchema: () => PriceFeedConfigSchema,
86
+ PriceFeedConfig_DirectFeedSchema: () => PriceFeedConfig_DirectFeedSchema,
87
+ PriceFeedConfig_SyntheticFeedSchema: () => PriceFeedConfig_SyntheticFeedSchema,
88
+ PriceSchema: () => PriceSchema,
89
+ PriceUpdateSchema: () => PriceUpdateSchema,
90
+ PricingClient: () => PricingClient,
91
+ PricingError: () => PricingError,
92
+ PricingService: () => PricingService,
64
93
  SettlementProposalSchema: () => SettlementProposalSchema,
65
94
  SettlementSchema: () => SettlementSchema,
66
95
  SettlementStatus: () => SettlementStatus,
@@ -68,6 +97,7 @@ __export(index_exports, {
68
97
  SettlementUpdateSchema: () => SettlementUpdateSchema,
69
98
  SettlementUpdate_EventType: () => SettlementUpdate_EventType,
70
99
  SettlementUpdate_EventTypeSchema: () => SettlementUpdate_EventTypeSchema,
100
+ StreamPricesRequestSchema: () => StreamPricesRequestSchema,
71
101
  SubmitOrderRequestSchema: () => SubmitOrderRequestSchema,
72
102
  SubmitOrderResponseSchema: () => SubmitOrderResponseSchema,
73
103
  SubscribeOrderbookRequestSchema: () => SubscribeOrderbookRequestSchema,
@@ -75,11 +105,15 @@ __export(index_exports, {
75
105
  SubscribeSettlementsRequestSchema: () => SubscribeSettlementsRequestSchema,
76
106
  TimeInForce: () => TimeInForce,
77
107
  TimeInForceSchema: () => TimeInForceSchema,
78
- file_proto_silvana_orderbook_v1_orderbook: () => file_proto_silvana_orderbook_v1_orderbook
108
+ TradeUpdateSchema: () => TradeUpdateSchema,
109
+ UpdateMarketPriceFeedsRequestSchema: () => UpdateMarketPriceFeedsRequestSchema,
110
+ UpdateMarketPriceFeedsResponseSchema: () => UpdateMarketPriceFeedsResponseSchema,
111
+ file_proto_silvana_orderbook_v1_orderbook: () => file_proto_silvana_orderbook_v1_orderbook,
112
+ file_proto_silvana_pricing_v1_pricing: () => file_proto_silvana_pricing_v1_pricing
79
113
  });
80
114
  module.exports = __toCommonJS(index_exports);
81
115
 
82
- // dist/node/grpc.js
116
+ // dist/node/orderbook.js
83
117
  var import_connect_node = require("@connectrpc/connect-node");
84
118
  var import_connect = require("@connectrpc/connect");
85
119
  var import_protobuf = require("@bufbuild/protobuf");
@@ -88,7 +122,7 @@ var import_wkt2 = require("@bufbuild/protobuf/wkt");
88
122
  // dist/node/proto/silvana/orderbook/v1/orderbook_pb.js
89
123
  var import_codegenv2 = require("@bufbuild/protobuf/codegenv2");
90
124
  var import_wkt = require("@bufbuild/protobuf/wkt");
91
- var file_proto_silvana_orderbook_v1_orderbook = /* @__PURE__ */ (0, import_codegenv2.fileDesc)("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAki5QIKCkluc3RydW1lbnQSFQoNaW5zdHJ1bWVudF9pZBgBIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzeW1ib2wYBCABKAkSGAoLZGVzY3JpcHRpb24YBSABKAlIAIgBARITCgZpc3N1ZXIYBiABKAlIAYgBARIVCghyZWdpc3RyeRgHIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEiywMKBk1hcmtldBIRCgltYXJrZXRfaWQYASABKAkSNQoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhcKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAQgASgJEhMKC3BhaXJfc3ltYm9sGAUgASgJEhEKCWlzX2FjdGl2ZRgGIAEoCBIWCg5taW5fb3JkZXJfc2l6ZRgHIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgIIAEoCUgAiAEBEhEKCXRpY2tfc2l6ZRgJIAEoCRIRCgltYWtlcl9mZWUYCiABKAkSEQoJdGFrZXJfZmVlGAsgASgJEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGEi9wYKBU9yZGVyEhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg4KBnRyYWRlchgEIAEoCRIdChB0cmFkZXJfb3JkZXJfcmVmGAUgASgJSACIAQESFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSDQoFcHJpY2UYCCABKAkSEAoIcXVhbnRpdHkYCSABKAkSFwoPZmlsbGVkX3F1YW50aXR5GAogASgJEhgKEHBlbmRpbmdfcXVhbnRpdHkYCyABKAkSGgoScmVtYWluaW5nX3F1YW50aXR5GAwgASgJEjEKBnN0YXR1cxgNIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzEjgKDXRpbWVfaW5fZm9yY2UYDiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEg8KB3ZlcnNpb24YECABKAQSMQoLY3JlZGVudGlhbHMYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGBMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNhbmNlbGxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUITChFfdHJhZGVyX29yZGVyX3JlZkINCgtfZXhwaXJlc19hdEIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDwoNX2NhbmNlbGxlZF9hdCKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipREKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhUKDWJhc2VfcXVhbnRpdHkYBSABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBiABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgHIAEoCRI2CgZzdGF0dXMYCCABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEg8KB3ZlcnNpb24YCSABKAQSPQoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESSAofcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChVidXllcl9wcmVjb25maXJtYXRpb24YDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESSgohYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKFnNlbGxlcl9wcmVjb25maXJtYXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESSwoic2VsbGVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIdChBkdnBfcHJvcG9zYWxfY2lkGBAgASgJSAaIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgRIAEoCUgHiAEBEhQKB2R2cF9jaWQYEiABKAlICIgBARIaCg1kdnBfdXBkYXRlX2lkGBMgASgJSAmIAQESHgoRZHZwX3NldHRsZW1lbnRfaWQYFCABKAlICogBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgVIAEoCUgLiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGBYgASgJSAyIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGBcgASgJSA2IAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGBggASgJSA6IAQESHAoPc2V0dGxlZF9kdnBfY2lkGBkgASgJSA+IAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYGiABKAlIEIgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GBsgASgJSBGIAQESLgoKY3JlYXRlZF9hdBgcIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoPcHJlY29uZmlybWVkX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjcKDmR2cF9jcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjgKD2R2cF9hY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARI1CgxhbGxvY2F0ZWRfYXQYICABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBWIAQESMwoKc2V0dGxlZF9hdBghIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARI1CgxjYW5jZWxsZWRfYXQYIiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESMgoJZmFpbGVkX2F0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgYiAEBEhoKDWVycm9yX21lc3NhZ2UYJCABKAlIGYgBARIuCghtZXRhZGF0YRglIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIGogBAUIaChhfcHJlY29uZmlybWF0aW9uX3JlcXVlc3RCIgogX3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXRCGAoWX2J1eWVyX3ByZWNvbmZpcm1hdGlvbkIkCiJfYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhkKF19zZWxsZXJfcHJlY29uZmlybWF0aW9uQiUKI19zZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQgoKCF9kdnBfY2lkQhAKDl9kdnBfdXBkYXRlX2lkQhQKEl9kdnBfc2V0dGxlbWVudF9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEISChBfcHJlY29uZmlybWVkX2F0QhEKD19kdnBfY3JlYXRlZF9hdEISChBfZHZwX2FjY2VwdGVkX2F0Qg8KDV9hbGxvY2F0ZWRfYXRCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLNAQoKT3JkZXJNYXRjaBIQCghtYXRjaF9pZBgBIAEoBBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAIgASgEEhQKDGJpZF9vcmRlcl9pZBgDIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgEIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAUgASgJEhUKDW1hdGNoZWRfcHJpY2UYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoBBIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSKvAgoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0ieAoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCL4AQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSK0AQoVR2V0SW5zdHJ1bWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhwKD2luc3RydW1lbnRfdHlwZRgCIAEoCUgAiAEBEhIKBWxpbWl0GAMgASgNSAGIAQESEwoGb2Zmc2V0GAQgASgNSAKIAQFCEgoQX2luc3RydW1lbnRfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0SW5zdHJ1bWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLaW5zdHJ1bWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50Eg0KBXRvdGFsGAQgASgNItoCChFHZXRNYXJrZXRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBI6CgttYXJrZXRfdHlwZRgCIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGVIAIgBARIcCg9iYXNlX2luc3RydW1lbnQYAyABKAlIAYgBARIdChBxdW90ZV9pbnN0cnVtZW50GAQgASgJSAKIAQESGAoLYWN0aXZlX29ubHkYBSABKAhIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg4KDF9tYXJrZXRfdHlwZUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50Qg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJ0ChJHZXRNYXJrZXRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi0KB21hcmtldHMYAyADKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQSDQoFdG90YWwYBCABKA0iqQIKFkdldE9yZGVySGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQidwoXR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIlcKFEdldE1hcmtldERhdGFSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhIKCm1hcmtldF9pZHMYAiADKAkicAoVR2V0TWFya2V0RGF0YVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgttYXJrZXRfZGF0YRgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldERhdGEiqAIKFUdldFNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0U2V0dGxlbWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLc2V0dGxlbWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50Eg0KBXRvdGFsGAQgASgNInkKGVN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQFCCAoGX2RlcHRoIocDCg9PcmRlcmJvb2tVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEkUKC3VwZGF0ZV90eXBlGAIgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlLlVwZGF0ZVR5cGUSOQoLYmlkX3VwZGF0ZXMYAyADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBI7Cg1vZmZlcl91cGRhdGVzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiWgoKVXBkYXRlVHlwZRIbChdVUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFVQREFURV9UWVBFX1NOQVBTSE9UEAESFQoRVVBEQVRFX1RZUEVfREVMVEEQAiJrChZTdWJzY3JpYmVPcmRlcnNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQirQMKC09yZGVyVXBkYXRlEj8KCmV2ZW50X3R5cGUYASABKA4yKy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZS5FdmVudFR5cGUSKgoFb3JkZXIYAiABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchI0CgVtYXRjaBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hIAIgBARItCgl0aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsEBCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhYKEkVWRU5UX1RZUEVfQ1JFQVRFRBABEhYKEkVWRU5UX1RZUEVfVVBEQVRFRBACEhUKEUVWRU5UX1RZUEVfRklMTEVEEAMSHwobRVZFTlRfVFlQRV9QQVJUSUFMTFlfRklMTEVEEAQSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQBRIWChJFVkVOVF9UWVBFX0VYUElSRUQQBkIICgZfbWF0Y2gicAobU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQi8QMKEFNldHRsZW1lbnRVcGRhdGUSRAoKZXZlbnRfdHlwZRgBIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUuRXZlbnRUeXBlEjoKCHByb3Bvc2FsGAIgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsEi0KCXRpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqwIKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobRVZFTlRfVFlQRV9QUk9QT1NBTF9DUkVBVEVEEAESKAokRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEEAISGwoXRVZFTlRfVFlQRV9QUkVDT05GSVJNRUQQAxIaChZFVkVOVF9UWVBFX0RWUF9DUkVBVEVEEAQSGwoXRVZFTlRfVFlQRV9EVlBfQUNDRVBURUQQBRIYChRFVkVOVF9UWVBFX0FMTE9DQVRFRBAGEhYKEkVWRU5UX1RZUEVfU0VUVExFRBAHEhUKEUVWRU5UX1RZUEVfRkFJTEVEEAgSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQCSKhBAoSU3VibWl0T3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg0KBXByaWNlGAQgASgJEhAKCHF1YW50aXR5GAUgASgJEjgKDXRpbWVfaW5fZm9yY2UYBiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEh0KEHRyYWRlcl9vcmRlcl9yZWYYCCABKAlIAYgBARIxCgtjcmVkZW50aWFscxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIyCgxyZXF1aXJlbWVudHMYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCDQoLX2V4cGlyZXNfYXRCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiUwoSQ2FuY2VsT3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCG9yZGVyX2lkGAIgASgEInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIqUQoJT3JkZXJUeXBlEhoKFk9SREVSX1RZUEVfVU5TUEVDSUZJRUQQABISCg5PUkRFUl9UWVBFX0JJRBABEhQKEE9SREVSX1RZUEVfT0ZGRVIQAiqtAQoLT3JkZXJTdGF0dXMSHAoYT1JERVJfU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTT1JERVJfU1RBVFVTX0FDVElWRRABEhgKFE9SREVSX1NUQVRVU19QQVJUSUFMEAISFwoTT1JERVJfU1RBVFVTX0ZJTExFRBADEhoKFk9SREVSX1NUQVRVU19DQU5DRUxMRUQQBBIYChRPUkRFUl9TVEFUVVNfRVhQSVJFRBAFKogBCgtUaW1lSW5Gb3JjZRIdChlUSU1FX0lOX0ZPUkNFX1VOU1BFQ0lGSUVEEAASFQoRVElNRV9JTl9GT1JDRV9HVEMQARIVChFUSU1FX0lOX0ZPUkNFX0lPQxACEhUKEVRJTUVfSU5fRk9SQ0VfRk9LEAMSFQoRVElNRV9JTl9GT1JDRV9HVEQQBCraAgoQU2V0dGxlbWVudFN0YXR1cxIhCh1TRVRUTEVNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEh0KGVNFVFRMRU1FTlRfU1RBVFVTX0NSRUFURUQQARIiCh5TRVRUTEVNRU5UX1NUQVRVU19QUkVDT05GSVJNRUQQAhIpCiVTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9DUkVBVEVEEAMSKgomU0VUVExFTUVOVF9TVEFUVVNfRFZQX1JFUVVFU1RfQUNDRVBURUQQBBIrCidTRVRUTEVNRU5UX1NUQVRVU19JTlNUUlVNRU5UU19BTExPQ0FURUQQBRIdChlTRVRUTEVNRU5UX1NUQVRVU19TRVRUTEVEEAYSHwobU0VUVExFTUVOVF9TVEFUVVNfQ0FOQ0VMTEVEEAcSHAoYU0VUVExFTUVOVF9TVEFUVVNfRkFJTEVEEAgqdgoKTWFya2V0VHlwZRIbChdNQVJLRVRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE01BUktFVF9UWVBFX0dFTkVSQUwQARIdChlNQVJLRVRfVFlQRV9JTlNUSVRVVElPTkFMEAISEwoPTUFSS0VUX1RZUEVfT1RDEAMylAsKEE9yZGVyYm9va1NlcnZpY2USXAoJR2V0T3JkZXJzEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1Jlc3BvbnNlEnQKEUdldE9yZGVyYm9va0RlcHRoEi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0Gi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRKDAQoWR2V0U2V0dGxlbWVudFByb3Bvc2FscxIzLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEmsKDkdldEluc3RydW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXNwb25zZRJfCgpHZXRNYXJrZXRzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVzcG9uc2USbgoPR2V0T3JkZXJIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlc3BvbnNlEmgKDUdldE1hcmtldERhdGESKi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVxdWVzdBorLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXNwb25zZRJrCg5HZXRTZXR0bGVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVzcG9uc2USYgoLU3VibWl0T3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlc3BvbnNlEmIKC0NhbmNlbE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXNwb25zZRJuChJTdWJzY3JpYmVPcmRlcmJvb2sSLy5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcmJvb2tSZXF1ZXN0GiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlMAESZAoPU3Vic2NyaWJlT3JkZXJzEiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJzUmVxdWVzdBohLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlMAEScwoUU3Vic2NyaWJlU2V0dGxlbWVudHMSMS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QaJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50VXBkYXRlMAFCNFoyZ2l0aHViLmNvbS9TaWx2YW5hT25lL2NhbnRvbi1hZ2VudC9wcm90bztvcmRlcmJvb2tiBnByb3RvMw", [import_wkt.file_google_protobuf_timestamp, import_wkt.file_google_protobuf_empty, import_wkt.file_google_protobuf_struct]);
125
+ var file_proto_silvana_orderbook_v1_orderbook = /* @__PURE__ */ (0, import_codegenv2.fileDesc)("Cipwcm90by9zaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIhgKB0pXVEF1dGgSDQoFdG9rZW4YASABKAki5QIKCkluc3RydW1lbnQSFQoNaW5zdHJ1bWVudF9pZBgBIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAiABKAkSDAoEbmFtZRgDIAEoCRIOCgZzeW1ib2wYBCABKAkSGAoLZGVzY3JpcHRpb24YBSABKAlIAIgBARITCgZpc3N1ZXIYBiABKAlIAYgBARIVCghyZWdpc3RyeRgHIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEi3AUKBk1hcmtldBIRCgltYXJrZXRfaWQYASABKAkSNQoLbWFya2V0X3R5cGUYAiABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhcKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAQgASgJEhMKC3BhaXJfc3ltYm9sGAUgASgJEhEKCWlzX2FjdGl2ZRgGIAEoCBIWCg5taW5fb3JkZXJfc2l6ZRgHIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgIIAEoCUgAiAEBEhEKCXRpY2tfc2l6ZRgJIAEoCRIRCgltYWtlcl9mZWUYCiABKAkSEQoJdGFrZXJfZmVlGAsgASgJEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYDiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKC3ByaWNlX2ZlZWRzGA8gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEhoKDWN1cnJlbnRfcHJpY2UYECABKAFIA4gBARIXCgpjaGFuZ2VfMjRoGBEgASgBSASIAQESFwoKdm9sdW1lXzI0aBgSIAEoAUgFiAEBEjkKEHByaWNlX3VwZGF0ZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAaIAQFCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHNCEAoOX2N1cnJlbnRfcHJpY2VCDQoLX2NoYW5nZV8yNGhCDQoLX3ZvbHVtZV8yNGhCEwoRX3ByaWNlX3VwZGF0ZWRfYXQi9wYKBU9yZGVyEhAKCG9yZGVyX2lkGAEgASgEEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg4KBnRyYWRlchgEIAEoCRIdChB0cmFkZXJfb3JkZXJfcmVmGAUgASgJSACIAQESFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSDQoFcHJpY2UYCCABKAkSEAoIcXVhbnRpdHkYCSABKAkSFwoPZmlsbGVkX3F1YW50aXR5GAogASgJEhgKEHBlbmRpbmdfcXVhbnRpdHkYCyABKAkSGgoScmVtYWluaW5nX3F1YW50aXR5GAwgASgJEjEKBnN0YXR1cxgNIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyU3RhdHVzEjgKDXRpbWVfaW5fZm9yY2UYDiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEg8KB3ZlcnNpb24YECABKAQSMQoLY3JlZGVudGlhbHMYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESMgoMcmVxdWlyZW1lbnRzGBIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCG1ldGFkYXRhGBMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYFSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjUKDGNhbmNlbGxlZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBAUITChFfdHJhZGVyX29yZGVyX3JlZkINCgtfZXhwaXJlc19hdEIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDwoNX2NhbmNlbGxlZF9hdCKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAipREKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhUKDWJhc2VfcXVhbnRpdHkYBSABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBiABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgHIAEoCRI2CgZzdGF0dXMYCCABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEg8KB3ZlcnNpb24YCSABKAQSPQoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESSAofcHJlY29uZmlybWF0aW9uX3JlcXVlc3Rfc2VudF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARI7ChVidXllcl9wcmVjb25maXJtYXRpb24YDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESSgohYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgDiAEBEjwKFnNlbGxlcl9wcmVjb25maXJtYXRpb24YDiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESSwoic2VsbGVyX3ByZWNvbmZpcm1hdGlvbl9yZWNlaXZlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARIdChBkdnBfcHJvcG9zYWxfY2lkGBAgASgJSAaIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgRIAEoCUgHiAEBEhQKB2R2cF9jaWQYEiABKAlICIgBARIaCg1kdnBfdXBkYXRlX2lkGBMgASgJSAmIAQESHgoRZHZwX3NldHRsZW1lbnRfaWQYFCABKAlICogBARIhChRhbGxvY2F0aW9uX2J1eWVyX2NpZBgVIAEoCUgLiAEBEicKGmFsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkGBYgASgJSAyIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGBcgASgJSA2IAQESKAobYWxsb2NhdGlvbl9zZWxsZXJfdXBkYXRlX2lkGBggASgJSA6IAQESHAoPc2V0dGxlZF9kdnBfY2lkGBkgASgJSA+IAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYGiABKAlIEIgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GBsgASgJSBGIAQESLgoKY3JlYXRlZF9hdBgcIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoPcHJlY29uZmlybWVkX2F0GB0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgSiAEBEjcKDmR2cF9jcmVhdGVkX2F0GB4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgTiAEBEjgKD2R2cF9hY2NlcHRlZF9hdBgfIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFIgBARI1CgxhbGxvY2F0ZWRfYXQYICABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBWIAQESMwoKc2V0dGxlZF9hdBghIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIFogBARI1CgxjYW5jZWxsZWRfYXQYIiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBeIAQESMgoJZmFpbGVkX2F0GCMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgYiAEBEhoKDWVycm9yX21lc3NhZ2UYJCABKAlIGYgBARIuCghtZXRhZGF0YRglIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIGogBAUIaChhfcHJlY29uZmlybWF0aW9uX3JlcXVlc3RCIgogX3ByZWNvbmZpcm1hdGlvbl9yZXF1ZXN0X3NlbnRfYXRCGAoWX2J1eWVyX3ByZWNvbmZpcm1hdGlvbkIkCiJfYnV5ZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhkKF19zZWxsZXJfcHJlY29uZmlybWF0aW9uQiUKI19zZWxsZXJfcHJlY29uZmlybWF0aW9uX3JlY2VpdmVkX2F0QhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQgoKCF9kdnBfY2lkQhAKDl9kdnBfdXBkYXRlX2lkQhQKEl9kdnBfc2V0dGxlbWVudF9pZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCHQobX2FsbG9jYXRpb25fYnV5ZXJfdXBkYXRlX2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCHgocX2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEISChBfcHJlY29uZmlybWVkX2F0QhEKD19kdnBfY3JlYXRlZF9hdEISChBfZHZwX2FjY2VwdGVkX2F0Qg8KDV9hbGxvY2F0ZWRfYXRCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLNAQoKT3JkZXJNYXRjaBIQCghtYXRjaF9pZBgBIAEoBBIeChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAIgASgEEhQKDGJpZF9vcmRlcl9pZBgDIAEoBBIWCg5vZmZlcl9vcmRlcl9pZBgEIAEoBBIYChBtYXRjaGVkX3F1YW50aXR5GAUgASgJEhUKDW1hdGNoZWRfcHJpY2UYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihwMKClNldHRsZW1lbnQSFQoNc2V0dGxlbWVudF9pZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoBBIRCgltYXJrZXRfaWQYAyABKAkSDQoFYnV5ZXIYBCABKAkSDgoGc2VsbGVyGAUgASgJEhUKDWJhc2VfcXVhbnRpdHkYBiABKAkSFgoOcXVvdGVfcXVhbnRpdHkYByABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYCSABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYCiABKAkSLgoKc2V0dGxlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKY3JlYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoIbWV0YWRhdGEYDSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCCwoJX21ldGFkYXRhIpUCCgpNYXJrZXREYXRhEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIVCghiZXN0X2JpZBgDIAEoCUgAiAEBEhcKCmJlc3Rfb2ZmZXIYBCABKAlIAYgBARIXCgpsYXN0X3ByaWNlGAUgASgJSAKIAQESEgoKdm9sdW1lXzI0aBgGIAEoCRISCgp0cmFkZXNfMjRoGAcgASgNEhMKC29wZW5fb3JkZXJzGAggASgNEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9iZXN0X2JpZEINCgtfYmVzdF9vZmZlckINCgtfbGFzdF9wcmljZSKvAgoQR2V0T3JkZXJzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARI2CgZzdGF0dXMYAyABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1c0gBiAEBEjgKCm9yZGVyX3R5cGUYBCABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGVIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0INCgtfb3JkZXJfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCJxChFHZXRPcmRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0ieAoYR2V0T3JkZXJib29rRGVwdGhSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRISCgVkZXB0aBgDIAEoDUgAiAEBQggKBl9kZXB0aCJ2ChlHZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI3CglvcmRlcmJvb2sYAyABKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tEZXB0aCL4AQodR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESOwoGc3RhdHVzGAMgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFN0YXR1c0gBiAEBEhIKBWxpbWl0GAQgASgNSAKIAQESEwoGb2Zmc2V0GAUgASgNSAOIAQFCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQggKBl9saW1pdEIJCgdfb2Zmc2V0Io4BCh5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjsKCXByb3Bvc2FscxgDIAMoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRQcm9wb3NhbBINCgV0b3RhbBgEIAEoDSK0AQoVR2V0SW5zdHJ1bWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhwKD2luc3RydW1lbnRfdHlwZRgCIAEoCUgAiAEBEhIKBWxpbWl0GAMgASgNSAGIAQESEwoGb2Zmc2V0GAQgASgNSAKIAQFCEgoQX2luc3RydW1lbnRfdHlwZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0SW5zdHJ1bWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLaW5zdHJ1bWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50Eg0KBXRvdGFsGAQgASgNItoCChFHZXRNYXJrZXRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBI6CgttYXJrZXRfdHlwZRgCIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGVIAIgBARIcCg9iYXNlX2luc3RydW1lbnQYAyABKAlIAYgBARIdChBxdW90ZV9pbnN0cnVtZW50GAQgASgJSAKIAQESGAoLYWN0aXZlX29ubHkYBSABKAhIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg4KDF9tYXJrZXRfdHlwZUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50Qg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJ0ChJHZXRNYXJrZXRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi0KB21hcmtldHMYAyADKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQSDQoFdG90YWwYBCABKA0iqQIKFkdldE9yZGVySGlzdG9yeVJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFgoJbWFya2V0X2lkGAIgASgJSACIAQESMgoJZnJvbV90aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjAKB3RvX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBAUIMCgpfbWFya2V0X2lkQgwKCl9mcm9tX3RpbWVCCgoIX3RvX3RpbWVCCAoGX2xpbWl0QgkKB19vZmZzZXQidwoXR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIlcKFEdldE1hcmtldERhdGFSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhIKCm1hcmtldF9pZHMYAiADKAkicAoVR2V0TWFya2V0RGF0YVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgttYXJrZXRfZGF0YRgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldERhdGEiqAIKFUdldFNldHRsZW1lbnRzUmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCKAAQoWR2V0U2V0dGxlbWVudHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNQoLc2V0dGxlbWVudHMYAyADKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50Eg0KBXRvdGFsGAQgASgNInkKGVN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEhIKBWRlcHRoGAMgASgNSACIAQFCCAoGX2RlcHRoIocDCg9PcmRlcmJvb2tVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEkUKC3VwZGF0ZV90eXBlGAIgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rVXBkYXRlLlVwZGF0ZVR5cGUSOQoLYmlkX3VwZGF0ZXMYAyADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBI7Cg1vZmZlcl91cGRhdGVzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSLQoJdGltZXN0YW1wGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYBiABKAQiWgoKVXBkYXRlVHlwZRIbChdVUERBVEVfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFVQREFURV9UWVBFX1NOQVBTSE9UEAESFQoRVVBEQVRFX1RZUEVfREVMVEEQAiJrChZTdWJzY3JpYmVPcmRlcnNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQirQMKC09yZGVyVXBkYXRlEj8KCmV2ZW50X3R5cGUYASABKA4yKy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZS5FdmVudFR5cGUSKgoFb3JkZXIYAiABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlchI0CgVtYXRjaBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hIAIgBARItCgl0aW1lc3RhbXAYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsEBCglFdmVudFR5cGUSGgoWRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEhYKEkVWRU5UX1RZUEVfQ1JFQVRFRBABEhYKEkVWRU5UX1RZUEVfVVBEQVRFRBACEhUKEUVWRU5UX1RZUEVfRklMTEVEEAMSHwobRVZFTlRfVFlQRV9QQVJUSUFMTFlfRklMTEVEEAQSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQBRIWChJFVkVOVF9UWVBFX0VYUElSRUQQBkIICgZfbWF0Y2gicAobU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQi8QMKEFNldHRsZW1lbnRVcGRhdGUSRAoKZXZlbnRfdHlwZRgBIAEoDjIwLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUuRXZlbnRUeXBlEjoKCHByb3Bvc2FsGAIgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsEi0KCXRpbWVzdGFtcBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqwIKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASHwobRVZFTlRfVFlQRV9QUk9QT1NBTF9DUkVBVEVEEAESKAokRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEEAISGwoXRVZFTlRfVFlQRV9QUkVDT05GSVJNRUQQAxIaChZFVkVOVF9UWVBFX0RWUF9DUkVBVEVEEAQSGwoXRVZFTlRfVFlQRV9EVlBfQUNDRVBURUQQBRIYChRFVkVOVF9UWVBFX0FMTE9DQVRFRBAGEhYKEkVWRU5UX1RZUEVfU0VUVExFRBAHEhUKEUVWRU5UX1RZUEVfRkFJTEVEEAgSGAoURVZFTlRfVFlQRV9DQU5DRUxMRUQQCSKhBAoSU3VibWl0T3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhEKCW1hcmtldF9pZBgCIAEoCRIzCgpvcmRlcl90eXBlGAMgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlEg0KBXByaWNlGAQgASgJEhAKCHF1YW50aXR5GAUgASgJEjgKDXRpbWVfaW5fZm9yY2UYBiABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5UaW1lSW5Gb3JjZRIzCgpleHBpcmVzX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBEh0KEHRyYWRlcl9vcmRlcl9yZWYYCCABKAlIAYgBARIxCgtjcmVkZW50aWFscxgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIyCgxyZXF1aXJlbWVudHMYCiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCDQoLX2V4cGlyZXNfYXRCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiUwoSQ2FuY2VsT3JkZXJSZXF1ZXN0EisKBGF1dGgYASABKAsyHS5zaWx2YW5hLm9yZGVyYm9vay52MS5KV1RBdXRoEhAKCG9yZGVyX2lkGAIgASgEInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIipgIKEkNyZWF0ZVBhcnR5UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGEiYwoTQ3JlYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSLfAgoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YSK/AgoXQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSFQoNaW5zdHJ1bWVudF9pZBgCIAEoCRIXCg9pbnN0cnVtZW50X3R5cGUYAyABKAkSDAoEbmFtZRgEIAEoCRIOCgZzeW1ib2wYBSABKAkSGAoLZGVzY3JpcHRpb24YBiABKAlIAIgBARITCgZpc3N1ZXIYByABKAlIAYgBARIVCghyZWdpc3RyeRgIIAEoCUgCiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBQg4KDF9kZXNjcmlwdGlvbkIJCgdfaXNzdWVyQgsKCV9yZWdpc3RyeUILCglfbWV0YWRhdGEicgoYQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI0CgppbnN0cnVtZW50GAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW5zdHJ1bWVudCLzAwoTQ3JlYXRlTWFya2V0UmVxdWVzdBIrCgRhdXRoGAEgASgLMh0uc2lsdmFuYS5vcmRlcmJvb2sudjEuSldUQXV0aBIRCgltYXJrZXRfaWQYAiABKAkSNQoLbWFya2V0X3R5cGUYAyABKA4yIC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXRUeXBlEhwKD2Jhc2VfaW5zdHJ1bWVudBgEIAEoCUgAiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBSABKAlIAYgBARIWCg5taW5fb3JkZXJfc2l6ZRgGIAEoCRIbCg5tYXhfb3JkZXJfc2l6ZRgHIAEoCUgCiAEBEhEKCXRpY2tfc2l6ZRgIIAEoCRIRCgltYWtlcl9mZWUYCSABKAkSEQoJdGFrZXJfZmVlGAogASgJEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEjEKC3ByaWNlX2ZlZWRzGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCEQoPX21heF9vcmRlcl9zaXplQgsKCV9tZXRhZGF0YUIOCgxfcHJpY2VfZmVlZHMiZgoUQ3JlYXRlTWFya2V0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCKNAQodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSKwoEYXV0aBgBIAEoCzIdLnNpbHZhbmEub3JkZXJib29rLnYxLkpXVEF1dGgSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJwCh5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCpRCglPcmRlclR5cGUSGgoWT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEhIKDk9SREVSX1RZUEVfQklEEAESFAoQT1JERVJfVFlQRV9PRkZFUhACKq0BCgtPcmRlclN0YXR1cxIcChhPUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNPUkRFUl9TVEFUVVNfQUNUSVZFEAESGAoUT1JERVJfU1RBVFVTX1BBUlRJQUwQAhIXChNPUkRFUl9TVEFUVVNfRklMTEVEEAMSGgoWT1JERVJfU1RBVFVTX0NBTkNFTExFRBAEEhgKFE9SREVSX1NUQVRVU19FWFBJUkVEEAUqiAEKC1RpbWVJbkZvcmNlEh0KGVRJTUVfSU5fRk9SQ0VfVU5TUEVDSUZJRUQQABIVChFUSU1FX0lOX0ZPUkNFX0dUQxABEhUKEVRJTUVfSU5fRk9SQ0VfSU9DEAISFQoRVElNRV9JTl9GT1JDRV9GT0sQAxIVChFUSU1FX0lOX0ZPUkNFX0dURBAEKtoCChBTZXR0bGVtZW50U3RhdHVzEiEKHVNFVFRMRU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZU0VUVExFTUVOVF9TVEFUVVNfQ1JFQVRFRBABEiIKHlNFVFRMRU1FTlRfU1RBVFVTX1BSRUNPTkZJUk1FRBACEikKJVNFVFRMRU1FTlRfU1RBVFVTX0RWUF9SRVFVRVNUX0NSRUFURUQQAxIqCiZTRVRUTEVNRU5UX1NUQVRVU19EVlBfUkVRVUVTVF9BQ0NFUFRFRBAEEisKJ1NFVFRMRU1FTlRfU1RBVFVTX0lOU1RSVU1FTlRTX0FMTE9DQVRFRBAFEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1NFVFRMRUQQBhIfChtTRVRUTEVNRU5UX1NUQVRVU19DQU5DRUxMRUQQBxIcChhTRVRUTEVNRU5UX1NUQVRVU19GQUlMRUQQCCp2CgpNYXJrZXRUeXBlEhsKF01BUktFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VUX1RZUEVfR0VORVJBTBABEh0KGU1BUktFVF9UWVBFX0lOU1RJVFVUSU9OQUwQAhITCg9NQVJLRVRfVFlQRV9PVEMQAzLYDgoQT3JkZXJib29rU2VydmljZRJcCglHZXRPcmRlcnMSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVzcG9uc2USdAoRR2V0T3JkZXJib29rRGVwdGgSLi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QaLy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEoMBChZHZXRTZXR0bGVtZW50UHJvcG9zYWxzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USawoOR2V0SW5zdHJ1bWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnN0cnVtZW50c1Jlc3BvbnNlEl8KCkdldE1hcmtldHMSJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVxdWVzdBooLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXNwb25zZRJuCg9HZXRPcmRlckhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVzcG9uc2USaAoNR2V0TWFya2V0RGF0YRIqLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXF1ZXN0Gisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlc3BvbnNlEmsKDkdldFNldHRsZW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudHNSZXNwb25zZRJiCgtTdWJtaXRPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVzcG9uc2USYgoLQ2FuY2VsT3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlc3BvbnNlEmIKC0NyZWF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXNwb25zZRJxChBDcmVhdGVJbnN0cnVtZW50Ei0uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QaLi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USZQoMQ3JlYXRlTWFya2V0Eikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVxdWVzdBoqLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlc3BvbnNlEoMBChZVcGRhdGVNYXJrZXRQcmljZUZlZWRzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USbgoSU3Vic2NyaWJlT3JkZXJib29rEi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBolLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZTABEmQKD1N1YnNjcmliZU9yZGVycxIsLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyc1JlcXVlc3QaIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZTABEnMKFFN1YnNjcmliZVNldHRsZW1lbnRzEjEuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZTABQjRaMmdpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87b3JkZXJib29rYgZwcm90bzM", [import_wkt.file_google_protobuf_timestamp, import_wkt.file_google_protobuf_empty, import_wkt.file_google_protobuf_struct]);
92
126
  var JWTAuthSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 0);
93
127
  var InstrumentSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 1);
94
128
  var MarketSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 2);
@@ -157,6 +191,15 @@ var SubmitOrderRequestSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)
157
191
  var SubmitOrderResponseSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 33);
158
192
  var CancelOrderRequestSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 34);
159
193
  var CancelOrderResponseSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 35);
194
+ var CreatePartyRequestSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 36);
195
+ var CreatePartyResponseSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 37);
196
+ var PartySchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 38);
197
+ var CreateInstrumentRequestSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 39);
198
+ var CreateInstrumentResponseSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 40);
199
+ var CreateMarketRequestSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 41);
200
+ var CreateMarketResponseSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 42);
201
+ var UpdateMarketPriceFeedsRequestSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 43);
202
+ var UpdateMarketPriceFeedsResponseSchema = /* @__PURE__ */ (0, import_codegenv2.messageDesc)(file_proto_silvana_orderbook_v1_orderbook, 44);
160
203
  var OrderType;
161
204
  (function(OrderType2) {
162
205
  OrderType2[OrderType2["UNSPECIFIED"] = 0] = "UNSPECIFIED";
@@ -206,7 +249,7 @@ var MarketType;
206
249
  var MarketTypeSchema = /* @__PURE__ */ (0, import_codegenv2.enumDesc)(file_proto_silvana_orderbook_v1_orderbook, 4);
207
250
  var OrderbookService = /* @__PURE__ */ (0, import_codegenv2.serviceDesc)(file_proto_silvana_orderbook_v1_orderbook, 0);
208
251
 
209
- // dist/node/grpc.js
252
+ // dist/node/orderbook.js
210
253
  function dateToTimestamp(date) {
211
254
  const seconds = BigInt(Math.floor(date.getTime() / 1e3));
212
255
  const nanos = date.getTime() % 1e3 * 1e6;
@@ -406,33 +449,232 @@ var OrderbookClient = class {
406
449
  });
407
450
  return this.client.subscribeSettlements(request);
408
451
  }
452
+ /**
453
+ * Create a new party (admin operation)
454
+ */
455
+ async createParty(params) {
456
+ return await this.wrapCall(async () => {
457
+ const request = (0, import_protobuf.create)(CreatePartyRequestSchema, {
458
+ auth: this.createAuth(),
459
+ ...params
460
+ });
461
+ return await this.client.createParty(request);
462
+ }, "createParty");
463
+ }
464
+ /**
465
+ * Create a new instrument (admin operation)
466
+ */
467
+ async createInstrument(params) {
468
+ return await this.wrapCall(async () => {
469
+ const request = (0, import_protobuf.create)(CreateInstrumentRequestSchema, {
470
+ auth: this.createAuth(),
471
+ ...params
472
+ });
473
+ return await this.client.createInstrument(request);
474
+ }, "createInstrument");
475
+ }
476
+ /**
477
+ * Create a new market (admin operation)
478
+ */
479
+ async createMarket(params) {
480
+ return await this.wrapCall(async () => {
481
+ const request = (0, import_protobuf.create)(CreateMarketRequestSchema, {
482
+ auth: this.createAuth(),
483
+ ...params
484
+ });
485
+ return await this.client.createMarket(request);
486
+ }, "createMarket");
487
+ }
488
+ /**
489
+ * Update market price feeds (admin operation)
490
+ */
491
+ async updateMarketPriceFeeds(params) {
492
+ return await this.wrapCall(async () => {
493
+ const request = (0, import_protobuf.create)(UpdateMarketPriceFeedsRequestSchema, {
494
+ auth: this.createAuth(),
495
+ ...params
496
+ });
497
+ return await this.client.updateMarketPriceFeeds(request);
498
+ }, "updateMarketPriceFeeds");
499
+ }
500
+ };
501
+
502
+ // dist/node/pricing.js
503
+ var import_connect_node2 = require("@connectrpc/connect-node");
504
+ var import_connect2 = require("@connectrpc/connect");
505
+ var import_protobuf2 = require("@bufbuild/protobuf");
506
+ var import_wkt4 = require("@bufbuild/protobuf/wkt");
507
+
508
+ // dist/node/proto/silvana/pricing/v1/pricing_pb.js
509
+ var import_codegenv22 = require("@bufbuild/protobuf/codegenv2");
510
+ var import_wkt3 = require("@bufbuild/protobuf/wkt");
511
+ var file_proto_silvana_pricing_v1_pricing = /* @__PURE__ */ (0, import_codegenv22.fileDesc)("CiZwcm90by9zaWx2YW5hL3ByaWNpbmcvdjEvcHJpY2luZy5wcm90bxISc2lsdmFuYS5wcmljaW5nLnYxIkQKD0dldFByaWNlUmVxdWVzdBIRCgltYXJrZXRfaWQYASABKAkSEwoGc291cmNlGAIgASgJSACIAQFCCQoHX3NvdXJjZSLMAgoQR2V0UHJpY2VSZXNwb25zZRIRCgltYXJrZXRfaWQYASABKAkSEAoDYmlkGAIgASgBSACIAQESEAoDYXNrGAMgASgBSAGIAQESDAoEbGFzdBgEIAEoARIXCgp2b2x1bWVfMjRoGAUgASgBSAKIAQESHwoSY2hhbmdlXzI0aF9wZXJjZW50GAYgASgBSAOIAQESFQoIaGlnaF8yNGgYByABKAFIBIgBARIUCgdsb3dfMjRoGAggASgBSAWIAQESDgoGc291cmNlGAkgASgJEi0KCXRpbWVzdGFtcBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCBgoEX2JpZEIGCgRfYXNrQg0KC192b2x1bWVfMjRoQhUKE19jaGFuZ2VfMjRoX3BlcmNlbnRCCwoJX2hpZ2hfMjRoQgoKCF9sb3dfMjRoIkYKEEdldFByaWNlc1JlcXVlc3QSEgoKbWFya2V0X2lkcxgBIAMoCRITCgZzb3VyY2UYAiABKAlIAIgBAUIJCgdfc291cmNlIj4KEUdldFByaWNlc1Jlc3BvbnNlEikKBnByaWNlcxgBIAMoCzIZLnNpbHZhbmEucHJpY2luZy52MS5QcmljZSLBAgoFUHJpY2USEQoJbWFya2V0X2lkGAEgASgJEhAKA2JpZBgCIAEoAUgAiAEBEhAKA2FzaxgDIAEoAUgBiAEBEgwKBGxhc3QYBCABKAESFwoKdm9sdW1lXzI0aBgFIAEoAUgCiAEBEh8KEmNoYW5nZV8yNGhfcGVyY2VudBgGIAEoAUgDiAEBEhUKCGhpZ2hfMjRoGAcgASgBSASIAQESFAoHbG93XzI0aBgIIAEoAUgFiAEBEg4KBnNvdXJjZRgJIAEoCRItCgl0aW1lc3RhbXAYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgYKBF9iaWRCBgoEX2Fza0INCgtfdm9sdW1lXzI0aEIVChNfY2hhbmdlXzI0aF9wZXJjZW50QgsKCV9oaWdoXzI0aEIKCghfbG93XzI0aCL5AQoQR2V0S2xpbmVzUmVxdWVzdBIRCgltYXJrZXRfaWQYASABKAkSEAoIaW50ZXJ2YWwYAiABKAkSEgoFbGltaXQYAyABKAVIAIgBARIzCgpzdGFydF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjEKCGVuZF90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhMKBnNvdXJjZRgGIAEoCUgDiAEBQggKBl9saW1pdEINCgtfc3RhcnRfdGltZUILCglfZW5kX3RpbWVCCQoHX3NvdXJjZSJzChFHZXRLbGluZXNSZXNwb25zZRIRCgltYXJrZXRfaWQYASABKAkSEAoIaW50ZXJ2YWwYAiABKAkSKQoGa2xpbmVzGAMgAygLMhkuc2lsdmFuYS5wcmljaW5nLnYxLktsaW5lEg4KBnNvdXJjZRgEIAEoCSLUAQoFS2xpbmUSLQoJb3Blbl90aW1lGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgRvcGVuGAIgASgBEgwKBGhpZ2gYAyABKAESCwoDbG93GAQgASgBEg0KBWNsb3NlGAUgASgBEg4KBnZvbHVtZRgGIAEoARIuCgpjbG9zZV90aW1lGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIUCgxxdW90ZV92b2x1bWUYCCABKAESDgoGdHJhZGVzGAkgASgFImYKE0dldE9yZGVyQm9va1JlcXVlc3QSEQoJbWFya2V0X2lkGAEgASgJEhIKBWRlcHRoGAIgASgFSACIAQESEwoGc291cmNlGAMgASgJSAGIAQFCCAoGX2RlcHRoQgkKB19zb3VyY2UizAEKFEdldE9yZGVyQm9va1Jlc3BvbnNlEhEKCW1hcmtldF9pZBgBIAEoCRIwCgRiaWRzGAIgAygLMiIuc2lsdmFuYS5wcmljaW5nLnYxLk9yZGVyQm9va0xldmVsEjAKBGFza3MYAyADKAsyIi5zaWx2YW5hLnByaWNpbmcudjEuT3JkZXJCb29rTGV2ZWwSLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIOCgZzb3VyY2UYBSABKAkiMQoOT3JkZXJCb29rTGV2ZWwSDQoFcHJpY2UYASABKAESEAoIcXVhbnRpdHkYAiABKAEijwEKE1N0cmVhbVByaWNlc1JlcXVlc3QSEgoKbWFya2V0X2lkcxgBIAMoCRIeChFpbmNsdWRlX29yZGVyYm9vaxgCIAEoCEgAiAEBEhsKDmluY2x1ZGVfdHJhZGVzGAMgASgISAGIAQFCFAoSX2luY2x1ZGVfb3JkZXJib29rQhEKD19pbmNsdWRlX3RyYWRlcyLMAgoLUHJpY2VVcGRhdGUSEQoJbWFya2V0X2lkGAEgASgJEg0KBXByaWNlGAIgASgBEhAKA2JpZBgDIAEoAUgAiAEBEhAKA2FzaxgEIAEoAUgBiAEBEhMKBnZvbHVtZRgFIAEoAUgCiAEBEg4KBnNvdXJjZRgGIAEoCRItCgl0aW1lc3RhbXAYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjsKCW9yZGVyYm9vaxgIIAEoCzIjLnNpbHZhbmEucHJpY2luZy52MS5PcmRlckJvb2tVcGRhdGVIA4gBARIzCgV0cmFkZRgJIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5UcmFkZVVwZGF0ZUgEiAEBQgYKBF9iaWRCBgoEX2Fza0IJCgdfdm9sdW1lQgwKCl9vcmRlcmJvb2tCCAoGX3RyYWRlInUKD09yZGVyQm9va1VwZGF0ZRIwCgRiaWRzGAEgAygLMiIuc2lsdmFuYS5wcmljaW5nLnYxLk9yZGVyQm9va0xldmVsEjAKBGFza3MYAiADKAsyIi5zaWx2YW5hLnByaWNpbmcudjEuT3JkZXJCb29rTGV2ZWwidQoLVHJhZGVVcGRhdGUSDQoFcHJpY2UYASABKAESEAoIcXVhbnRpdHkYAiABKAESFgoOaXNfYnV5ZXJfbWFrZXIYAyABKAgSLQoJdGltZXN0YW1wGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJdChVHZXRQaXZvdFBvaW50c1JlcXVlc3QSEQoJbWFya2V0X2lkGAEgASgJEhEKCXRpbWVmcmFtZRgCIAEoCRITCgZzb3VyY2UYAyABKAlIAIgBAUIJCgdfc291cmNlIqADChZHZXRQaXZvdFBvaW50c1Jlc3BvbnNlEhEKCW1hcmtldF9pZBgBIAEoCRIwCgdjbGFzc2ljGAIgASgLMh8uc2lsdmFuYS5wcmljaW5nLnYxLlBpdm90UG9pbnRzEjcKCWZpYm9uYWNjaRgDIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gAiAEBEjcKCWNhbWFyaWxsYRgEIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gBiAEBEjQKBndvb2RpZRgFIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gCiAEBEjQKBmRlbWFyaxgGIAEoCzIfLnNpbHZhbmEucHJpY2luZy52MS5QaXZvdFBvaW50c0gDiAEBEjEKDWNhbGN1bGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgwKCl9maWJvbmFjY2lCDAoKX2NhbWFyaWxsYUIJCgdfd29vZGllQgkKB19kZW1hcmsilAEKC1Bpdm90UG9pbnRzEg0KBXBpdm90GAEgASgBEgoKAnIxGAIgASgBEgoKAnIyGAMgASgBEgoKAnIzGAQgASgBEgoKAnMxGAUgASgBEgoKAnMyGAYgASgBEgoKAnMzGAcgASgBEg8KAnI0GAggASgBSACIAQESDwoCczQYCSABKAFIAYgBAUIFCgNfcjRCBQoDX3M0ItQDCg9QcmljZUZlZWRDb25maWcSPgoGZGlyZWN0GAEgAygLMi4uc2lsdmFuYS5wcmljaW5nLnYxLlByaWNlRmVlZENvbmZpZy5EaXJlY3RGZWVkEkkKCXN5bnRoZXRpYxgCIAEoCzIxLnNpbHZhbmEucHJpY2luZy52MS5QcmljZUZlZWRDb25maWcuU3ludGhldGljRmVlZEgAiAEBGowBCgpEaXJlY3RGZWVkEg4KBnNvdXJjZRgBIAEoCRIOCgZzeW1ib2wYAiABKAkSDwoHZW5hYmxlZBgDIAEoCBIQCghwcmlvcml0eRgEIAEoBRIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUILCglfbWV0YWRhdGEamAEKDVN5bnRoZXRpY0ZlZWQSDAoEdHlwZRgBIAEoCRITCgtiYXNlX21hcmtldBgCIAEoCRIUCgxxdW90ZV9tYXJrZXQYAyABKAkSEQoJb3BlcmF0aW9uGAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YUIMCgpfc3ludGhldGljMsMECg5QcmljaW5nU2VydmljZRJVCghHZXRQcmljZRIjLnNpbHZhbmEucHJpY2luZy52MS5HZXRQcmljZVJlcXVlc3QaJC5zaWx2YW5hLnByaWNpbmcudjEuR2V0UHJpY2VSZXNwb25zZRJYCglHZXRQcmljZXMSJC5zaWx2YW5hLnByaWNpbmcudjEuR2V0UHJpY2VzUmVxdWVzdBolLnNpbHZhbmEucHJpY2luZy52MS5HZXRQcmljZXNSZXNwb25zZRJYCglHZXRLbGluZXMSJC5zaWx2YW5hLnByaWNpbmcudjEuR2V0S2xpbmVzUmVxdWVzdBolLnNpbHZhbmEucHJpY2luZy52MS5HZXRLbGluZXNSZXNwb25zZRJhCgxHZXRPcmRlckJvb2sSJy5zaWx2YW5hLnByaWNpbmcudjEuR2V0T3JkZXJCb29rUmVxdWVzdBooLnNpbHZhbmEucHJpY2luZy52MS5HZXRPcmRlckJvb2tSZXNwb25zZRJaCgxTdHJlYW1QcmljZXMSJy5zaWx2YW5hLnByaWNpbmcudjEuU3RyZWFtUHJpY2VzUmVxdWVzdBofLnNpbHZhbmEucHJpY2luZy52MS5QcmljZVVwZGF0ZTABEmcKDkdldFBpdm90UG9pbnRzEikuc2lsdmFuYS5wcmljaW5nLnYxLkdldFBpdm90UG9pbnRzUmVxdWVzdBoqLnNpbHZhbmEucHJpY2luZy52MS5HZXRQaXZvdFBvaW50c1Jlc3BvbnNlQjJaMGdpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87cHJpY2luZ2IGcHJvdG8z", [import_wkt3.file_google_protobuf_timestamp, import_wkt3.file_google_protobuf_struct]);
512
+ var GetPriceRequestSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 0);
513
+ var GetPriceResponseSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 1);
514
+ var GetPricesRequestSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 2);
515
+ var GetPricesResponseSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 3);
516
+ var PriceSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 4);
517
+ var GetKlinesRequestSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 5);
518
+ var GetKlinesResponseSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 6);
519
+ var KlineSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 7);
520
+ var GetOrderBookRequestSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 8);
521
+ var GetOrderBookResponseSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 9);
522
+ var OrderBookLevelSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 10);
523
+ var StreamPricesRequestSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 11);
524
+ var PriceUpdateSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 12);
525
+ var OrderBookUpdateSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 13);
526
+ var TradeUpdateSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 14);
527
+ var GetPivotPointsRequestSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 15);
528
+ var GetPivotPointsResponseSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 16);
529
+ var PivotPointsSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 17);
530
+ var PriceFeedConfigSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 18);
531
+ var PriceFeedConfig_DirectFeedSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 18, 0);
532
+ var PriceFeedConfig_SyntheticFeedSchema = /* @__PURE__ */ (0, import_codegenv22.messageDesc)(file_proto_silvana_pricing_v1_pricing, 18, 1);
533
+ var PricingService = /* @__PURE__ */ (0, import_codegenv22.serviceDesc)(file_proto_silvana_pricing_v1_pricing, 0);
534
+
535
+ // dist/node/pricing.js
536
+ function dateToTimestamp2(date) {
537
+ const seconds = BigInt(Math.floor(date.getTime() / 1e3));
538
+ const nanos = date.getTime() % 1e3 * 1e6;
539
+ return (0, import_protobuf2.create)(import_wkt4.TimestampSchema, { seconds, nanos });
540
+ }
541
+ var PricingError = class extends Error {
542
+ constructor(message, code, details) {
543
+ super(message);
544
+ this.code = code;
545
+ this.details = details;
546
+ this.name = "PricingError";
547
+ }
548
+ };
549
+ var PricingClient = class {
550
+ /**
551
+ * Creates a new PricingClient instance
552
+ * @param config Client configuration
553
+ */
554
+ constructor(config) {
555
+ const transport = (0, import_connect_node2.createGrpcTransport)({
556
+ baseUrl: config.baseUrl
557
+ });
558
+ this.client = (0, import_connect2.createClient)(PricingService, transport);
559
+ }
560
+ /**
561
+ * Wraps async calls with error handling
562
+ */
563
+ async wrapCall(operation, operationName) {
564
+ try {
565
+ return await operation();
566
+ } catch (error) {
567
+ if (error instanceof import_connect2.ConnectError) {
568
+ throw new PricingError(`${operationName} failed: ${error.message}`, String(error.code), error.metadata);
569
+ }
570
+ throw new PricingError(`${operationName} failed: ${error instanceof Error ? error.message : "Unknown error"}`, "UNKNOWN", error);
571
+ }
572
+ }
573
+ /**
574
+ * Get current price for a market
575
+ */
576
+ async getPrice(params) {
577
+ return await this.wrapCall(async () => {
578
+ const request = (0, import_protobuf2.create)(GetPriceRequestSchema, params);
579
+ return await this.client.getPrice(request);
580
+ }, "getPrice");
581
+ }
582
+ /**
583
+ * Get multiple market prices
584
+ */
585
+ async getPrices(params) {
586
+ return await this.wrapCall(async () => {
587
+ const request = (0, import_protobuf2.create)(GetPricesRequestSchema, params);
588
+ return await this.client.getPrices(request);
589
+ }, "getPrices");
590
+ }
591
+ /**
592
+ * Get kline/candle data
593
+ */
594
+ async getKlines(params) {
595
+ return await this.wrapCall(async () => {
596
+ const request = (0, import_protobuf2.create)(GetKlinesRequestSchema, {
597
+ marketId: params.marketId,
598
+ interval: params.interval,
599
+ limit: params.limit,
600
+ startTime: params.startTime ? dateToTimestamp2(params.startTime) : void 0,
601
+ endTime: params.endTime ? dateToTimestamp2(params.endTime) : void 0,
602
+ source: params.source
603
+ });
604
+ return await this.client.getKlines(request);
605
+ }, "getKlines");
606
+ }
607
+ /**
608
+ * Get order book snapshot
609
+ */
610
+ async getOrderBook(params) {
611
+ return await this.wrapCall(async () => {
612
+ const request = (0, import_protobuf2.create)(GetOrderBookRequestSchema, params);
613
+ return await this.client.getOrderBook(request);
614
+ }, "getOrderBook");
615
+ }
616
+ /**
617
+ * Stream real-time price updates
618
+ */
619
+ streamPrices(params) {
620
+ const request = (0, import_protobuf2.create)(StreamPricesRequestSchema, params);
621
+ return this.client.streamPrices(request);
622
+ }
623
+ /**
624
+ * Get calculated pivot points
625
+ */
626
+ async getPivotPoints(params) {
627
+ return await this.wrapCall(async () => {
628
+ const request = (0, import_protobuf2.create)(GetPivotPointsRequestSchema, params);
629
+ return await this.client.getPivotPoints(request);
630
+ }, "getPivotPoints");
631
+ }
409
632
  };
410
633
  // Annotate the CommonJS export names for ESM import in node:
411
634
  0 && (module.exports = {
412
635
  CancelOrderRequestSchema,
413
636
  CancelOrderResponseSchema,
637
+ CreateInstrumentRequestSchema,
638
+ CreateInstrumentResponseSchema,
639
+ CreateMarketRequestSchema,
640
+ CreateMarketResponseSchema,
641
+ CreatePartyRequestSchema,
642
+ CreatePartyResponseSchema,
414
643
  GetInstrumentsRequestSchema,
415
644
  GetInstrumentsResponseSchema,
645
+ GetKlinesRequestSchema,
646
+ GetKlinesResponseSchema,
416
647
  GetMarketDataRequestSchema,
417
648
  GetMarketDataResponseSchema,
418
649
  GetMarketsRequestSchema,
419
650
  GetMarketsResponseSchema,
651
+ GetOrderBookRequestSchema,
652
+ GetOrderBookResponseSchema,
420
653
  GetOrderHistoryRequestSchema,
421
654
  GetOrderHistoryResponseSchema,
422
655
  GetOrderbookDepthRequestSchema,
423
656
  GetOrderbookDepthResponseSchema,
424
657
  GetOrdersRequestSchema,
425
658
  GetOrdersResponseSchema,
659
+ GetPivotPointsRequestSchema,
660
+ GetPivotPointsResponseSchema,
661
+ GetPriceRequestSchema,
662
+ GetPriceResponseSchema,
663
+ GetPricesRequestSchema,
664
+ GetPricesResponseSchema,
426
665
  GetSettlementProposalsRequestSchema,
427
666
  GetSettlementProposalsResponseSchema,
428
667
  GetSettlementsRequestSchema,
429
668
  GetSettlementsResponseSchema,
430
669
  InstrumentSchema,
431
670
  JWTAuthSchema,
671
+ KlineSchema,
432
672
  MarketDataSchema,
433
673
  MarketSchema,
434
674
  MarketType,
435
675
  MarketTypeSchema,
676
+ OrderBookLevelSchema,
677
+ OrderBookUpdateSchema,
436
678
  OrderMatchSchema,
437
679
  OrderSchema,
438
680
  OrderStatus,
@@ -450,6 +692,16 @@ var OrderbookClient = class {
450
692
  OrderbookUpdateSchema,
451
693
  OrderbookUpdate_UpdateType,
452
694
  OrderbookUpdate_UpdateTypeSchema,
695
+ PartySchema,
696
+ PivotPointsSchema,
697
+ PriceFeedConfigSchema,
698
+ PriceFeedConfig_DirectFeedSchema,
699
+ PriceFeedConfig_SyntheticFeedSchema,
700
+ PriceSchema,
701
+ PriceUpdateSchema,
702
+ PricingClient,
703
+ PricingError,
704
+ PricingService,
453
705
  SettlementProposalSchema,
454
706
  SettlementSchema,
455
707
  SettlementStatus,
@@ -457,6 +709,7 @@ var OrderbookClient = class {
457
709
  SettlementUpdateSchema,
458
710
  SettlementUpdate_EventType,
459
711
  SettlementUpdate_EventTypeSchema,
712
+ StreamPricesRequestSchema,
460
713
  SubmitOrderRequestSchema,
461
714
  SubmitOrderResponseSchema,
462
715
  SubscribeOrderbookRequestSchema,
@@ -464,5 +717,9 @@ var OrderbookClient = class {
464
717
  SubscribeSettlementsRequestSchema,
465
718
  TimeInForce,
466
719
  TimeInForceSchema,
467
- file_proto_silvana_orderbook_v1_orderbook
720
+ TradeUpdateSchema,
721
+ UpdateMarketPriceFeedsRequestSchema,
722
+ UpdateMarketPriceFeedsResponseSchema,
723
+ file_proto_silvana_orderbook_v1_orderbook,
724
+ file_proto_silvana_pricing_v1_pricing
468
725
  });
@@ -1 +1,2 @@
1
- export * from "./grpc.js";
1
+ export * from "./orderbook.js";
2
+ export * from "./pricing.js";
@@ -1,2 +1,3 @@
1
- export * from "./grpc.js";
1
+ export * from "./orderbook.js";
2
+ export * from "./pricing.js";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export * from "./proto/silvana/orderbook/v1/orderbook_pb.js";
2
- import { type GetOrdersResponse, type GetOrderbookDepthResponse, type GetSettlementProposalsResponse, type GetInstrumentsResponse, type GetMarketsResponse, type GetOrderHistoryResponse, type GetMarketDataResponse, type GetSettlementsResponse, type SubmitOrderResponse, type CancelOrderResponse, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
2
+ import { type GetOrdersResponse, type GetOrderbookDepthResponse, type GetSettlementProposalsResponse, type GetInstrumentsResponse, type GetMarketsResponse, type GetOrderHistoryResponse, type GetMarketDataResponse, type GetSettlementsResponse, type SubmitOrderResponse, type CancelOrderResponse, type CreatePartyResponse, type CreateInstrumentResponse, type CreateMarketResponse, type UpdateMarketPriceFeedsResponse, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
3
3
  export { OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus };
4
4
  /**
5
5
  * Custom error class for Orderbook client errors
@@ -148,4 +148,51 @@ export declare class OrderbookClient {
148
148
  subscribeSettlements(params: {
149
149
  marketId?: string;
150
150
  }): AsyncIterable<import("./proto/silvana/orderbook/v1/orderbook_pb.js").SettlementUpdate>;
151
+ /**
152
+ * Create a new party (admin operation)
153
+ */
154
+ createParty(params: {
155
+ partyId: string;
156
+ partyName: string;
157
+ partyType: string;
158
+ userServiceCid?: string;
159
+ operatorConfigCid?: string;
160
+ metadata?: any;
161
+ }): Promise<CreatePartyResponse>;
162
+ /**
163
+ * Create a new instrument (admin operation)
164
+ */
165
+ createInstrument(params: {
166
+ instrumentId: string;
167
+ instrumentType: string;
168
+ name: string;
169
+ symbol: string;
170
+ description?: string;
171
+ issuer?: string;
172
+ registry?: string;
173
+ metadata?: any;
174
+ }): Promise<CreateInstrumentResponse>;
175
+ /**
176
+ * Create a new market (admin operation)
177
+ */
178
+ createMarket(params: {
179
+ marketId: string;
180
+ marketType: MarketType;
181
+ baseInstrument?: string;
182
+ quoteInstrument?: string;
183
+ minOrderSize: string;
184
+ maxOrderSize?: string;
185
+ tickSize: string;
186
+ makerFee: string;
187
+ takerFee: string;
188
+ metadata?: any;
189
+ priceFeeds?: any;
190
+ }): Promise<CreateMarketResponse>;
191
+ /**
192
+ * Update market price feeds (admin operation)
193
+ */
194
+ updateMarketPriceFeeds(params: {
195
+ marketId: string;
196
+ priceFeeds: any;
197
+ }): Promise<UpdateMarketPriceFeedsResponse>;
151
198
  }
@@ -4,7 +4,7 @@ import { create } from "@bufbuild/protobuf";
4
4
  import { TimestampSchema } from "@bufbuild/protobuf/wkt";
5
5
  // Export all types and schemas from the generated protobuf file
6
6
  export * from "./proto/silvana/orderbook/v1/orderbook_pb.js";
7
- import { OrderbookService, GetOrdersRequestSchema, GetOrderbookDepthRequestSchema, GetSettlementProposalsRequestSchema, GetInstrumentsRequestSchema, GetMarketsRequestSchema, GetOrderHistoryRequestSchema, GetMarketDataRequestSchema, GetSettlementsRequestSchema, SubmitOrderRequestSchema, CancelOrderRequestSchema, SubscribeOrderbookRequestSchema, SubscribeOrdersRequestSchema, SubscribeSettlementsRequestSchema, JWTAuthSchema, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus, } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
7
+ import { OrderbookService, GetOrdersRequestSchema, GetOrderbookDepthRequestSchema, GetSettlementProposalsRequestSchema, GetInstrumentsRequestSchema, GetMarketsRequestSchema, GetOrderHistoryRequestSchema, GetMarketDataRequestSchema, GetSettlementsRequestSchema, SubmitOrderRequestSchema, CancelOrderRequestSchema, CreatePartyRequestSchema, CreateInstrumentRequestSchema, CreateMarketRequestSchema, UpdateMarketPriceFeedsRequestSchema, SubscribeOrderbookRequestSchema, SubscribeOrdersRequestSchema, SubscribeSettlementsRequestSchema, JWTAuthSchema, OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus, } from "./proto/silvana/orderbook/v1/orderbook_pb.js";
8
8
  // Re-export commonly used enums for convenience
9
9
  export { OrderType, OrderStatus, TimeInForce, MarketType, SettlementStatus };
10
10
  /**
@@ -216,5 +216,53 @@ export class OrderbookClient {
216
216
  });
217
217
  return this.client.subscribeSettlements(request);
218
218
  }
219
+ /**
220
+ * Create a new party (admin operation)
221
+ */
222
+ async createParty(params) {
223
+ return await this.wrapCall(async () => {
224
+ const request = create(CreatePartyRequestSchema, {
225
+ auth: this.createAuth(),
226
+ ...params,
227
+ });
228
+ return await this.client.createParty(request);
229
+ }, 'createParty');
230
+ }
231
+ /**
232
+ * Create a new instrument (admin operation)
233
+ */
234
+ async createInstrument(params) {
235
+ return await this.wrapCall(async () => {
236
+ const request = create(CreateInstrumentRequestSchema, {
237
+ auth: this.createAuth(),
238
+ ...params,
239
+ });
240
+ return await this.client.createInstrument(request);
241
+ }, 'createInstrument');
242
+ }
243
+ /**
244
+ * Create a new market (admin operation)
245
+ */
246
+ async createMarket(params) {
247
+ return await this.wrapCall(async () => {
248
+ const request = create(CreateMarketRequestSchema, {
249
+ auth: this.createAuth(),
250
+ ...params,
251
+ });
252
+ return await this.client.createMarket(request);
253
+ }, 'createMarket');
254
+ }
255
+ /**
256
+ * Update market price feeds (admin operation)
257
+ */
258
+ async updateMarketPriceFeeds(params) {
259
+ return await this.wrapCall(async () => {
260
+ const request = create(UpdateMarketPriceFeedsRequestSchema, {
261
+ auth: this.createAuth(),
262
+ ...params,
263
+ });
264
+ return await this.client.updateMarketPriceFeeds(request);
265
+ }, 'updateMarketPriceFeeds');
266
+ }
219
267
  }
220
- //# sourceMappingURL=grpc.js.map
268
+ //# sourceMappingURL=orderbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orderbook.js","sourceRoot":"","sources":["../../src/orderbook.ts"],"names":[],"mappings":"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"}