@silvana-one/orderbook 1.1.44 → 1.2.0

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 (129) hide show
  1. package/dist/node/index.cjs +78 -49
  2. package/dist/node/orderbook.d.ts +2 -0
  3. package/dist/node/orderbook.js +2 -0
  4. package/dist/node/orderbook.js.map +1 -1
  5. package/dist/node/proto/silvana/ledger/v1/bridge_pb.d.ts +88 -3
  6. package/dist/node/proto/silvana/ledger/v1/bridge_pb.js +3 -2
  7. package/dist/node/proto/silvana/ledger/v1/bridge_pb.js.map +1 -1
  8. package/dist/node/proto/silvana/ledger/v1/cip56_pb.d.ts +1 -1
  9. package/dist/node/proto/silvana/ledger/v1/cip56_pb.js +1 -1
  10. package/dist/node/proto/silvana/ledger/v1/common_pb.d.ts +8 -2
  11. package/dist/node/proto/silvana/ledger/v1/common_pb.js +8 -2
  12. package/dist/node/proto/silvana/ledger/v1/common_pb.js.map +1 -1
  13. package/dist/node/proto/silvana/ledger/v1/dvp_pb.js +1 -1
  14. package/dist/node/proto/silvana/ledger/v1/faucet_pb.d.ts +60 -3
  15. package/dist/node/proto/silvana/ledger/v1/faucet_pb.js +17 -2
  16. package/dist/node/proto/silvana/ledger/v1/faucet_pb.js.map +1 -1
  17. package/dist/node/proto/silvana/ledger/v1/fees_pb.d.ts +34 -0
  18. package/dist/node/proto/silvana/ledger/v1/fees_pb.js +14 -0
  19. package/dist/node/proto/silvana/ledger/v1/fees_pb.js.map +1 -0
  20. package/dist/node/proto/silvana/ledger/v1/lock_pb.js +1 -1
  21. package/dist/node/proto/silvana/ledger/v1/multicall_pb.d.ts +7 -7
  22. package/dist/node/proto/silvana/ledger/v1/multicall_pb.js +1 -1
  23. package/dist/node/proto/silvana/ledger/v1/onboarding_pb.d.ts +9 -9
  24. package/dist/node/proto/silvana/ledger/v1/onboarding_pb.js +1 -1
  25. package/dist/node/proto/silvana/ledger/v1/pay_fee_pb.d.ts +152 -0
  26. package/dist/node/proto/silvana/ledger/v1/pay_fee_pb.js +31 -0
  27. package/dist/node/proto/silvana/ledger/v1/pay_fee_pb.js.map +1 -0
  28. package/dist/node/proto/silvana/ledger/v1/preapproval_pb.d.ts +6 -0
  29. package/dist/node/proto/silvana/ledger/v1/preapproval_pb.js +2 -2
  30. package/dist/node/proto/silvana/ledger/v1/preapproval_pb.js.map +1 -1
  31. package/dist/node/proto/silvana/ledger/v1/queries_pb.d.ts +56 -5
  32. package/dist/node/proto/silvana/ledger/v1/queries_pb.js +21 -11
  33. package/dist/node/proto/silvana/ledger/v1/queries_pb.js.map +1 -1
  34. package/dist/node/proto/silvana/ledger/v1/recurring_pb.d.ts +6 -6
  35. package/dist/node/proto/silvana/ledger/v1/recurring_pb.js +1 -1
  36. package/dist/node/proto/silvana/ledger/v1/service_pb.d.ts +47 -2
  37. package/dist/node/proto/silvana/ledger/v1/service_pb.js +3 -2
  38. package/dist/node/proto/silvana/ledger/v1/service_pb.js.map +1 -1
  39. package/dist/node/proto/silvana/ledger/v1/transactions_pb.d.ts +63 -15
  40. package/dist/node/proto/silvana/ledger/v1/transactions_pb.js +3 -2
  41. package/dist/node/proto/silvana/ledger/v1/transactions_pb.js.map +1 -1
  42. package/dist/node/proto/silvana/ledger/v1/transfer_pb.d.ts +41 -2
  43. package/dist/node/proto/silvana/ledger/v1/transfer_pb.js +7 -2
  44. package/dist/node/proto/silvana/ledger/v1/transfer_pb.js.map +1 -1
  45. package/dist/node/proto/silvana/news/v1/news_pb.d.ts +13 -13
  46. package/dist/node/proto/silvana/news/v1/news_pb.js +1 -1
  47. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +256 -225
  48. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +2 -2
  49. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  50. package/dist/node/proto/silvana/pricing/v1/pricing_pb.d.ts +46 -46
  51. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  52. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +181 -181
  53. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/dist/tsconfig.web.tsbuildinfo +1 -1
  56. package/dist/web/orderbook.d.ts +2 -0
  57. package/dist/web/orderbook.js +2 -0
  58. package/dist/web/orderbook.js.map +1 -1
  59. package/dist/web/proto/silvana/ledger/v1/bridge_pb.d.ts +88 -3
  60. package/dist/web/proto/silvana/ledger/v1/bridge_pb.js +3 -2
  61. package/dist/web/proto/silvana/ledger/v1/bridge_pb.js.map +1 -1
  62. package/dist/web/proto/silvana/ledger/v1/cip56_pb.d.ts +1 -1
  63. package/dist/web/proto/silvana/ledger/v1/cip56_pb.js +1 -1
  64. package/dist/web/proto/silvana/ledger/v1/common_pb.d.ts +8 -2
  65. package/dist/web/proto/silvana/ledger/v1/common_pb.js +8 -2
  66. package/dist/web/proto/silvana/ledger/v1/common_pb.js.map +1 -1
  67. package/dist/web/proto/silvana/ledger/v1/dvp_pb.js +1 -1
  68. package/dist/web/proto/silvana/ledger/v1/faucet_pb.d.ts +60 -3
  69. package/dist/web/proto/silvana/ledger/v1/faucet_pb.js +17 -2
  70. package/dist/web/proto/silvana/ledger/v1/faucet_pb.js.map +1 -1
  71. package/dist/web/proto/silvana/ledger/v1/fees_pb.d.ts +34 -0
  72. package/dist/web/proto/silvana/ledger/v1/fees_pb.js +14 -0
  73. package/dist/web/proto/silvana/ledger/v1/fees_pb.js.map +1 -0
  74. package/dist/web/proto/silvana/ledger/v1/lock_pb.js +1 -1
  75. package/dist/web/proto/silvana/ledger/v1/multicall_pb.d.ts +7 -7
  76. package/dist/web/proto/silvana/ledger/v1/multicall_pb.js +1 -1
  77. package/dist/web/proto/silvana/ledger/v1/onboarding_pb.d.ts +9 -9
  78. package/dist/web/proto/silvana/ledger/v1/onboarding_pb.js +1 -1
  79. package/dist/web/proto/silvana/ledger/v1/pay_fee_pb.d.ts +152 -0
  80. package/dist/web/proto/silvana/ledger/v1/pay_fee_pb.js +31 -0
  81. package/dist/web/proto/silvana/ledger/v1/pay_fee_pb.js.map +1 -0
  82. package/dist/web/proto/silvana/ledger/v1/preapproval_pb.d.ts +6 -0
  83. package/dist/web/proto/silvana/ledger/v1/preapproval_pb.js +2 -2
  84. package/dist/web/proto/silvana/ledger/v1/preapproval_pb.js.map +1 -1
  85. package/dist/web/proto/silvana/ledger/v1/queries_pb.d.ts +56 -5
  86. package/dist/web/proto/silvana/ledger/v1/queries_pb.js +21 -11
  87. package/dist/web/proto/silvana/ledger/v1/queries_pb.js.map +1 -1
  88. package/dist/web/proto/silvana/ledger/v1/recurring_pb.d.ts +6 -6
  89. package/dist/web/proto/silvana/ledger/v1/recurring_pb.js +1 -1
  90. package/dist/web/proto/silvana/ledger/v1/service_pb.d.ts +47 -2
  91. package/dist/web/proto/silvana/ledger/v1/service_pb.js +3 -2
  92. package/dist/web/proto/silvana/ledger/v1/service_pb.js.map +1 -1
  93. package/dist/web/proto/silvana/ledger/v1/transactions_pb.d.ts +63 -15
  94. package/dist/web/proto/silvana/ledger/v1/transactions_pb.js +3 -2
  95. package/dist/web/proto/silvana/ledger/v1/transactions_pb.js.map +1 -1
  96. package/dist/web/proto/silvana/ledger/v1/transfer_pb.d.ts +41 -2
  97. package/dist/web/proto/silvana/ledger/v1/transfer_pb.js +7 -2
  98. package/dist/web/proto/silvana/ledger/v1/transfer_pb.js.map +1 -1
  99. package/dist/web/proto/silvana/news/v1/news_pb.d.ts +13 -13
  100. package/dist/web/proto/silvana/news/v1/news_pb.js +1 -1
  101. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +256 -225
  102. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +2 -2
  103. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  104. package/dist/web/proto/silvana/pricing/v1/pricing_pb.d.ts +46 -46
  105. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  106. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +181 -181
  107. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +1 -1
  108. package/package.json +6 -6
  109. package/src/orderbook.ts +4 -0
  110. package/src/proto/silvana/ledger/v1/bridge_pb.ts +91 -5
  111. package/src/proto/silvana/ledger/v1/cip56_pb.ts +2 -2
  112. package/src/proto/silvana/ledger/v1/common_pb.ts +10 -3
  113. package/src/proto/silvana/ledger/v1/dvp_pb.ts +1 -1
  114. package/src/proto/silvana/ledger/v1/faucet_pb.ts +75 -5
  115. package/src/proto/silvana/ledger/v1/fees_pb.ts +47 -0
  116. package/src/proto/silvana/ledger/v1/lock_pb.ts +1 -1
  117. package/src/proto/silvana/ledger/v1/multicall_pb.ts +8 -8
  118. package/src/proto/silvana/ledger/v1/onboarding_pb.ts +10 -10
  119. package/src/proto/silvana/ledger/v1/pay_fee_pb.ts +189 -0
  120. package/src/proto/silvana/ledger/v1/preapproval_pb.ts +9 -2
  121. package/src/proto/silvana/ledger/v1/queries_pb.ts +78 -16
  122. package/src/proto/silvana/ledger/v1/recurring_pb.ts +7 -7
  123. package/src/proto/silvana/ledger/v1/service_pb.ts +50 -4
  124. package/src/proto/silvana/ledger/v1/transactions_pb.ts +71 -17
  125. package/src/proto/silvana/ledger/v1/transfer_pb.ts +49 -4
  126. package/src/proto/silvana/news/v1/news_pb.ts +14 -14
  127. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +263 -227
  128. package/src/proto/silvana/pricing/v1/pricing_pb.ts +47 -47
  129. package/src/proto/silvana/settlement/v1/settlement_pb.ts +182 -182
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,js_import_style=module,import_extension=.js"
1
+ // @generated by protoc-gen-es v2.12.0 with parameter "target=ts,js_import_style=module,import_extension=.js"
2
2
  // @generated from file silvana/orderbook/v1/orderbook.proto (package silvana.orderbook.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
12
12
  * Describes the file silvana/orderbook/v1/orderbook.proto.
13
13
  */
14
14
  export const file_silvana_orderbook_v1_orderbook: GenFile = /*@__PURE__*/
15
- fileDesc("CiRzaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IsEHCgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESFgoJc2lnbmF0dXJlGBcgASgJSAaIAQESEwoLc2lnbmVkX2RhdGEYGCABKAwSDQoFbm9uY2UYGSABKARCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXRCDAoKX3NpZ25hdHVyZSKCAQoOT3JkZXJib29rTGV2ZWwSDQoFcHJpY2UYASABKAkSFgoOdG90YWxfcXVhbnRpdHkYAiABKAkSEwoLb3JkZXJfY291bnQYAyABKA0SNAoQZmlyc3Rfb3JkZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi1QEKDk9yZGVyYm9va0RlcHRoEhEKCW1hcmtldF9pZBgBIAEoCRITCgtwYWlyX3N5bWJvbBgCIAEoCRIyCgRiaWRzGAMgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSNAoGb2ZmZXJzGAQgAygLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rTGV2ZWwSMQoNc25hcHNob3RfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiigYKElNldHRsZW1lbnRQcm9wb3NhbBITCgtwcm9wb3NhbF9pZBgBIAEoCRIRCgltYXJrZXRfaWQYAiABKAkSDQoFYnV5ZXIYAyABKAkSDgoGc2VsbGVyGAQgASgJEhcKD2Jhc2VfaW5zdHJ1bWVudBgFIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAYgASgJEhUKDWJhc2VfcXVhbnRpdHkYByABKAkSFgoOcXVvdGVfcXVhbnRpdHkYCCABKAkSGAoQc2V0dGxlbWVudF9wcmljZRgJIAEoCRIgChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYCiABKAkSIQoZZHZwX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgLIAEoCRInCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAwgASgJEigKIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA0gASgJEjYKBnN0YXR1cxgOIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXMSGgoNZXJyb3JfbWVzc2FnZRgPIAEoCUgAiAEBEi4KCmNyZWF0ZWRfYXQYECABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjMKCnNldHRsZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESNQoMY2FuY2VsbGVkX2F0GBIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEjIKCWZhaWxlZF9hdBgTIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIA4gBARI1CgtvcmRlcl9tYXRjaBgUIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyTWF0Y2hCEAoOX2Vycm9yX21lc3NhZ2VCDQoLX3NldHRsZWRfYXRCDwoNX2NhbmNlbGxlZF9hdEIMCgpfZmFpbGVkX2F0IrsBCgpPcmRlck1hdGNoEh4KFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYASABKAkSFAoMYmlkX29yZGVyX2lkGAIgASgEEhYKDm9mZmVyX29yZGVyX2lkGAMgASgEEhgKEG1hdGNoZWRfcXVhbnRpdHkYBCABKAkSFQoNbWF0Y2hlZF9wcmljZRgFIAEoCRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKcBAoKU2V0dGxlbWVudBIVCg1zZXR0bGVtZW50X2lkGAEgASgEEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRINCgVidXllchgEIAEoCRIOCgZzZWxsZXIYBSABKAkSFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSFQoNYmFzZV9xdWFudGl0eRgIIAEoCRIWCg5xdW90ZV9xdWFudGl0eRgJIAEoCRIYChBzZXR0bGVtZW50X3ByaWNlGAogASgJEiAKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgLIAEoCRIhChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGAwgASgJEicKH2FsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDSABKAkSKAogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDiABKAkSHAoPc2V0dGxlZF9kdnBfY2lkGA8gASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYECABKAlIAYgBARIuCgpzZXR0bGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZCKVAgoKTWFya2V0RGF0YRIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSFQoIYmVzdF9iaWQYAyABKAlIAIgBARIXCgpiZXN0X29mZmVyGAQgASgJSAGIAQESFwoKbGFzdF9wcmljZRgFIAEoCUgCiAEBEhIKCnZvbHVtZV8yNGgYBiABKAkSEgoKdHJhZGVzXzI0aBgHIAEoDRITCgtvcGVuX29yZGVycxgIIAEoDRIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEILCglfYmVzdF9iaWRCDQoLX2Jlc3Rfb2ZmZXJCDQoLX2xhc3RfcHJpY2Ui+gIKEEdldE9yZGVyc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQESNgoGc3RhdHVzGAMgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJTdGF0dXNIAYgBARI4CgpvcmRlcl90eXBlGAQgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARIuCiFsaXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMYCyABKA1IBYgBARIgChhsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZXMYDCADKAlCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQg0KC19vcmRlcl90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QiQKIl9saXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMicQoRR2V0T3JkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIksKGEdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBAUIICgZfZGVwdGgidgoZR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNwoJb3JkZXJib29rGAMgASgLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rRGVwdGgiywEKHUdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjsKBnN0YXR1cxgDIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXNIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0IICgZfbGltaXRCCQoHX29mZnNldCKOAQoeR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI7Cglwcm9wb3NhbHMYAyADKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSDQoFdG90YWwYBCABKA0iMwocR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgCIAEoCSKPAQodR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEj8KCHByb3Bvc2FsGAMgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsSACIAQFCCwoJX3Byb3Bvc2FsIocBChVHZXRJbnN0cnVtZW50c1JlcXVlc3QSHAoPaW5zdHJ1bWVudF90eXBlGAIgASgJSACIAQESEgoFbGltaXQYAyABKA1IAYgBARITCgZvZmZzZXQYBCABKA1IAogBAUISChBfaW5zdHJ1bWVudF90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0IoABChZHZXRJbnN0cnVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtpbnN0cnVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQSDQoFdG90YWwYBCABKA0irQIKEUdldE1hcmtldHNSZXF1ZXN0EjoKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZUgAiAEBEhwKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCUgBiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBCABKAlIAogBARIYCgthY3RpdmVfb25seRgFIAEoCEgDiAEBEhIKBWxpbWl0GAYgASgNSASIAQESEwoGb2Zmc2V0GAcgASgNSAWIAQFCDgoMX21hcmtldF90eXBlQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0InQKEkdldE1hcmtldHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLQoHbWFya2V0cxgDIAMoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldBINCgV0b3RhbBgEIAEoDSL8AQoWR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCJ3ChdHZXRPcmRlckhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0iKgoUR2V0TWFya2V0RGF0YVJlcXVlc3QSEgoKbWFya2V0X2lkcxgCIAMoCSJwChVHZXRNYXJrZXREYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC21hcmtldF9kYXRhGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0RGF0YSL7AQoVR2V0U2V0dGxlbWVudHNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0IoABChZHZXRTZXR0bGVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtzZXR0bGVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnQSDQoFdG90YWwYBCABKA0iTAoZU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBAUIICgZfZGVwdGgihwMKD09yZGVyYm9va1VwZGF0ZRIRCgltYXJrZXRfaWQYASABKAkSRQoLdXBkYXRlX3R5cGUYAiABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUuVXBkYXRlVHlwZRI5CgtiaWRfdXBkYXRlcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjsKDW9mZmVyX3VwZGF0ZXMYBCADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3NlcXVlbmNlX251bWJlchgGIAEoBCJaCgpVcGRhdGVUeXBlEhsKF1VQREFURV9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUVVBEQVRFX1RZUEVfU05BUFNIT1QQARIVChFVUERBVEVfVFlQRV9ERUxUQRACIj4KFlN1YnNjcmliZU9yZGVyc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQFCDAoKX21hcmtldF9pZCKtAwoLT3JkZXJVcGRhdGUSPwoKZXZlbnRfdHlwZRgBIAEoDjIrLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlLkV2ZW50VHlwZRIqCgVvcmRlchgCIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEjQKBW1hdGNoGAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJNYXRjaEgAiAEBEi0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwQEKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSRVZFTlRfVFlQRV9DUkVBVEVEEAESFgoSRVZFTlRfVFlQRV9VUERBVEVEEAISFQoRRVZFTlRfVFlQRV9GSUxMRUQQAxIfChtFVkVOVF9UWVBFX1BBUlRJQUxMWV9GSUxMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFEhYKEkVWRU5UX1RZUEVfRVhQSVJFRBAGQggKBl9tYXRjaCJDChtTdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQFCDAoKX21hcmtldF9pZCL2AgoQU2V0dGxlbWVudFVwZGF0ZRJECgpldmVudF90eXBlGAEgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZS5FdmVudFR5cGUSOgoIcHJvcG9zYWwYAiABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKwAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIfChtFVkVOVF9UWVBFX1BST1BPU0FMX0NSRUFURUQQARIdChlFVkVOVF9UWVBFX1NUQVRVU19DSEFOR0VEEAISFgoSRVZFTlRfVFlQRV9TRVRUTEVEEAMSFQoRRVZFTlRfVFlQRV9GQUlMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFIr4EChJTdWJtaXRPcmRlclJlcXVlc3QSEQoJbWFya2V0X2lkGAIgASgJEjMKCm9yZGVyX3R5cGUYAyABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGUSDQoFcHJpY2UYBCABKAkSEAoIcXVhbnRpdHkYBSABKAkSOAoNdGltZV9pbl9mb3JjZRgGIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLlRpbWVJbkZvcmNlEjMKCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESHQoQdHJhZGVyX29yZGVyX3JlZhgIIAEoCUgBiAEBEjEKC2NyZWRlbnRpYWxzGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIWCglzaWduYXR1cmUYDCABKAlIBYgBARITCgtzaWduZWRfZGF0YRgNIAEoDBINCgVub25jZRgOIAEoBEINCgtfZXhwaXJlc19hdEITChFfdHJhZGVyX29yZGVyX3JlZkIOCgxfY3JlZGVudGlhbHNCDwoNX3JlcXVpcmVtZW50c0ILCglfbWV0YWRhdGFCDAoKX3NpZ25hdHVyZSJyChNTdWJtaXRPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIiYKEkNhbmNlbE9yZGVyUmVxdWVzdBIQCghvcmRlcl9pZBgCIAEoBCJyChNDYW5jZWxPcmRlclJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIvCgVvcmRlchgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVySACIAQFCCAoGX29yZGVyIskFChJDcmVhdGVQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSEgoKcGFydHlfbmFtZRgDIAEoCRISCgpwYXJ0eV90eXBlGAQgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAGIAQESLgoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAggASgJSAOIAQESKgoJdXNlcl9kYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBISCgVlbWFpbBgKIAEoCUgEiAEBEhcKCnB1YmxpY19rZXkYCyABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgMIAEoCUgGiAEBEhMKBnNvdXJjZRgNIAEoCUgHiAEBEiIKFWVuY3J5cHRlZF9wcml2YXRlX2tleRgOIAEoCUgIiAEBEiQKF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGBAgASgJSAmIAQESKwoebGlxdWlkaXR5X3Byb3ZpZGVyX2Rlc2NyaXB0aW9uGBEgASgJSAqIAQFCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCCwoJX21ldGFkYXRhQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZUIJCgdfc291cmNlQhgKFl9lbmNyeXB0ZWRfcHJpdmF0ZV9rZXlCGgoYX2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lQiEKH19saXF1aWRpdHlfcHJvdmlkZXJfZGVzY3JpcHRpb24iYwoTQ3JlYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKSBQoSVXBkYXRlUGFydHlSZXF1ZXN0EhAKCHBhcnR5X2lkGAIgASgJEhgKEGV4cGVjdGVkX3ZlcnNpb24YAyABKAQSFwoKcGFydHlfbmFtZRgEIAEoCUgAiAEBEh0KEHVzZXJfc2VydmljZV9jaWQYBSABKAlIAYgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAYgASgJSAKIAQESJQoYdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkGAcgASgJSAOIAQESLwoJdXNlcl9kYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgEiAEBEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEhoKDWNoYW5nZV9yZWFzb24YCiABKAlIBogBARISCgVlbWFpbBgLIAEoCUgHiAEBEhcKCnB1YmxpY19rZXkYDCABKAlICIgBARIYCgtpbnZpdGVfY29kZRgNIAEoCUgJiAEBEhMKBnNvdXJjZRgOIAEoCUgKiAEBEiIKFWVuY3J5cHRlZF9wcml2YXRlX2tleRgPIAEoCUgLiAEBQg0KC19wYXJ0eV9uYW1lQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQhsKGV91c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWRCDAoKX3VzZXJfZGF0YUILCglfbWV0YWRhdGFCEAoOX2NoYW5nZV9yZWFzb25CCAoGX2VtYWlsQg0KC19wdWJsaWNfa2V5Qg4KDF9pbnZpdGVfY29kZUIJCgdfc291cmNlQhgKFl9lbmNyeXB0ZWRfcHJpdmF0ZV9rZXkiYwoTVXBkYXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSJbChZEZWFjdGl2YXRlUGFydHlSZXF1ZXN0EhAKCHBhcnR5X2lkGAIgASgJEhgKEGV4cGVjdGVkX3ZlcnNpb24YAyABKAQSFQoNY2hhbmdlX3JlYXNvbhgEIAEoCSJnChdEZWFjdGl2YXRlUGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSJoChZHZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0EhAKCHBhcnR5X2lkGAIgASgJEhIKBWxpbWl0GAMgASgNSACIAQESEwoGb2Zmc2V0GAQgASgNSAGIAQFCCAoGX2xpbWl0QgkKB19vZmZzZXQigQIKEVBhcnR5SGlzdG9yeUVudHJ5EhIKCmhpc3RvcnlfaWQYASABKAQSEAoIcGFydHlfaWQYAiABKAkSDgoGYWN0aW9uGAMgASgJEhIKCmNoYW5nZWRfYnkYBCABKAkSGgoNY2hhbmdlX3JlYXNvbhgFIAEoCUgAiAEBEg8KB3ZlcnNpb24YBiABKAQSMwoOcGFydHlfc25hcHNob3QYByABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fY2hhbmdlX3JlYXNvbiKEAQoXR2V0UGFydHlIaXN0b3J5UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjgKB2hpc3RvcnkYAyADKAsyJy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eUhpc3RvcnlFbnRyeRINCgV0b3RhbBgEIAEoDSIjCg9HZXRQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkiYAoQR2V0UGFydHlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKgoFcGFydHkYAyABKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eSKjAQoRR2V0UGFydGllc1JlcXVlc3QSFwoKcGFydHlfdHlwZRgCIAEoCUgAiAEBEhgKC2FjdGl2ZV9vbmx5GAMgASgISAGIAQESEgoFbGltaXQYBCABKA1IAogBARITCgZvZmZzZXQYBSABKA1IA4gBAUINCgtfcGFydHlfdHlwZUIOCgxfYWN0aXZlX29ubHlCCAoGX2xpbWl0QgkKB19vZmZzZXQicwoSR2V0UGFydGllc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgdwYXJ0aWVzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUGFydHkSDQoFdG90YWwYBCABKA0iigUKBVBhcnR5EhAKCHBhcnR5X2lkGAEgASgJEhIKCnBhcnR5X25hbWUYAiABKAkSEgoKcGFydHlfdHlwZRgDIAEoCRIdChB1c2VyX3NlcnZpY2VfY2lkGAQgASgJSACIAQESIAoTb3BlcmF0b3JfY29uZmlnX2NpZBgFIAEoCUgBiAEBEhEKCWlzX2FjdGl2ZRgGIAEoCBIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIuCgpjcmVhdGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCiABKAlIA4gBARIqCgl1c2VyX2RhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg8KB3ZlcnNpb24YDCABKAQSEgoFZW1haWwYDSABKAlIBIgBARIXCgpwdWJsaWNfa2V5GA4gASgJSAWIAQESGAoLaW52aXRlX2NvZGUYDyABKAlIBogBARIOCgZzb3VyY2UYECABKAkSGAoLcGFydGljaXBhbnQYESABKAlIB4gBAUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlQg4KDF9wYXJ0aWNpcGFudCKNAgoRTGlxdWlkaXR5UHJvdmlkZXISDAoEbmFtZRgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEjkKEGxhc3RfYWN0aXZlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCDgoMX2Rlc2NyaXB0aW9uQhMKEV9sYXN0X2FjdGl2ZV90aW1lIowBChxHZXRMaXF1aWRpdHlQcm92aWRlcnNSZXF1ZXN0EhsKDmFjdGl2ZV9zZWNvbmRzGAIgASgNSACIAQESEgoFbGltaXQYAyABKA1IAYgBARITCgZvZmZzZXQYBCABKA1IAogBAUIRCg9fYWN0aXZlX3NlY29uZHNCCAoGX2xpbWl0QgkKB19vZmZzZXQilgEKHUdldExpcXVpZGl0eVByb3ZpZGVyc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRJEChNsaXF1aWRpdHlfcHJvdmlkZXJzGAMgAygLMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuTGlxdWlkaXR5UHJvdmlkZXISDQoFdG90YWwYBCABKA0ilwQKEFdhaXRpbmdMaXN0RW50cnkSCgoCaWQYASABKAQSFQoIcGFydHlfaWQYAiABKAlIAIgBARIqCgl1c2VyX2RhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgEIAEoCRISCgVlbWFpbBgFIAEoCUgBiAEBEhcKCnB1YmxpY19rZXkYBiABKAlIAogBARIZChFvbmJvYXJkaW5nX3N0YXR1cxgHIAEoCRIPCgd2ZXJzaW9uGAggASgEEi4KCG1ldGFkYXRhGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBEi4KCmNyZWF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKCW11bHRpaGFzaBgMIAEoCUgEiAEBEiAKE211bHRpaGFzaF9zaWduYXR1cmUYDSABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgOIAEoCUgGiAEBQgsKCV9wYXJ0eV9pZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhQgwKCl9tdWx0aWhhc2hCFgoUX211bHRpaGFzaF9zaWduYXR1cmVCDgoMX2ludml0ZV9jb2RlItsBChpBZGRXYWl0aW5nTGlzdEVudHJ5UmVxdWVzdBIqCgl1c2VyX2RhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Eg4KBnNvdXJjZRgDIAEoCRISCgVlbWFpbBgEIAEoCUgAiAEBEhcKCnB1YmxpY19rZXkYBSABKAlIAYgBARIuCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBAUIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCCwoJX21ldGFkYXRhIksKG0FkZFdhaXRpbmdMaXN0RW50cnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSCgoCaWQYAyABKAQisQMKBVJvdW5kEhQKDHJvdW5kX251bWJlchgBIAEoBBI0Cidpc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAiABKAlIAIgBARI2Cilpc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbhgDIAEoCUgBiAEBEhgKC2NjX3VzZF9yYXRlGAQgASgJSAKIAQESJAoXdHJhZmZpY19jb3N0X3VzZF9wZXJfbWIYBSABKAlIA4gBARIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIqCihfaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIOCgxfY2NfdXNkX3JhdGVCGgoYX3RyYWZmaWNfY29zdF91c2RfcGVyX21iIqwFChJMYXRlc3RDb2VmZmljaWVudHMSNAonaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uGAEgASgJSACIAQESOgotaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kGAIgASgESAGIAQESNgopaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YAyABKAlIAogBARI8Ci9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbl9yb3VuZBgEIAEoBEgDiAEBEhgKC2NjX3VzZF9yYXRlGAUgASgJSASIAQESHgoRY2NfdXNkX3JhdGVfcm91bmQYBiABKARIBYgBARIkChd0cmFmZmljX2Nvc3RfdXNkX3Blcl9tYhgHIAEoCUgGiAEBEioKHXRyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kGAggASgESAeIAQFCKgooX2lzc3VhbmNlX3Blcl9mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIwCi5faXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kQiwKKl9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbkIyCjBfaXNzdWFuY2VfcGVyX3VuZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25fcm91bmRCDgoMX2NjX3VzZF9yYXRlQhQKEl9jY191c2RfcmF0ZV9yb3VuZEIaChhfdHJhZmZpY19jb3N0X3VzZF9wZXJfbWJCIAoeX3RyYWZmaWNfY29zdF91c2RfcGVyX21iX3JvdW5kIjQKFEdldFJvdW5kc0RhdGFSZXF1ZXN0EhIKBWxpbWl0GAIgASgNSACIAQFCCAoGX2xpbWl0IvABChVHZXRSb3VuZHNEYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBnJvdW5kcxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlJvdW5kEjgKBmxhdGVzdBgEIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLkxhdGVzdENvZWZmaWNpZW50cxIUCgx0b3RhbF9yb3VuZHMYBSABKA0SOAoKcHJlZGljdGlvbhgGIAEoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLlByZWRpY3Rpb25EYXRhIpUBChVDb2VmZmljaWVudFByZWRpY3Rpb24SFAoMcm91bmRfbnVtYmVyGAEgASgEEh0KFXByZWRpY3RlZF9jb2VmZmljaWVudBgCIAEoCRIYChBjb25maWRlbmNlX2xvd2VyGAMgASgJEhgKEGNvbmZpZGVuY2VfdXBwZXIYBCABKAkSEwoLc3RlcHNfYWhlYWQYBSABKA0i8QIKDlByZWRpY3Rpb25EYXRhEkAKC3ByZWRpY3Rpb25zGAEgAygLMisuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ29lZmZpY2llbnRQcmVkaWN0aW9uEjgKCGZvcmVjYXN0GAIgASgOMiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuSXNzdWFuY2VGb3JlY2FzdBIhChRmb3JlY2FzdF9jb2VmZmljaWVudBgDIAEoCUgAiAEBEhsKDmZvcmVjYXN0X3JvdW5kGAQgASgESAGIAQESFwoPYXJfY29lZmZpY2llbnRzGAUgAygBEhkKDHJlc2lkdWFsX3N0ZBgGIAEoCUgCiAEBEh0KEHByZWRpY3Rpb25fcm91bmQYByABKARIA4gBAUIXChVfZm9yZWNhc3RfY29lZmZpY2llbnRCEQoPX2ZvcmVjYXN0X3JvdW5kQg8KDV9yZXNpZHVhbF9zdGRCEwoRX3ByZWRpY3Rpb25fcm91bmQi7wIKBkludml0ZRITCgtpbnZpdGVfY29kZRgBIAEoCRIPCgdjaGFubmVsGAIgASgJEhQKB3Jld2FyZHMYAyABKAlIAIgBARIuCghtZXRhZGF0YRgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIyCgZzdGF0dXMYBSABKA4yIi5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVTdGF0dXMSEgoKY291bnRfdXNlZBgGIAEoDRIWCgltYXhfY291bnQYByABKA1IAogBARISCgpjcmVhdGVkX2J5GAggASgJEi4KCmNyZWF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9yZXdhcmRzQgsKCV9tZXRhZGF0YUIMCgpfbWF4X2NvdW50IicKEEdldEludml0ZVJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkiYAoRR2V0SW52aXRlUmVzcG9uc2USDQoFZm91bmQYASABKAgSMQoGaW52aXRlGAIgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuSW52aXRlSACIAQFCCQoHX2ludml0ZSJLChBVc2VJbnZpdGVSZXF1ZXN0EhMKC2ludml0ZV9jb2RlGAEgASgJEhUKCHBhcnR5X2lkGAIgASgJSACIAQFCCwoJX3BhcnR5X2lkInMKEVVzZUludml0ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIxCgZpbnZpdGUYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVIAIgBAUIJCgdfaW52aXRlIqcCChdDcmVhdGVJbnN0cnVtZW50UmVxdWVzdBIVCg1pbnN0cnVtZW50X2lkGAIgASgJEhcKD2luc3RydW1lbnRfdHlwZRgDIAEoCRIMCgRuYW1lGAQgASgJEg4KBnN5bWJvbBgFIAEoCRIYCgtkZXNjcmlwdGlvbhgGIAEoCUgAiAEBEhMKBmlzc3VlchgHIAEoCUgBiAEBEhUKCHJlZ2lzdHJ5GAggASgJSAKIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESEwoLbmV3c19zeW1ib2wYCiABKAlCDgoMX2Rlc2NyaXB0aW9uQgkKB19pc3N1ZXJCCwoJX3JlZ2lzdHJ5QgsKCV9tZXRhZGF0YSJyChhDcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjQKCmluc3RydW1lbnQYAyABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnN0cnVtZW50IsYDChNDcmVhdGVNYXJrZXRSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRI1CgttYXJrZXRfdHlwZRgDIAEoDjIgLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldFR5cGUSHAoPYmFzZV9pbnN0cnVtZW50GAQgASgJSACIAQESHQoQcXVvdGVfaW5zdHJ1bWVudBgFIAEoCUgBiAEBEhYKDm1pbl9vcmRlcl9zaXplGAYgASgJEhsKDm1heF9vcmRlcl9zaXplGAcgASgJSAKIAQESEQoJdGlja19zaXplGAggASgJEhEKCW1ha2VyX2ZlZRgJIAEoCRIRCgl0YWtlcl9mZWUYCiABKAkSLgoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESMQoLcHJpY2VfZmVlZHMYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQFCEgoQX2Jhc2VfaW5zdHJ1bWVudEITChFfcXVvdGVfaW5zdHJ1bWVudEIRCg9fbWF4X29yZGVyX3NpemVCCwoJX21ldGFkYXRhQg4KDF9wcmljZV9mZWVkcyJmChRDcmVhdGVNYXJrZXRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLAoGbWFya2V0GAMgASgLMhwuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0ImAKHVVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRIsCgtwcmljZV9mZWVkcxgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QicAoeVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQijAEKFFJlcXVlc3RRdW90ZXNSZXF1ZXN0EhEKCW1hcmtldF9pZBgCIAEoCRIRCglkaXJlY3Rpb24YAyABKAkSEAoIcXVhbnRpdHkYBCABKAkSEAoIbHBfbmFtZXMYBSADKAkSGQoMdGltZW91dF9zZWNzGAYgASgNSACIAQFCDwoNX3RpbWVvdXRfc2VjcyLkAQoVUmVxdWVzdFF1b3Rlc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIOCgZyZnFfaWQYAyABKAkSMgoGcXVvdGVzGAQgAygLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxUXVvdGVJbmZvEjcKCnJlamVjdGlvbnMYBSADKAsyIy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFSZWplY3RJbmZvEhUKDWxwc19yZXF1ZXN0ZWQYBiABKA0SFQoNbHBzX3Jlc3BvbmRlZBgHIAEoDSLpAgoMUmZxUXVvdGVJbmZvEhAKCHF1b3RlX2lkGAEgASgJEg8KB2xwX25hbWUYAiABKAkSDQoFcHJpY2UYAyABKAkSEAoIcXVhbnRpdHkYBCABKAkSFgoOcXVvdGVfcXVhbnRpdHkYBSABKAkSLwoLdmFsaWRfdW50aWwYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiEKFGFsbG9jYXRlX2JlZm9yZV9zZWNzGAcgASgNSACIAQESHwoSc2V0dGxlX2JlZm9yZV9zZWNzGAggASgNSAGIAQESGQoRZXN0aW1hdGVkX2R2cF9mZWUYCSABKAkSIAoYZXN0aW1hdGVkX2FsbG9jYXRpb25fZmVlGAogASgJEhsKE2VzdGltYXRlZF90b3RhbF9mZWUYCyABKAlCFwoVX2FsbG9jYXRlX2JlZm9yZV9zZWNzQhUKE19zZXR0bGVfYmVmb3JlX3NlY3MiiAEKDVJmcVJlamVjdEluZm8SDwoHbHBfbmFtZRgBIAEoCRIOCgZyZWFzb24YAiABKAkSGQoMbWluX3F1YW50aXR5GAMgASgJSACIAQESGQoMbWF4X3F1YW50aXR5GAQgASgJSAGIAQFCDwoNX21pbl9xdWFudGl0eUIPCg1fbWF4X3F1YW50aXR5IjYKEkFjY2VwdFF1b3RlUmVxdWVzdBIOCgZyZnFfaWQYAiABKAkSEAoIcXVvdGVfaWQYAyABKAkiYQoTQWNjZXB0UXVvdGVSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSGAoLcHJvcG9zYWxfaWQYAyABKAlIAIgBAUIOCgxfcHJvcG9zYWxfaWQiTQolR2V0Q29ubmVjdGVkTGlxdWlkaXR5UHJvdmlkZXJzUmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBAUIMCgpfbWFya2V0X2lkIo4BCiZHZXRDb25uZWN0ZWRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSQgoTbGlxdWlkaXR5X3Byb3ZpZGVycxgDIAMoCzIlLnNpbHZhbmEub3JkZXJib29rLnYxLkNvbm5lY3RlZExwSW5mbyJOCg9Db25uZWN0ZWRMcEluZm8SDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIYChBjb25uZWN0ZWRfYWdlbnRzGAMgASgNIpUEChBSZnFBdWRpdExvZ0VudHJ5EgoKAmlkGAEgASgEEg4KBnJmcV9pZBgCIAEoCRI7CgpldmVudF90eXBlGAMgASgOMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxQXVkaXRFdmVudFR5cGUSEQoJbWFya2V0X2lkGAQgASgJEhEKCWRpcmVjdGlvbhgFIAEoCRIYChByZXF1ZXN0aW5nX3BhcnR5GAYgASgJEhQKB2xwX25hbWUYByABKAlIAIgBARIYCgtscF9wYXJ0eV9pZBgIIAEoCUgBiAEBEhUKCHF1YW50aXR5GAkgASgJSAKIAQESEgoFcHJpY2UYCiABKAlIA4gBARIbCg5xdW90ZV9xdWFudGl0eRgLIAEoCUgEiAEBEhUKCHF1b3RlX2lkGAwgASgJSAWIAQESGAoLcHJvcG9zYWxfaWQYDSABKAlIBogBARIaCg1lcnJvcl9tZXNzYWdlGA4gASgJSAeIAQESLgoKY3JlYXRlZF9hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2xwX25hbWVCDgoMX2xwX3BhcnR5X2lkQgsKCV9xdWFudGl0eUIICgZfcHJpY2VCEQoPX3F1b3RlX3F1YW50aXR5QgsKCV9xdW90ZV9pZEIOCgxfcHJvcG9zYWxfaWRCEAoOX2Vycm9yX21lc3NhZ2UijgMKFUdldFJmcUF1ZGl0TG9nUmVxdWVzdBITCgZyZnFfaWQYASABKAlIAIgBARIWCgltYXJrZXRfaWQYAiABKAlIAYgBARJACgpldmVudF90eXBlGAMgASgOMicuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxQXVkaXRFdmVudFR5cGVIAogBARIUCgdscF9uYW1lGAQgASgJSAOIAQESMgoJZnJvbV90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgEiAEBEjAKB3RvX3RpbWUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESEgoFbGltaXQYByABKA1IBogBARITCgZvZmZzZXQYCCABKA1IB4gBAUIJCgdfcmZxX2lkQgwKCl9tYXJrZXRfaWRCDQoLX2V2ZW50X3R5cGVCCgoIX2xwX25hbWVCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCJgChZHZXRSZnFBdWRpdExvZ1Jlc3BvbnNlEjcKB2VudHJpZXMYASADKAsyJi5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFBdWRpdExvZ0VudHJ5Eg0KBXRvdGFsGAIgASgNIvwBCg5SZnFTdHJlYW1FdmVudBI9Cglpbml0aWF0ZWQYASABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFTdHJlYW1Jbml0aWF0ZWRIABIzCgVxdW90ZRgCIAEoCzIiLnNpbHZhbmEub3JkZXJib29rLnYxLlJmcVF1b3RlSW5mb0gAEjgKCXJlamVjdGlvbhgDIAEoCzIjLnNpbHZhbmEub3JkZXJib29rLnYxLlJmcVJlamVjdEluZm9IABIzCgRkb25lGAQgASgLMiMuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxU3RyZWFtRG9uZUgAQgcKBWV2ZW50IjsKElJmcVN0cmVhbUluaXRpYXRlZBIOCgZyZnFfaWQYASABKAkSFQoNbHBzX3JlcXVlc3RlZBgCIAEoDSI9Cg1SZnFTdHJlYW1Eb25lEhUKDWxwc19yZXF1ZXN0ZWQYASABKA0SFQoNbHBzX3Jlc3BvbmRlZBgCIAEoDSJYCh1Fc3RpbWF0ZVNldHRsZW1lbnRGZWVzUmVxdWVzdBIRCgltYXJrZXRfaWQYASABKAkSFQoNYmFzZV9xdWFudGl0eRgCIAEoCRINCgVwcmljZRgDIAEoCSKcAQoeRXN0aW1hdGVTZXR0bGVtZW50RmVlc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIZChFlc3RpbWF0ZWRfZHZwX2ZlZRgDIAEoCRIgChhlc3RpbWF0ZWRfYWxsb2NhdGlvbl9mZWUYBCABKAkSGwoTZXN0aW1hdGVkX3RvdGFsX2ZlZRgFIAEoCSI1Ch1HZXRVc2VyU2V0dGxlbWVudFN0YXRzUmVxdWVzdBIUCgxyb3VuZF9udW1iZXIYASABKA0ieAoeR2V0VXNlclNldHRsZW1lbnRTdGF0c1Jlc3BvbnNlEhQKDHJvdW5kX251bWJlchgBIAEoDRIQCghwYXJ0eV9pZBgCIAEoCRIYChBkdnBfc2V0dGxlX2NvdW50GAMgASgNEhQKDGZlZV9yZWltYl9jYxgEIAEoCSpRCglPcmRlclR5cGUSGgoWT1JERVJfVFlQRV9VTlNQRUNJRklFRBAAEhIKDk9SREVSX1RZUEVfQklEEAESFAoQT1JERVJfVFlQRV9PRkZFUhACKq0BCgtPcmRlclN0YXR1cxIcChhPUkRFUl9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNPUkRFUl9TVEFUVVNfQUNUSVZFEAESGAoUT1JERVJfU1RBVFVTX1BBUlRJQUwQAhIXChNPUkRFUl9TVEFUVVNfRklMTEVEEAMSGgoWT1JERVJfU1RBVFVTX0NBTkNFTExFRBAEEhgKFE9SREVSX1NUQVRVU19FWFBJUkVEEAUqiAEKC1RpbWVJbkZvcmNlEh0KGVRJTUVfSU5fRk9SQ0VfVU5TUEVDSUZJRUQQABIVChFUSU1FX0lOX0ZPUkNFX0dUQxABEhUKEVRJTUVfSU5fRk9SQ0VfSU9DEAISFQoRVElNRV9JTl9GT1JDRV9GT0sQAxIVChFUSU1FX0lOX0ZPUkNFX0dURBAEKrIBChBTZXR0bGVtZW50U3RhdHVzEiEKHVNFVFRMRU1FTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASHQoZU0VUVExFTUVOVF9TVEFUVVNfUEVORElORxABEh0KGVNFVFRMRU1FTlRfU1RBVFVTX1NFVFRMRUQQAhIfChtTRVRUTEVNRU5UX1NUQVRVU19DQU5DRUxMRUQQAxIcChhTRVRUTEVNRU5UX1NUQVRVU19GQUlMRUQQBCp2CgpNYXJrZXRUeXBlEhsKF01BUktFVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTTUFSS0VUX1RZUEVfR0VORVJBTBABEh0KGU1BUktFVF9UWVBFX0lOU1RJVFVUSU9OQUwQAhITCg9NQVJLRVRfVFlQRV9PVEMQAyqKAQoQSXNzdWFuY2VGb3JlY2FzdBIhCh1JU1NVQU5DRV9GT1JFQ0FTVF9VTlNQRUNJRklFRBAAEhkKFUlTU1VBTkNFX0ZPUkVDQVNUX0xPVxABEhwKGElTU1VBTkNFX0ZPUkVDQVNUX01FRElVTRACEhoKFklTU1VBTkNFX0ZPUkVDQVNUX0hJR0gQAyqWAQoMSW52aXRlU3RhdHVzEh0KGUlOVklURV9TVEFUVVNfVU5TUEVDSUZJRUQQABIXChNJTlZJVEVfU1RBVFVTX1ZBTElEEAESGQoVSU5WSVRFX1NUQVRVU19FWFBJUkVEEAISFgoSSU5WSVRFX1NUQVRVU19VU0VEEAMSGwoXSU5WSVRFX1NUQVRVU19DQU5DRUxMRUQQBCreAQoRUmZxQXVkaXRFdmVudFR5cGUSJAogUkZRX0FVRElUX0VWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIgChxSRlFfQVVESVRfRVZFTlRfVFlQRV9SRVFVRVNUEAESHgoaUkZRX0FVRElUX0VWRU5UX1RZUEVfUVVPVEUQAhIfChtSRlFfQVVESVRfRVZFTlRfVFlQRV9SRUpFQ1QQAxIfChtSRlFfQVVESVRfRVZFTlRfVFlQRV9BQ0NFUFQQBBIfChtSRlFfQVVESVRfRVZFTlRfVFlQRV9FWFBJUkUQBTLQHgoQT3JkZXJib29rU2VydmljZRJcCglHZXRPcmRlcnMSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJzUmVzcG9uc2USdAoRR2V0T3JkZXJib29rRGVwdGgSLi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlcXVlc3QaLy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcmJvb2tEZXB0aFJlc3BvbnNlEoMBChZHZXRTZXR0bGVtZW50UHJvcG9zYWxzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVzcG9uc2USgAEKFUdldFNldHRsZW1lbnRQcm9wb3NhbBIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRJrCg5HZXRJbnN0cnVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEluc3RydW1lbnRzUmVzcG9uc2USXwoKR2V0TWFya2V0cxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldHNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1Jlc3BvbnNlEm4KD0dldE9yZGVySGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlckhpc3RvcnlSZXNwb25zZRJoCg1HZXRNYXJrZXREYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0RGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVzcG9uc2USawoOR2V0U2V0dGxlbWVudHMSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50c1Jlc3BvbnNlEoMBChZFc3RpbWF0ZVNldHRsZW1lbnRGZWVzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuRXN0aW1hdGVTZXR0bGVtZW50RmVlc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5Fc3RpbWF0ZVNldHRsZW1lbnRGZWVzUmVzcG9uc2USYgoLU3VibWl0T3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJtaXRPcmRlclJlc3BvbnNlEmIKC0NhbmNlbE9yZGVyEiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ2FuY2VsT3JkZXJSZXNwb25zZRJZCghHZXRQYXJ0eRIlLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5UmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5UmVzcG9uc2USXwoKR2V0UGFydGllcxInLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnRpZXNSZXF1ZXN0Giguc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1Jlc3BvbnNlEoABChVHZXRMaXF1aWRpdHlQcm92aWRlcnMSMi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRMaXF1aWRpdHlQcm92aWRlcnNSZXF1ZXN0GjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TGlxdWlkaXR5UHJvdmlkZXJzUmVzcG9uc2USmwEKHkdldENvbm5lY3RlZExpcXVpZGl0eVByb3ZpZGVycxI7LnNpbHZhbmEub3JkZXJib29rLnYxLkdldENvbm5lY3RlZExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QaPC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRDb25uZWN0ZWRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRJoCg1SZXF1ZXN0UXVvdGVzEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuUmVxdWVzdFF1b3Rlc1JlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZXF1ZXN0UXVvdGVzUmVzcG9uc2USYgoLQWNjZXB0UXVvdGUSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5BY2NlcHRRdW90ZVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5BY2NlcHRRdW90ZVJlc3BvbnNlEmsKDkdldFJmcUF1ZGl0TG9nEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UmZxQXVkaXRMb2dSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UmZxQXVkaXRMb2dSZXNwb25zZRJ6ChNBZGRXYWl0aW5nTGlzdEVudHJ5EjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuQWRkV2FpdGluZ0xpc3RFbnRyeVJlcXVlc3QaMS5zaWx2YW5hLm9yZGVyYm9vay52MS5BZGRXYWl0aW5nTGlzdEVudHJ5UmVzcG9uc2USXAoJR2V0SW52aXRlEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW52aXRlUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLkdldEludml0ZVJlc3BvbnNlElwKCVVzZUludml0ZRImLnNpbHZhbmEub3JkZXJib29rLnYxLlVzZUludml0ZVJlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5Vc2VJbnZpdGVSZXNwb25zZRJoCg1HZXRSb3VuZHNEYXRhEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0Um91bmRzRGF0YVJlcXVlc3QaKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSb3VuZHNEYXRhUmVzcG9uc2USgwEKFkdldFVzZXJTZXR0bGVtZW50U3RhdHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRVc2VyU2V0dGxlbWVudFN0YXRzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLkdldFVzZXJTZXR0bGVtZW50U3RhdHNSZXNwb25zZRJiCgtDcmVhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZVBhcnR5UmVzcG9uc2USYgoLVXBkYXRlUGFydHkSKC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVQYXJ0eVJlc3BvbnNlEm4KD0RlYWN0aXZhdGVQYXJ0eRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5EZWFjdGl2YXRlUGFydHlSZXNwb25zZRJuCg9HZXRQYXJ0eUhpc3RvcnkSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXF1ZXN0Gi0uc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlIaXN0b3J5UmVzcG9uc2UScQoQQ3JlYXRlSW5zdHJ1bWVudBItLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZUluc3RydW1lbnRSZXF1ZXN0Gi4uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlc3BvbnNlEmUKDENyZWF0ZU1hcmtldBIpLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlcXVlc3QaKi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVNYXJrZXRSZXNwb25zZRKDAQoWVXBkYXRlTWFya2V0UHJpY2VGZWVkcxIzLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZU1hcmtldFByaWNlRmVlZHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1Jlc3BvbnNlEm4KElN1YnNjcmliZU9yZGVyYm9vaxIvLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyYm9va1JlcXVlc3QaJS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUwARJkCg9TdWJzY3JpYmVPcmRlcnMSLC5zaWx2YW5hLm9yZGVyYm9vay52MS5TdWJzY3JpYmVPcmRlcnNSZXF1ZXN0GiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJVcGRhdGUwARJzChRTdWJzY3JpYmVTZXR0bGVtZW50cxIxLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZVNldHRsZW1lbnRzUmVxdWVzdBomLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRVcGRhdGUwARJpChNTdHJlYW1SZXF1ZXN0UXVvdGVzEiouc2lsdmFuYS5vcmRlcmJvb2sudjEuUmVxdWVzdFF1b3Rlc1JlcXVlc3QaJC5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFTdHJlYW1FdmVudDABQjRaMmdpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87b3JkZXJib29rYgZwcm90bzM", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("CiRzaWx2YW5hL29yZGVyYm9vay92MS9vcmRlcmJvb2sucHJvdG8SFHNpbHZhbmEub3JkZXJib29rLnYxIvoCCgpJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAIgASgJEgwKBG5hbWUYAyABKAkSDgoGc3ltYm9sGAQgASgJEhgKC2Rlc2NyaXB0aW9uGAUgASgJSACIAQESEwoGaXNzdWVyGAYgASgJSAGIAQESFQoIcmVnaXN0cnkYByABKAlIAogBARIuCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBITCgtuZXdzX3N5bWJvbBgLIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhItwFCgZNYXJrZXQSEQoJbWFya2V0X2lkGAEgASgJEjUKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIXCg9iYXNlX2luc3RydW1lbnQYAyABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgEIAEoCRITCgtwYWlyX3N5bWJvbBgFIAEoCRIRCglpc19hY3RpdmUYBiABKAgSFgoObWluX29yZGVyX3NpemUYByABKAkSGwoObWF4X29yZGVyX3NpemUYCCABKAlIAIgBARIRCgl0aWNrX3NpemUYCSABKAkSEQoJbWFrZXJfZmVlGAogASgJEhEKCXRha2VyX2ZlZRgLIAEoCRIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgpjcmVhdGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgtwcmljZV9mZWVkcxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIaCg1jdXJyZW50X3ByaWNlGBAgASgBSAOIAQESFwoKY2hhbmdlXzI0aBgRIAEoAUgEiAEBEhcKCnZvbHVtZV8yNGgYEiABKAFIBYgBARI5ChBwcmljZV91cGRhdGVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgGiAEBQhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzQhAKDl9jdXJyZW50X3ByaWNlQg0KC19jaGFuZ2VfMjRoQg0KC192b2x1bWVfMjRoQhMKEV9wcmljZV91cGRhdGVkX2F0IqUICgVPcmRlchIQCghvcmRlcl9pZBgBIAEoBBIRCgltYXJrZXRfaWQYAiABKAkSMwoKb3JkZXJfdHlwZRgDIAEoDjIfLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVHlwZRIOCgZ0cmFkZXIYBCABKAkSHQoQdHJhZGVyX29yZGVyX3JlZhgFIAEoCUgAiAEBEhcKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCRIYChBxdW90ZV9pbnN0cnVtZW50GAcgASgJEg0KBXByaWNlGAggASgJEhAKCHF1YW50aXR5GAkgASgJEhcKD2ZpbGxlZF9xdWFudGl0eRgKIAEoCRIYChBwZW5kaW5nX3F1YW50aXR5GAsgASgJEhoKEnJlbWFpbmluZ19xdWFudGl0eRgMIAEoCRIxCgZzdGF0dXMYDSABKA4yIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclN0YXR1cxI4Cg10aW1lX2luX2ZvcmNlGA4gASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuVGltZUluRm9yY2USMwoKZXhwaXJlc19hdBgPIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIPCgd2ZXJzaW9uGBAgASgEEjEKC2NyZWRlbnRpYWxzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgSIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgTIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIuCgpjcmVhdGVkX2F0GBQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GBUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxjYW5jZWxsZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAWIAQESFgoJc2lnbmF0dXJlGBcgASgJSAaIAQESEwoLc2lnbmVkX2RhdGEYGCABKAwSDQoFbm9uY2UYGSABKAQSIAoYb25seV9saXF1aWRpdHlfcHJvdmlkZXJzGBogASgIEiQKF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGBsgASgJSAeIAQFCEwoRX3RyYWRlcl9vcmRlcl9yZWZCDQoLX2V4cGlyZXNfYXRCDgoMX2NyZWRlbnRpYWxzQg8KDV9yZXF1aXJlbWVudHNCCwoJX21ldGFkYXRhQg8KDV9jYW5jZWxsZWRfYXRCDAoKX3NpZ25hdHVyZUIaChhfbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWUiggEKDk9yZGVyYm9va0xldmVsEg0KBXByaWNlGAEgASgJEhYKDnRvdGFsX3F1YW50aXR5GAIgASgJEhMKC29yZGVyX2NvdW50GAMgASgNEjQKEGZpcnN0X29yZGVyX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItUBCg5PcmRlcmJvb2tEZXB0aBIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSMgoEYmlkcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjQKBm9mZmVycxgEIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjEKDXNuYXBzaG90X3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsIGChJTZXR0bGVtZW50UHJvcG9zYWwSEwoLcHJvcG9zYWxfaWQYASABKAkSEQoJbWFya2V0X2lkGAIgASgJEg0KBWJ1eWVyGAMgASgJEg4KBnNlbGxlchgEIAEoCRIXCg9iYXNlX2luc3RydW1lbnQYBSABKAkSGAoQcXVvdGVfaW5zdHJ1bWVudBgGIAEoCRIVCg1iYXNlX3F1YW50aXR5GAcgASgJEhYKDnF1b3RlX3F1YW50aXR5GAggASgJEhgKEHNldHRsZW1lbnRfcHJpY2UYCSABKAkSIAoYZHZwX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAogASgJEiEKGWR2cF9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYCyABKAkSJwofYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9idXllchgMIAEoCRIoCiBhbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgNIAEoCRI2CgZzdGF0dXMYDiABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50U3RhdHVzEhoKDWVycm9yX21lc3NhZ2UYDyABKAlIAIgBARIuCgpjcmVhdGVkX2F0GBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIzCgpzZXR0bGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgBiAEBEjUKDGNhbmNlbGxlZF9hdBgSIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIyCglmYWlsZWRfYXQYEyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAOIAQESNQoLb3JkZXJfbWF0Y2gYFCABKAsyIC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlck1hdGNoEh8KEmR2cF9wcm9wb3Nlcl9wYXJ0eRgVIAEoCUgEiAEBQhAKDl9lcnJvcl9tZXNzYWdlQg0KC19zZXR0bGVkX2F0Qg8KDV9jYW5jZWxsZWRfYXRCDAoKX2ZhaWxlZF9hdEIVChNfZHZwX3Byb3Bvc2VyX3BhcnR5IrsBCgpPcmRlck1hdGNoEh4KFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYASABKAkSFAoMYmlkX29yZGVyX2lkGAIgASgEEhYKDm9mZmVyX29yZGVyX2lkGAMgASgEEhgKEG1hdGNoZWRfcXVhbnRpdHkYBCABKAkSFQoNbWF0Y2hlZF9wcmljZRgFIAEoCRIuCgpjcmVhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKcBAoKU2V0dGxlbWVudBIVCg1zZXR0bGVtZW50X2lkGAEgASgEEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRINCgVidXllchgEIAEoCRIOCgZzZWxsZXIYBSABKAkSFwoPYmFzZV9pbnN0cnVtZW50GAYgASgJEhgKEHF1b3RlX2luc3RydW1lbnQYByABKAkSFQoNYmFzZV9xdWFudGl0eRgIIAEoCRIWCg5xdW90ZV9xdWFudGl0eRgJIAEoCRIYChBzZXR0bGVtZW50X3ByaWNlGAogASgJEiAKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgLIAEoCRIhChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGAwgASgJEicKH2FsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDSABKAkSKAogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDiABKAkSHAoPc2V0dGxlZF9kdnBfY2lkGA8gASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYECABKAlIAYgBARIuCgpzZXR0bGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZCKVAgoKTWFya2V0RGF0YRIRCgltYXJrZXRfaWQYASABKAkSEwoLcGFpcl9zeW1ib2wYAiABKAkSFQoIYmVzdF9iaWQYAyABKAlIAIgBARIXCgpiZXN0X29mZmVyGAQgASgJSAGIAQESFwoKbGFzdF9wcmljZRgFIAEoCUgCiAEBEhIKCnZvbHVtZV8yNGgYBiABKAkSEgoKdHJhZGVzXzI0aBgHIAEoDRITCgtvcGVuX29yZGVycxgIIAEoDRIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEILCglfYmVzdF9iaWRCDQoLX2Jlc3Rfb2ZmZXJCDQoLX2xhc3RfcHJpY2Ui+gIKEEdldE9yZGVyc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQESNgoGc3RhdHVzGAMgASgOMiEuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJTdGF0dXNIAYgBARI4CgpvcmRlcl90eXBlGAQgASgOMh8uc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJUeXBlSAKIAQESEgoFbGltaXQYBSABKA1IA4gBARITCgZvZmZzZXQYBiABKA1IBIgBARIuCiFsaXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMYCyABKA1IBYgBARIgChhsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZXMYDCADKAlCDAoKX21hcmtldF9pZEIJCgdfc3RhdHVzQg0KC19vcmRlcl90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0QiQKIl9saXF1aWRpdHlfcHJvdmlkZXJfYWN0aXZlX3NlY29uZHMicQoRR2V0T3JkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEisKBm9yZGVycxgDIAMoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEg0KBXRvdGFsGAQgASgNIksKGEdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBAUIICgZfZGVwdGgidgoZR2V0T3JkZXJib29rRGVwdGhSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNwoJb3JkZXJib29rGAMgASgLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJib29rRGVwdGgiywEKHUdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjsKBnN0YXR1cxgDIAEoDjImLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnRTdGF0dXNIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQgwKCl9tYXJrZXRfaWRCCQoHX3N0YXR1c0IICgZfbGltaXRCCQoHX29mZnNldCKOAQoeR2V0U2V0dGxlbWVudFByb3Bvc2Fsc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI7Cglwcm9wb3NhbHMYAyADKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSDQoFdG90YWwYBCABKA0iMwocR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgCIAEoCSKPAQodR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEj8KCHByb3Bvc2FsGAMgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFByb3Bvc2FsSACIAQFCCwoJX3Byb3Bvc2FsIocBChVHZXRJbnN0cnVtZW50c1JlcXVlc3QSHAoPaW5zdHJ1bWVudF90eXBlGAIgASgJSACIAQESEgoFbGltaXQYAyABKA1IAYgBARITCgZvZmZzZXQYBCABKA1IAogBAUISChBfaW5zdHJ1bWVudF90eXBlQggKBl9saW1pdEIJCgdfb2Zmc2V0IoABChZHZXRJbnN0cnVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtpbnN0cnVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQSDQoFdG90YWwYBCABKA0irQIKEUdldE1hcmtldHNSZXF1ZXN0EjoKC21hcmtldF90eXBlGAIgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZUgAiAEBEhwKD2Jhc2VfaW5zdHJ1bWVudBgDIAEoCUgBiAEBEh0KEHF1b3RlX2luc3RydW1lbnQYBCABKAlIAogBARIYCgthY3RpdmVfb25seRgFIAEoCEgDiAEBEhIKBWxpbWl0GAYgASgNSASIAQESEwoGb2Zmc2V0GAcgASgNSAWIAQFCDgoMX21hcmtldF90eXBlQhIKEF9iYXNlX2luc3RydW1lbnRCEwoRX3F1b3RlX2luc3RydW1lbnRCDgoMX2FjdGl2ZV9vbmx5QggKBl9saW1pdEIJCgdfb2Zmc2V0InQKEkdldE1hcmtldHNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSLQoHbWFya2V0cxgDIAMoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldBINCgV0b3RhbBgEIAEoDSL8AQoWR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBIWCgltYXJrZXRfaWQYAiABKAlIAIgBARIyCglmcm9tX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSAGIAQESMAoHdG9fdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARISCgVsaW1pdBgFIAEoDUgDiAEBEhMKBm9mZnNldBgGIAEoDUgEiAEBQgwKCl9tYXJrZXRfaWRCDAoKX2Zyb21fdGltZUIKCghfdG9fdGltZUIICgZfbGltaXRCCQoHX29mZnNldCJ3ChdHZXRPcmRlckhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGb3JkZXJzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXISDQoFdG90YWwYBCABKA0iKgoUR2V0TWFya2V0RGF0YVJlcXVlc3QSEgoKbWFya2V0X2lkcxgCIAMoCSJwChVHZXRNYXJrZXREYXRhUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjUKC21hcmtldF9kYXRhGAMgAygLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0RGF0YSL7AQoVR2V0U2V0dGxlbWVudHNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBEjIKCWZyb21fdGltZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIwCgd0b190aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhIKBWxpbWl0GAUgASgNSAOIAQESEwoGb2Zmc2V0GAYgASgNSASIAQFCDAoKX21hcmtldF9pZEIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0IoABChZHZXRTZXR0bGVtZW50c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRI1CgtzZXR0bGVtZW50cxgDIAMoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLlNldHRsZW1lbnQSDQoFdG90YWwYBCABKA0iTAoZU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBIRCgltYXJrZXRfaWQYAiABKAkSEgoFZGVwdGgYAyABKA1IAIgBAUIICgZfZGVwdGgihwMKD09yZGVyYm9va1VwZGF0ZRIRCgltYXJrZXRfaWQYASABKAkSRQoLdXBkYXRlX3R5cGUYAiABKA4yMC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tVcGRhdGUuVXBkYXRlVHlwZRI5CgtiaWRfdXBkYXRlcxgDIAMoCzIkLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va0xldmVsEjsKDW9mZmVyX3VwZGF0ZXMYBCADKAsyJC5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlcmJvb2tMZXZlbBItCgl0aW1lc3RhbXAYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3NlcXVlbmNlX251bWJlchgGIAEoBCJaCgpVcGRhdGVUeXBlEhsKF1VQREFURV9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUVVBEQVRFX1RZUEVfU05BUFNIT1QQARIVChFVUERBVEVfVFlQRV9ERUxUQRACIj4KFlN1YnNjcmliZU9yZGVyc1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQFCDAoKX21hcmtldF9pZCKtAwoLT3JkZXJVcGRhdGUSPwoKZXZlbnRfdHlwZRgBIAEoDjIrLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyVXBkYXRlLkV2ZW50VHlwZRIqCgVvcmRlchgCIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyEjQKBW1hdGNoGAMgASgLMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJNYXRjaEgAiAEBEi0KCXRpbWVzdGFtcBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiwQEKCUV2ZW50VHlwZRIaChZFVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASFgoSRVZFTlRfVFlQRV9DUkVBVEVEEAESFgoSRVZFTlRfVFlQRV9VUERBVEVEEAISFQoRRVZFTlRfVFlQRV9GSUxMRUQQAxIfChtFVkVOVF9UWVBFX1BBUlRJQUxMWV9GSUxMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFEhYKEkVWRU5UX1RZUEVfRVhQSVJFRBAGQggKBl9tYXRjaCJDChtTdWJzY3JpYmVTZXR0bGVtZW50c1JlcXVlc3QSFgoJbWFya2V0X2lkGAIgASgJSACIAQFCDAoKX21hcmtldF9pZCL2AgoQU2V0dGxlbWVudFVwZGF0ZRJECgpldmVudF90eXBlGAEgASgOMjAuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZS5FdmVudFR5cGUSOgoIcHJvcG9zYWwYAiABKAsyKC5zaWx2YW5hLm9yZGVyYm9vay52MS5TZXR0bGVtZW50UHJvcG9zYWwSLQoJdGltZXN0YW1wGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKwAQoJRXZlbnRUeXBlEhoKFkVWRU5UX1RZUEVfVU5TUEVDSUZJRUQQABIfChtFVkVOVF9UWVBFX1BST1BPU0FMX0NSRUFURUQQARIdChlFVkVOVF9UWVBFX1NUQVRVU19DSEFOR0VEEAISFgoSRVZFTlRfVFlQRV9TRVRUTEVEEAMSFQoRRVZFTlRfVFlQRV9GQUlMRUQQBBIYChRFVkVOVF9UWVBFX0NBTkNFTExFRBAFIsQFChJTdWJtaXRPcmRlclJlcXVlc3QSEQoJbWFya2V0X2lkGAIgASgJEjMKCm9yZGVyX3R5cGUYAyABKA4yHy5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclR5cGUSDQoFcHJpY2UYBCABKAkSEAoIcXVhbnRpdHkYBSABKAkSOAoNdGltZV9pbl9mb3JjZRgGIAEoDjIhLnNpbHZhbmEub3JkZXJib29rLnYxLlRpbWVJbkZvcmNlEjMKCmV4cGlyZXNfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQESHQoQdHJhZGVyX29yZGVyX3JlZhgIIAEoCUgBiAEBEjEKC2NyZWRlbnRpYWxzGAkgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEjIKDHJlcXVpcmVtZW50cxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBARIWCglzaWduYXR1cmUYDCABKAlIBYgBARITCgtzaWduZWRfZGF0YRgNIAEoDBINCgVub25jZRgOIAEoBBIlChhvbmx5X2xpcXVpZGl0eV9wcm92aWRlcnMYDyABKAhIBogBARIkChdsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZRgQIAEoCUgHiAEBQg0KC19leHBpcmVzX2F0QhMKEV90cmFkZXJfb3JkZXJfcmVmQg4KDF9jcmVkZW50aWFsc0IPCg1fcmVxdWlyZW1lbnRzQgsKCV9tZXRhZGF0YUIMCgpfc2lnbmF0dXJlQhsKGV9vbmx5X2xpcXVpZGl0eV9wcm92aWRlcnNCGgoYX2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lInIKE1N1Ym1pdE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiJgoSQ2FuY2VsT3JkZXJSZXF1ZXN0EhAKCG9yZGVyX2lkGAIgASgEInIKE0NhbmNlbE9yZGVyUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEi8KBW9yZGVyGAMgASgLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuT3JkZXJIAIgBAUIICgZfb3JkZXIiyQUKEkNyZWF0ZVBhcnR5UmVxdWVzdBIQCghwYXJ0eV9pZBgCIAEoCRISCgpwYXJ0eV9uYW1lGAMgASgJEhIKCnBhcnR5X3R5cGUYBCABKAkSHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgAiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAYgBARIuCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYCCABKAlIA4gBARIqCgl1c2VyX2RhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhIKBWVtYWlsGAogASgJSASIAQESFwoKcHVibGljX2tleRgLIAEoCUgFiAEBEhgKC2ludml0ZV9jb2RlGAwgASgJSAaIAQESEwoGc291cmNlGA0gASgJSAeIAQESIgoVZW5jcnlwdGVkX3ByaXZhdGVfa2V5GA4gASgJSAiIAQESJAoXbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWUYECABKAlICYgBARIrCh5saXF1aWRpdHlfcHJvdmlkZXJfZGVzY3JpcHRpb24YESABKAlICogBAUITChFfdXNlcl9zZXJ2aWNlX2NpZEIWChRfb3BlcmF0b3JfY29uZmlnX2NpZEILCglfbWV0YWRhdGFCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlQgkKB19zb3VyY2VCGAoWX2VuY3J5cHRlZF9wcml2YXRlX2tleUIaChhfbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWVCIQofX2xpcXVpZGl0eV9wcm92aWRlcl9kZXNjcmlwdGlvbiJjChNDcmVhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IpIFChJVcGRhdGVQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIXCgpwYXJ0eV9uYW1lGAQgASgJSACIAQESHQoQdXNlcl9zZXJ2aWNlX2NpZBgFIAEoCUgBiAEBEiAKE29wZXJhdG9yX2NvbmZpZ19jaWQYBiABKAlIAogBARIlChh1c2VyX3NlcnZpY2VfcmVxdWVzdF9jaWQYByABKAlIA4gBARIvCgl1c2VyX2RhdGEYCCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SASIAQESLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESGgoNY2hhbmdlX3JlYXNvbhgKIAEoCUgGiAEBEhIKBWVtYWlsGAsgASgJSAeIAQESFwoKcHVibGljX2tleRgMIAEoCUgIiAEBEhgKC2ludml0ZV9jb2RlGA0gASgJSAmIAQESEwoGc291cmNlGA4gASgJSAqIAQESIgoVZW5jcnlwdGVkX3ByaXZhdGVfa2V5GA8gASgJSAuIAQFCDQoLX3BhcnR5X25hbWVCEwoRX3VzZXJfc2VydmljZV9jaWRCFgoUX29wZXJhdG9yX2NvbmZpZ19jaWRCGwoZX3VzZXJfc2VydmljZV9yZXF1ZXN0X2NpZEIMCgpfdXNlcl9kYXRhQgsKCV9tZXRhZGF0YUIQCg5fY2hhbmdlX3JlYXNvbkIICgZfZW1haWxCDQoLX3B1YmxpY19rZXlCDgoMX2ludml0ZV9jb2RlQgkKB19zb3VyY2VCGAoWX2VuY3J5cHRlZF9wcml2YXRlX2tleSJjChNVcGRhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IlsKFkRlYWN0aXZhdGVQYXJ0eVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIVCg1jaGFuZ2VfcmVhc29uGAQgASgJImcKF0RlYWN0aXZhdGVQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5ImgKFkdldFBhcnR5SGlzdG9yeVJlcXVlc3QSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBARITCgZvZmZzZXQYBCABKA1IAYgBAUIICgZfbGltaXRCCQoHX29mZnNldCKBAgoRUGFydHlIaXN0b3J5RW50cnkSEgoKaGlzdG9yeV9pZBgBIAEoBBIQCghwYXJ0eV9pZBgCIAEoCRIOCgZhY3Rpb24YAyABKAkSEgoKY2hhbmdlZF9ieRgEIAEoCRIaCg1jaGFuZ2VfcmVhc29uGAUgASgJSACIAQESDwoHdmVyc2lvbhgGIAEoBBIzCg5wYXJ0eV9zbmFwc2hvdBgHIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5Ei4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9jaGFuZ2VfcmVhc29uIoQBChdHZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSOAoHaGlzdG9yeRgDIAMoCzInLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAQgASgNIiMKD0dldFBhcnR5UmVxdWVzdBIQCghwYXJ0eV9pZBgCIAEoCSJgChBHZXRQYXJ0eVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIqCgVwYXJ0eRgDIAEoCzIbLnNpbHZhbmEub3JkZXJib29rLnYxLlBhcnR5IqMBChFHZXRQYXJ0aWVzUmVxdWVzdBIXCgpwYXJ0eV90eXBlGAIgASgJSACIAQESGAoLYWN0aXZlX29ubHkYAyABKAhIAYgBARISCgVsaW1pdBgEIAEoDUgCiAEBEhMKBm9mZnNldBgFIAEoDUgDiAEBQg0KC19wYXJ0eV90eXBlQg4KDF9hY3RpdmVfb25seUIICgZfbGltaXRCCQoHX29mZnNldCJzChJHZXRQYXJ0aWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKB3BhcnRpZXMYAyADKAsyGy5zaWx2YW5hLm9yZGVyYm9vay52MS5QYXJ0eRINCgV0b3RhbBgEIAEoDSKKBQoFUGFydHkSEAoIcGFydHlfaWQYASABKAkSEgoKcGFydHlfbmFtZRgCIAEoCRISCgpwYXJ0eV90eXBlGAMgASgJEh0KEHVzZXJfc2VydmljZV9jaWQYBCABKAlIAIgBARIgChNvcGVyYXRvcl9jb25maWdfY2lkGAUgASgJSAGIAQESEQoJaXNfYWN0aXZlGAYgASgIEi4KCG1ldGFkYXRhGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiUKGHVzZXJfc2VydmljZV9yZXF1ZXN0X2NpZBgKIAEoCUgDiAEBEioKCXVzZXJfZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDwoHdmVyc2lvbhgMIAEoBBISCgVlbWFpbBgNIAEoCUgEiAEBEhcKCnB1YmxpY19rZXkYDiABKAlIBYgBARIYCgtpbnZpdGVfY29kZRgPIAEoCUgGiAEBEg4KBnNvdXJjZRgQIAEoCRIYCgtwYXJ0aWNpcGFudBgRIAEoCUgHiAEBQhMKEV91c2VyX3NlcnZpY2VfY2lkQhYKFF9vcGVyYXRvcl9jb25maWdfY2lkQgsKCV9tZXRhZGF0YUIbChlfdXNlcl9zZXJ2aWNlX3JlcXVlc3RfY2lkQggKBl9lbWFpbEINCgtfcHVibGljX2tleUIOCgxfaW52aXRlX2NvZGVCDgoMX3BhcnRpY2lwYW50Io0CChFMaXF1aWRpdHlQcm92aWRlchIMCgRuYW1lGAEgASgJEhAKCHBhcnR5X2lkGAIgASgJEhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQESOQoQbGFzdF9hY3RpdmVfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAYgBARIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIOCgxfZGVzY3JpcHRpb25CEwoRX2xhc3RfYWN0aXZlX3RpbWUijAEKHEdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QSGwoOYWN0aXZlX3NlY29uZHMYAiABKA1IAIgBARISCgVsaW1pdBgDIAEoDUgBiAEBEhMKBm9mZnNldBgEIAEoDUgCiAEBQhEKD19hY3RpdmVfc2Vjb25kc0IICgZfbGltaXRCCQoHX29mZnNldCKWAQodR2V0TGlxdWlkaXR5UHJvdmlkZXJzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEkQKE2xpcXVpZGl0eV9wcm92aWRlcnMYAyADKAsyJy5zaWx2YW5hLm9yZGVyYm9vay52MS5MaXF1aWRpdHlQcm92aWRlchINCgV0b3RhbBgEIAEoDSKXBAoQV2FpdGluZ0xpc3RFbnRyeRIKCgJpZBgBIAEoBBIVCghwYXJ0eV9pZBgCIAEoCUgAiAEBEioKCXVzZXJfZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDgoGc291cmNlGAQgASgJEhIKBWVtYWlsGAUgASgJSAGIAQESFwoKcHVibGljX2tleRgGIAEoCUgCiAEBEhkKEW9uYm9hcmRpbmdfc3RhdHVzGAcgASgJEg8KB3ZlcnNpb24YCCABKAQSLgoIbWV0YWRhdGEYCSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAOIAQESLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoJbXVsdGloYXNoGAwgASgJSASIAQESIAoTbXVsdGloYXNoX3NpZ25hdHVyZRgNIAEoCUgFiAEBEhgKC2ludml0ZV9jb2RlGA4gASgJSAaIAQFCCwoJX3BhcnR5X2lkQggKBl9lbWFpbEINCgtfcHVibGljX2tleUILCglfbWV0YWRhdGFCDAoKX211bHRpaGFzaEIWChRfbXVsdGloYXNoX3NpZ25hdHVyZUIOCgxfaW52aXRlX2NvZGUi2wEKGkFkZFdhaXRpbmdMaXN0RW50cnlSZXF1ZXN0EioKCXVzZXJfZGF0YRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSDgoGc291cmNlGAMgASgJEhIKBWVtYWlsGAQgASgJSACIAQESFwoKcHVibGljX2tleRgFIAEoCUgBiAEBEi4KCG1ldGFkYXRhGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgCiAEBQggKBl9lbWFpbEINCgtfcHVibGljX2tleUILCglfbWV0YWRhdGEiSwobQWRkV2FpdGluZ0xpc3RFbnRyeVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIKCgJpZBgDIAEoBCKxAwoFUm91bmQSFAoMcm91bmRfbnVtYmVyGAEgASgEEjQKJ2lzc3VhbmNlX3Blcl9mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbhgCIAEoCUgAiAEBEjYKKWlzc3VhbmNlX3Blcl91bmZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uGAMgASgJSAGIAQESGAoLY2NfdXNkX3JhdGUYBCABKAlIAogBARIkChd0cmFmZmljX2Nvc3RfdXNkX3Blcl9tYhgFIAEoCUgDiAEBEi4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQioKKF9pc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25CLAoqX2lzc3VhbmNlX3Blcl91bmZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQg4KDF9jY191c2RfcmF0ZUIaChhfdHJhZmZpY19jb3N0X3VzZF9wZXJfbWIirAUKEkxhdGVzdENvZWZmaWNpZW50cxI0Cidpc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb24YASABKAlIAIgBARI6Ci1pc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25fcm91bmQYAiABKARIAYgBARI2Cilpc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbhgDIAEoCUgCiAEBEjwKL2lzc3VhbmNlX3Blcl91bmZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uX3JvdW5kGAQgASgESAOIAQESGAoLY2NfdXNkX3JhdGUYBSABKAlIBIgBARIeChFjY191c2RfcmF0ZV9yb3VuZBgGIAEoBEgFiAEBEiQKF3RyYWZmaWNfY29zdF91c2RfcGVyX21iGAcgASgJSAaIAQESKgoddHJhZmZpY19jb3N0X3VzZF9wZXJfbWJfcm91bmQYCCABKARIB4gBAUIqCihfaXNzdWFuY2VfcGVyX2ZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQjAKLl9pc3N1YW5jZV9wZXJfZmVhdHVyZWRfYXBwX3Jld2FyZF9jb3Vwb25fcm91bmRCLAoqX2lzc3VhbmNlX3Blcl91bmZlYXR1cmVkX2FwcF9yZXdhcmRfY291cG9uQjIKMF9pc3N1YW5jZV9wZXJfdW5mZWF0dXJlZF9hcHBfcmV3YXJkX2NvdXBvbl9yb3VuZEIOCgxfY2NfdXNkX3JhdGVCFAoSX2NjX3VzZF9yYXRlX3JvdW5kQhoKGF90cmFmZmljX2Nvc3RfdXNkX3Blcl9tYkIgCh5fdHJhZmZpY19jb3N0X3VzZF9wZXJfbWJfcm91bmQiNAoUR2V0Um91bmRzRGF0YVJlcXVlc3QSEgoFbGltaXQYAiABKA1IAIgBAUIICgZfbGltaXQi8AEKFUdldFJvdW5kc0RhdGFSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSKwoGcm91bmRzGAMgAygLMhsuc2lsdmFuYS5vcmRlcmJvb2sudjEuUm91bmQSOAoGbGF0ZXN0GAQgASgLMiguc2lsdmFuYS5vcmRlcmJvb2sudjEuTGF0ZXN0Q29lZmZpY2llbnRzEhQKDHRvdGFsX3JvdW5kcxgFIAEoDRI4CgpwcmVkaWN0aW9uGAYgASgLMiQuc2lsdmFuYS5vcmRlcmJvb2sudjEuUHJlZGljdGlvbkRhdGEilQEKFUNvZWZmaWNpZW50UHJlZGljdGlvbhIUCgxyb3VuZF9udW1iZXIYASABKAQSHQoVcHJlZGljdGVkX2NvZWZmaWNpZW50GAIgASgJEhgKEGNvbmZpZGVuY2VfbG93ZXIYAyABKAkSGAoQY29uZmlkZW5jZV91cHBlchgEIAEoCRITCgtzdGVwc19haGVhZBgFIAEoDSLxAgoOUHJlZGljdGlvbkRhdGESQAoLcHJlZGljdGlvbnMYASADKAsyKy5zaWx2YW5hLm9yZGVyYm9vay52MS5Db2VmZmljaWVudFByZWRpY3Rpb24SOAoIZm9yZWNhc3QYAiABKA4yJi5zaWx2YW5hLm9yZGVyYm9vay52MS5Jc3N1YW5jZUZvcmVjYXN0EiEKFGZvcmVjYXN0X2NvZWZmaWNpZW50GAMgASgJSACIAQESGwoOZm9yZWNhc3Rfcm91bmQYBCABKARIAYgBARIXCg9hcl9jb2VmZmljaWVudHMYBSADKAESGQoMcmVzaWR1YWxfc3RkGAYgASgJSAKIAQESHQoQcHJlZGljdGlvbl9yb3VuZBgHIAEoBEgDiAEBQhcKFV9mb3JlY2FzdF9jb2VmZmljaWVudEIRCg9fZm9yZWNhc3Rfcm91bmRCDwoNX3Jlc2lkdWFsX3N0ZEITChFfcHJlZGljdGlvbl9yb3VuZCLvAgoGSW52aXRlEhMKC2ludml0ZV9jb2RlGAEgASgJEg8KB2NoYW5uZWwYAiABKAkSFAoHcmV3YXJkcxgDIAEoCUgAiAEBEi4KCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjIKBnN0YXR1cxgFIAEoDjIiLnNpbHZhbmEub3JkZXJib29rLnYxLkludml0ZVN0YXR1cxISCgpjb3VudF91c2VkGAYgASgNEhYKCW1heF9jb3VudBgHIAEoDUgCiAEBEhIKCmNyZWF0ZWRfYnkYCCABKAkSLgoKY3JlYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX3Jld2FyZHNCCwoJX21ldGFkYXRhQgwKCl9tYXhfY291bnQiJwoQR2V0SW52aXRlUmVxdWVzdBITCgtpbnZpdGVfY29kZRgBIAEoCSJgChFHZXRJbnZpdGVSZXNwb25zZRINCgVmb3VuZBgBIAEoCBIxCgZpbnZpdGUYAiABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5JbnZpdGVIAIgBAUIJCgdfaW52aXRlIksKEFVzZUludml0ZVJlcXVlc3QSEwoLaW52aXRlX2NvZGUYASABKAkSFQoIcGFydHlfaWQYAiABKAlIAIgBAUILCglfcGFydHlfaWQicwoRVXNlSW52aXRlUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEjEKBmludml0ZRgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLkludml0ZUgAiAEBQgkKB19pbnZpdGUipwIKF0NyZWF0ZUluc3RydW1lbnRSZXF1ZXN0EhUKDWluc3RydW1lbnRfaWQYAiABKAkSFwoPaW5zdHJ1bWVudF90eXBlGAMgASgJEgwKBG5hbWUYBCABKAkSDgoGc3ltYm9sGAUgASgJEhgKC2Rlc2NyaXB0aW9uGAYgASgJSACIAQESEwoGaXNzdWVyGAcgASgJSAGIAQESFQoIcmVnaXN0cnkYCCABKAlIAogBARIuCghtZXRhZGF0YRgJIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARITCgtuZXdzX3N5bWJvbBgKIAEoCUIOCgxfZGVzY3JpcHRpb25CCQoHX2lzc3VlckILCglfcmVnaXN0cnlCCwoJX21ldGFkYXRhInIKGENyZWF0ZUluc3RydW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSNAoKaW5zdHJ1bWVudBgDIAEoCzIgLnNpbHZhbmEub3JkZXJib29rLnYxLkluc3RydW1lbnQixgMKE0NyZWF0ZU1hcmtldFJlcXVlc3QSEQoJbWFya2V0X2lkGAIgASgJEjUKC21hcmtldF90eXBlGAMgASgOMiAuc2lsdmFuYS5vcmRlcmJvb2sudjEuTWFya2V0VHlwZRIcCg9iYXNlX2luc3RydW1lbnQYBCABKAlIAIgBARIdChBxdW90ZV9pbnN0cnVtZW50GAUgASgJSAGIAQESFgoObWluX29yZGVyX3NpemUYBiABKAkSGwoObWF4X29yZGVyX3NpemUYByABKAlIAogBARIRCgl0aWNrX3NpemUYCCABKAkSEQoJbWFrZXJfZmVlGAkgASgJEhEKCXRha2VyX2ZlZRgKIAEoCRIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBARIxCgtwcmljZV9mZWVkcxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBIgBAUISChBfYmFzZV9pbnN0cnVtZW50QhMKEV9xdW90ZV9pbnN0cnVtZW50QhEKD19tYXhfb3JkZXJfc2l6ZUILCglfbWV0YWRhdGFCDgoMX3ByaWNlX2ZlZWRzImYKFENyZWF0ZU1hcmtldFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIsCgZtYXJrZXQYAyABKAsyHC5zaWx2YW5hLm9yZGVyYm9vay52MS5NYXJrZXQiYAodVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QSEQoJbWFya2V0X2lkGAIgASgJEiwKC3ByaWNlX2ZlZWRzGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJwCh5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEiwKBm1hcmtldBgDIAEoCzIcLnNpbHZhbmEub3JkZXJib29rLnYxLk1hcmtldCKMAQoUUmVxdWVzdFF1b3Rlc1JlcXVlc3QSEQoJbWFya2V0X2lkGAIgASgJEhEKCWRpcmVjdGlvbhgDIAEoCRIQCghxdWFudGl0eRgEIAEoCRIQCghscF9uYW1lcxgFIAMoCRIZCgx0aW1lb3V0X3NlY3MYBiABKA1IAIgBAUIPCg1fdGltZW91dF9zZWNzIuQBChVSZXF1ZXN0UXVvdGVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEg4KBnJmcV9pZBgDIAEoCRIyCgZxdW90ZXMYBCADKAsyIi5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFRdW90ZUluZm8SNwoKcmVqZWN0aW9ucxgFIAMoCzIjLnNpbHZhbmEub3JkZXJib29rLnYxLlJmcVJlamVjdEluZm8SFQoNbHBzX3JlcXVlc3RlZBgGIAEoDRIVCg1scHNfcmVzcG9uZGVkGAcgASgNIukCCgxSZnFRdW90ZUluZm8SEAoIcXVvdGVfaWQYASABKAkSDwoHbHBfbmFtZRgCIAEoCRINCgVwcmljZRgDIAEoCRIQCghxdWFudGl0eRgEIAEoCRIWCg5xdW90ZV9xdWFudGl0eRgFIAEoCRIvCgt2YWxpZF91bnRpbBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASIQoUYWxsb2NhdGVfYmVmb3JlX3NlY3MYByABKA1IAIgBARIfChJzZXR0bGVfYmVmb3JlX3NlY3MYCCABKA1IAYgBARIZChFlc3RpbWF0ZWRfZHZwX2ZlZRgJIAEoCRIgChhlc3RpbWF0ZWRfYWxsb2NhdGlvbl9mZWUYCiABKAkSGwoTZXN0aW1hdGVkX3RvdGFsX2ZlZRgLIAEoCUIXChVfYWxsb2NhdGVfYmVmb3JlX3NlY3NCFQoTX3NldHRsZV9iZWZvcmVfc2VjcyKIAQoNUmZxUmVqZWN0SW5mbxIPCgdscF9uYW1lGAEgASgJEg4KBnJlYXNvbhgCIAEoCRIZCgxtaW5fcXVhbnRpdHkYAyABKAlIAIgBARIZCgxtYXhfcXVhbnRpdHkYBCABKAlIAYgBAUIPCg1fbWluX3F1YW50aXR5Qg8KDV9tYXhfcXVhbnRpdHkiNgoSQWNjZXB0UXVvdGVSZXF1ZXN0Eg4KBnJmcV9pZBgCIAEoCRIQCghxdW90ZV9pZBgDIAEoCSJhChNBY2NlcHRRdW90ZVJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIYCgtwcm9wb3NhbF9pZBgDIAEoCUgAiAEBQg4KDF9wcm9wb3NhbF9pZCJNCiVHZXRDb25uZWN0ZWRMaXF1aWRpdHlQcm92aWRlcnNSZXF1ZXN0EhYKCW1hcmtldF9pZBgCIAEoCUgAiAEBQgwKCl9tYXJrZXRfaWQijgEKJkdldENvbm5lY3RlZExpcXVpZGl0eVByb3ZpZGVyc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRJCChNsaXF1aWRpdHlfcHJvdmlkZXJzGAMgAygLMiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ29ubmVjdGVkTHBJbmZvIk4KD0Nvbm5lY3RlZExwSW5mbxIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhgKEGNvbm5lY3RlZF9hZ2VudHMYAyABKA0ilQQKEFJmcUF1ZGl0TG9nRW50cnkSCgoCaWQYASABKAQSDgoGcmZxX2lkGAIgASgJEjsKCmV2ZW50X3R5cGUYAyABKA4yJy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFBdWRpdEV2ZW50VHlwZRIRCgltYXJrZXRfaWQYBCABKAkSEQoJZGlyZWN0aW9uGAUgASgJEhgKEHJlcXVlc3RpbmdfcGFydHkYBiABKAkSFAoHbHBfbmFtZRgHIAEoCUgAiAEBEhgKC2xwX3BhcnR5X2lkGAggASgJSAGIAQESFQoIcXVhbnRpdHkYCSABKAlIAogBARISCgVwcmljZRgKIAEoCUgDiAEBEhsKDnF1b3RlX3F1YW50aXR5GAsgASgJSASIAQESFQoIcXVvdGVfaWQYDCABKAlIBYgBARIYCgtwcm9wb3NhbF9pZBgNIAEoCUgGiAEBEhoKDWVycm9yX21lc3NhZ2UYDiABKAlIB4gBARIuCgpjcmVhdGVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbHBfbmFtZUIOCgxfbHBfcGFydHlfaWRCCwoJX3F1YW50aXR5QggKBl9wcmljZUIRCg9fcXVvdGVfcXVhbnRpdHlCCwoJX3F1b3RlX2lkQg4KDF9wcm9wb3NhbF9pZEIQCg5fZXJyb3JfbWVzc2FnZSKOAwoVR2V0UmZxQXVkaXRMb2dSZXF1ZXN0EhMKBnJmcV9pZBgBIAEoCUgAiAEBEhYKCW1hcmtldF9pZBgCIAEoCUgBiAEBEkAKCmV2ZW50X3R5cGUYAyABKA4yJy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFBdWRpdEV2ZW50VHlwZUgCiAEBEhQKB2xwX25hbWUYBCABKAlIA4gBARIyCglmcm9tX3RpbWUYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSASIAQESMAoHdG9fdGltZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIBYgBARISCgVsaW1pdBgHIAEoDUgGiAEBEhMKBm9mZnNldBgIIAEoDUgHiAEBQgkKB19yZnFfaWRCDAoKX21hcmtldF9pZEINCgtfZXZlbnRfdHlwZUIKCghfbHBfbmFtZUIMCgpfZnJvbV90aW1lQgoKCF90b190aW1lQggKBl9saW1pdEIJCgdfb2Zmc2V0ImAKFkdldFJmcUF1ZGl0TG9nUmVzcG9uc2USNwoHZW50cmllcxgBIAMoCzImLnNpbHZhbmEub3JkZXJib29rLnYxLlJmcUF1ZGl0TG9nRW50cnkSDQoFdG90YWwYAiABKA0i/AEKDlJmcVN0cmVhbUV2ZW50Ej0KCWluaXRpYXRlZBgBIAEoCzIoLnNpbHZhbmEub3JkZXJib29rLnYxLlJmcVN0cmVhbUluaXRpYXRlZEgAEjMKBXF1b3RlGAIgASgLMiIuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxUXVvdGVJbmZvSAASOAoJcmVqZWN0aW9uGAMgASgLMiMuc2lsdmFuYS5vcmRlcmJvb2sudjEuUmZxUmVqZWN0SW5mb0gAEjMKBGRvbmUYBCABKAsyIy5zaWx2YW5hLm9yZGVyYm9vay52MS5SZnFTdHJlYW1Eb25lSABCBwoFZXZlbnQiOwoSUmZxU3RyZWFtSW5pdGlhdGVkEg4KBnJmcV9pZBgBIAEoCRIVCg1scHNfcmVxdWVzdGVkGAIgASgNIj0KDVJmcVN0cmVhbURvbmUSFQoNbHBzX3JlcXVlc3RlZBgBIAEoDRIVCg1scHNfcmVzcG9uZGVkGAIgASgNIlgKHUVzdGltYXRlU2V0dGxlbWVudEZlZXNSZXF1ZXN0EhEKCW1hcmtldF9pZBgBIAEoCRIVCg1iYXNlX3F1YW50aXR5GAIgASgJEg0KBXByaWNlGAMgASgJIpwBCh5Fc3RpbWF0ZVNldHRsZW1lbnRGZWVzUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEhkKEWVzdGltYXRlZF9kdnBfZmVlGAMgASgJEiAKGGVzdGltYXRlZF9hbGxvY2F0aW9uX2ZlZRgEIAEoCRIbChNlc3RpbWF0ZWRfdG90YWxfZmVlGAUgASgJIjUKHUdldFVzZXJTZXR0bGVtZW50U3RhdHNSZXF1ZXN0EhQKDHJvdW5kX251bWJlchgBIAEoDSJ4Ch5HZXRVc2VyU2V0dGxlbWVudFN0YXRzUmVzcG9uc2USFAoMcm91bmRfbnVtYmVyGAEgASgNEhAKCHBhcnR5X2lkGAIgASgJEhgKEGR2cF9zZXR0bGVfY291bnQYAyABKA0SFAoMZmVlX3JlaW1iX2NjGAQgASgJKlEKCU9yZGVyVHlwZRIaChZPUkRFUl9UWVBFX1VOU1BFQ0lGSUVEEAASEgoOT1JERVJfVFlQRV9CSUQQARIUChBPUkRFUl9UWVBFX09GRkVSEAIqrQEKC09yZGVyU3RhdHVzEhwKGE9SREVSX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE09SREVSX1NUQVRVU19BQ1RJVkUQARIYChRPUkRFUl9TVEFUVVNfUEFSVElBTBACEhcKE09SREVSX1NUQVRVU19GSUxMRUQQAxIaChZPUkRFUl9TVEFUVVNfQ0FOQ0VMTEVEEAQSGAoUT1JERVJfU1RBVFVTX0VYUElSRUQQBSqIAQoLVGltZUluRm9yY2USHQoZVElNRV9JTl9GT1JDRV9VTlNQRUNJRklFRBAAEhUKEVRJTUVfSU5fRk9SQ0VfR1RDEAESFQoRVElNRV9JTl9GT1JDRV9JT0MQAhIVChFUSU1FX0lOX0ZPUkNFX0ZPSxADEhUKEVRJTUVfSU5fRk9SQ0VfR1REEAQqsgEKEFNldHRsZW1lbnRTdGF0dXMSIQodU0VUVExFTUVOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIdChlTRVRUTEVNRU5UX1NUQVRVU19QRU5ESU5HEAESHQoZU0VUVExFTUVOVF9TVEFUVVNfU0VUVExFRBACEh8KG1NFVFRMRU1FTlRfU1RBVFVTX0NBTkNFTExFRBADEhwKGFNFVFRMRU1FTlRfU1RBVFVTX0ZBSUxFRBAEKnYKCk1hcmtldFR5cGUSGwoXTUFSS0VUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNNQVJLRVRfVFlQRV9HRU5FUkFMEAESHQoZTUFSS0VUX1RZUEVfSU5TVElUVVRJT05BTBACEhMKD01BUktFVF9UWVBFX09UQxADKooBChBJc3N1YW5jZUZvcmVjYXN0EiEKHUlTU1VBTkNFX0ZPUkVDQVNUX1VOU1BFQ0lGSUVEEAASGQoVSVNTVUFOQ0VfRk9SRUNBU1RfTE9XEAESHAoYSVNTVUFOQ0VfRk9SRUNBU1RfTUVESVVNEAISGgoWSVNTVUFOQ0VfRk9SRUNBU1RfSElHSBADKpYBCgxJbnZpdGVTdGF0dXMSHQoZSU5WSVRFX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE0lOVklURV9TVEFUVVNfVkFMSUQQARIZChVJTlZJVEVfU1RBVFVTX0VYUElSRUQQAhIWChJJTlZJVEVfU1RBVFVTX1VTRUQQAxIbChdJTlZJVEVfU1RBVFVTX0NBTkNFTExFRBAEKt4BChFSZnFBdWRpdEV2ZW50VHlwZRIkCiBSRlFfQVVESVRfRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEiAKHFJGUV9BVURJVF9FVkVOVF9UWVBFX1JFUVVFU1QQARIeChpSRlFfQVVESVRfRVZFTlRfVFlQRV9RVU9URRACEh8KG1JGUV9BVURJVF9FVkVOVF9UWVBFX1JFSkVDVBADEh8KG1JGUV9BVURJVF9FVkVOVF9UWVBFX0FDQ0VQVBAEEh8KG1JGUV9BVURJVF9FVkVOVF9UWVBFX0VYUElSRRAFMtAeChBPcmRlcmJvb2tTZXJ2aWNlElwKCUdldE9yZGVycxImLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyc1JlcXVlc3QaJy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRPcmRlcnNSZXNwb25zZRJ0ChFHZXRPcmRlcmJvb2tEZXB0aBIuLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVxdWVzdBovLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVyYm9va0RlcHRoUmVzcG9uc2USgwEKFkdldFNldHRsZW1lbnRQcm9wb3NhbHMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRTZXR0bGVtZW50UHJvcG9zYWxzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbHNSZXNwb25zZRKAAQoVR2V0U2V0dGxlbWVudFByb3Bvc2FsEjIuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsUmVxdWVzdBozLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEmsKDkdldEluc3RydW1lbnRzEisuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXF1ZXN0Giwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW5zdHJ1bWVudHNSZXNwb25zZRJfCgpHZXRNYXJrZXRzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0TWFya2V0c1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXRzUmVzcG9uc2USbgoPR2V0T3JkZXJIaXN0b3J5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0T3JkZXJIaXN0b3J5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE9yZGVySGlzdG9yeVJlc3BvbnNlEmgKDUdldE1hcmtldERhdGESKi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRNYXJrZXREYXRhUmVxdWVzdBorLnNpbHZhbmEub3JkZXJib29rLnYxLkdldE1hcmtldERhdGFSZXNwb25zZRJrCg5HZXRTZXR0bGVtZW50cxIrLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVxdWVzdBosLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFNldHRsZW1lbnRzUmVzcG9uc2USgwEKFkVzdGltYXRlU2V0dGxlbWVudEZlZXMSMy5zaWx2YW5hLm9yZGVyYm9vay52MS5Fc3RpbWF0ZVNldHRsZW1lbnRGZWVzUmVxdWVzdBo0LnNpbHZhbmEub3JkZXJib29rLnYxLkVzdGltYXRlU2V0dGxlbWVudEZlZXNSZXNwb25zZRJiCgtTdWJtaXRPcmRlchIoLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlN1Ym1pdE9yZGVyUmVzcG9uc2USYgoLQ2FuY2VsT3JkZXISKC5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlcXVlc3QaKS5zaWx2YW5hLm9yZGVyYm9vay52MS5DYW5jZWxPcmRlclJlc3BvbnNlElkKCEdldFBhcnR5EiUuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydHlSZXNwb25zZRJfCgpHZXRQYXJ0aWVzEicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0UGFydGllc1JlcXVlc3QaKC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0aWVzUmVzcG9uc2USgAEKFUdldExpcXVpZGl0eVByb3ZpZGVycxIyLnNpbHZhbmEub3JkZXJib29rLnYxLkdldExpcXVpZGl0eVByb3ZpZGVyc1JlcXVlc3QaMy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRMaXF1aWRpdHlQcm92aWRlcnNSZXNwb25zZRKbAQoeR2V0Q29ubmVjdGVkTGlxdWlkaXR5UHJvdmlkZXJzEjsuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0Q29ubmVjdGVkTGlxdWlkaXR5UHJvdmlkZXJzUmVxdWVzdBo8LnNpbHZhbmEub3JkZXJib29rLnYxLkdldENvbm5lY3RlZExpcXVpZGl0eVByb3ZpZGVyc1Jlc3BvbnNlEmgKDVJlcXVlc3RRdW90ZXMSKi5zaWx2YW5hLm9yZGVyYm9vay52MS5SZXF1ZXN0UXVvdGVzUmVxdWVzdBorLnNpbHZhbmEub3JkZXJib29rLnYxLlJlcXVlc3RRdW90ZXNSZXNwb25zZRJiCgtBY2NlcHRRdW90ZRIoLnNpbHZhbmEub3JkZXJib29rLnYxLkFjY2VwdFF1b3RlUmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLkFjY2VwdFF1b3RlUmVzcG9uc2USawoOR2V0UmZxQXVkaXRMb2cSKy5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSZnFBdWRpdExvZ1JlcXVlc3QaLC5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSZnFBdWRpdExvZ1Jlc3BvbnNlEnoKE0FkZFdhaXRpbmdMaXN0RW50cnkSMC5zaWx2YW5hLm9yZGVyYm9vay52MS5BZGRXYWl0aW5nTGlzdEVudHJ5UmVxdWVzdBoxLnNpbHZhbmEub3JkZXJib29rLnYxLkFkZFdhaXRpbmdMaXN0RW50cnlSZXNwb25zZRJcCglHZXRJbnZpdGUSJi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRJbnZpdGVSZXF1ZXN0Gicuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0SW52aXRlUmVzcG9uc2USXAoJVXNlSW52aXRlEiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXNlSW52aXRlUmVxdWVzdBonLnNpbHZhbmEub3JkZXJib29rLnYxLlVzZUludml0ZVJlc3BvbnNlEmgKDUdldFJvdW5kc0RhdGESKi5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRSb3VuZHNEYXRhUmVxdWVzdBorLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFJvdW5kc0RhdGFSZXNwb25zZRKDAQoWR2V0VXNlclNldHRsZW1lbnRTdGF0cxIzLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFVzZXJTZXR0bGVtZW50U3RhdHNSZXF1ZXN0GjQuc2lsdmFuYS5vcmRlcmJvb2sudjEuR2V0VXNlclNldHRsZW1lbnRTdGF0c1Jlc3BvbnNlEmIKC0NyZWF0ZVBhcnR5Eiguc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXF1ZXN0Gikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlUGFydHlSZXNwb25zZRJiCgtVcGRhdGVQYXJ0eRIoLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZVBhcnR5UmVxdWVzdBopLnNpbHZhbmEub3JkZXJib29rLnYxLlVwZGF0ZVBhcnR5UmVzcG9uc2USbgoPRGVhY3RpdmF0ZVBhcnR5Eiwuc2lsdmFuYS5vcmRlcmJvb2sudjEuRGVhY3RpdmF0ZVBhcnR5UmVxdWVzdBotLnNpbHZhbmEub3JkZXJib29rLnYxLkRlYWN0aXZhdGVQYXJ0eVJlc3BvbnNlEm4KD0dldFBhcnR5SGlzdG9yeRIsLnNpbHZhbmEub3JkZXJib29rLnYxLkdldFBhcnR5SGlzdG9yeVJlcXVlc3QaLS5zaWx2YW5hLm9yZGVyYm9vay52MS5HZXRQYXJ0eUhpc3RvcnlSZXNwb25zZRJxChBDcmVhdGVJbnN0cnVtZW50Ei0uc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlSW5zdHJ1bWVudFJlcXVlc3QaLi5zaWx2YW5hLm9yZGVyYm9vay52MS5DcmVhdGVJbnN0cnVtZW50UmVzcG9uc2USZQoMQ3JlYXRlTWFya2V0Eikuc2lsdmFuYS5vcmRlcmJvb2sudjEuQ3JlYXRlTWFya2V0UmVxdWVzdBoqLnNpbHZhbmEub3JkZXJib29rLnYxLkNyZWF0ZU1hcmtldFJlc3BvbnNlEoMBChZVcGRhdGVNYXJrZXRQcmljZUZlZWRzEjMuc2lsdmFuYS5vcmRlcmJvb2sudjEuVXBkYXRlTWFya2V0UHJpY2VGZWVkc1JlcXVlc3QaNC5zaWx2YW5hLm9yZGVyYm9vay52MS5VcGRhdGVNYXJrZXRQcmljZUZlZWRzUmVzcG9uc2USbgoSU3Vic2NyaWJlT3JkZXJib29rEi8uc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlT3JkZXJib29rUmVxdWVzdBolLnNpbHZhbmEub3JkZXJib29rLnYxLk9yZGVyYm9va1VwZGF0ZTABEmQKD1N1YnNjcmliZU9yZGVycxIsLnNpbHZhbmEub3JkZXJib29rLnYxLlN1YnNjcmliZU9yZGVyc1JlcXVlc3QaIS5zaWx2YW5hLm9yZGVyYm9vay52MS5PcmRlclVwZGF0ZTABEnMKFFN1YnNjcmliZVNldHRsZW1lbnRzEjEuc2lsdmFuYS5vcmRlcmJvb2sudjEuU3Vic2NyaWJlU2V0dGxlbWVudHNSZXF1ZXN0GiYuc2lsdmFuYS5vcmRlcmJvb2sudjEuU2V0dGxlbWVudFVwZGF0ZTABEmkKE1N0cmVhbVJlcXVlc3RRdW90ZXMSKi5zaWx2YW5hLm9yZGVyYm9vay52MS5SZXF1ZXN0UXVvdGVzUmVxdWVzdBokLnNpbHZhbmEub3JkZXJib29rLnYxLlJmcVN0cmVhbUV2ZW50MAFCNFoyZ2l0aHViLmNvbS9TaWx2YW5hT25lL2NhbnRvbi1hZ2VudC9wcm90bztvcmRlcmJvb2tiBnByb3RvMw", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
18
  * Instrument message
@@ -43,32 +43,32 @@ export type Instrument = Message<"silvana.orderbook.v1.Instrument"> & {
43
43
  /**
44
44
  * @generated from field: optional string description = 5;
45
45
  */
46
- description?: string;
46
+ description?: string | undefined;
47
47
 
48
48
  /**
49
49
  * @generated from field: optional string issuer = 6;
50
50
  */
51
- issuer?: string;
51
+ issuer?: string | undefined;
52
52
 
53
53
  /**
54
54
  * @generated from field: optional string registry = 7;
55
55
  */
56
- registry?: string;
56
+ registry?: string | undefined;
57
57
 
58
58
  /**
59
59
  * @generated from field: optional google.protobuf.Struct metadata = 8;
60
60
  */
61
- metadata?: JsonObject;
61
+ metadata?: JsonObject | undefined;
62
62
 
63
63
  /**
64
64
  * @generated from field: google.protobuf.Timestamp created_at = 9;
65
65
  */
66
- createdAt?: Timestamp;
66
+ createdAt?: Timestamp | undefined;
67
67
 
68
68
  /**
69
69
  * @generated from field: google.protobuf.Timestamp updated_at = 10;
70
70
  */
71
- updatedAt?: Timestamp;
71
+ updatedAt?: Timestamp | undefined;
72
72
 
73
73
  /**
74
74
  * Symbol for news API search (e.g., 'BTC' for WBTC)
@@ -135,7 +135,7 @@ export type Market = Message<"silvana.orderbook.v1.Market"> & {
135
135
  *
136
136
  * @generated from field: optional string max_order_size = 8;
137
137
  */
138
- maxOrderSize?: string;
138
+ maxOrderSize?: string | undefined;
139
139
 
140
140
  /**
141
141
  * DECIMAL(38,10) as string
@@ -161,46 +161,46 @@ export type Market = Message<"silvana.orderbook.v1.Market"> & {
161
161
  /**
162
162
  * @generated from field: optional google.protobuf.Struct metadata = 12;
163
163
  */
164
- metadata?: JsonObject;
164
+ metadata?: JsonObject | undefined;
165
165
 
166
166
  /**
167
167
  * @generated from field: google.protobuf.Timestamp created_at = 13;
168
168
  */
169
- createdAt?: Timestamp;
169
+ createdAt?: Timestamp | undefined;
170
170
 
171
171
  /**
172
172
  * @generated from field: google.protobuf.Timestamp updated_at = 14;
173
173
  */
174
- updatedAt?: Timestamp;
174
+ updatedAt?: Timestamp | undefined;
175
175
 
176
176
  /**
177
177
  * Price feed configurations
178
178
  *
179
179
  * @generated from field: optional google.protobuf.Struct price_feeds = 15;
180
180
  */
181
- priceFeeds?: JsonObject;
181
+ priceFeeds?: JsonObject | undefined;
182
182
 
183
183
  /**
184
184
  * Optional price information (populated if available)
185
185
  *
186
186
  * @generated from field: optional double current_price = 16;
187
187
  */
188
- currentPrice?: number;
188
+ currentPrice?: number | undefined;
189
189
 
190
190
  /**
191
191
  * @generated from field: optional double change_24h = 17;
192
192
  */
193
- change24h?: number;
193
+ change24h?: number | undefined;
194
194
 
195
195
  /**
196
196
  * @generated from field: optional double volume_24h = 18;
197
197
  */
198
- volume24h?: number;
198
+ volume24h?: number | undefined;
199
199
 
200
200
  /**
201
201
  * @generated from field: optional google.protobuf.Timestamp price_updated_at = 19;
202
202
  */
203
- priceUpdatedAt?: Timestamp;
203
+ priceUpdatedAt?: Timestamp | undefined;
204
204
  };
205
205
 
206
206
  /**
@@ -243,7 +243,7 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
243
243
  /**
244
244
  * @generated from field: optional string trader_order_ref = 5;
245
245
  */
246
- traderOrderRef?: string;
246
+ traderOrderRef?: string | undefined;
247
247
 
248
248
  /**
249
249
  * @generated from field: string base_instrument = 6;
@@ -303,7 +303,7 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
303
303
  /**
304
304
  * @generated from field: optional google.protobuf.Timestamp expires_at = 15;
305
305
  */
306
- expiresAt?: Timestamp;
306
+ expiresAt?: Timestamp | undefined;
307
307
 
308
308
  /**
309
309
  * Optimistic locking
@@ -315,39 +315,39 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
315
315
  /**
316
316
  * @generated from field: optional google.protobuf.Struct credentials = 17;
317
317
  */
318
- credentials?: JsonObject;
318
+ credentials?: JsonObject | undefined;
319
319
 
320
320
  /**
321
321
  * @generated from field: optional google.protobuf.Struct requirements = 18;
322
322
  */
323
- requirements?: JsonObject;
323
+ requirements?: JsonObject | undefined;
324
324
 
325
325
  /**
326
326
  * @generated from field: optional google.protobuf.Struct metadata = 19;
327
327
  */
328
- metadata?: JsonObject;
328
+ metadata?: JsonObject | undefined;
329
329
 
330
330
  /**
331
331
  * @generated from field: google.protobuf.Timestamp created_at = 20;
332
332
  */
333
- createdAt?: Timestamp;
333
+ createdAt?: Timestamp | undefined;
334
334
 
335
335
  /**
336
336
  * @generated from field: google.protobuf.Timestamp updated_at = 21;
337
337
  */
338
- updatedAt?: Timestamp;
338
+ updatedAt?: Timestamp | undefined;
339
339
 
340
340
  /**
341
341
  * @generated from field: optional google.protobuf.Timestamp cancelled_at = 22;
342
342
  */
343
- cancelledAt?: Timestamp;
343
+ cancelledAt?: Timestamp | undefined;
344
344
 
345
345
  /**
346
346
  * Base64-encoded Ed25519 signature for order authentication
347
347
  *
348
348
  * @generated from field: optional string signature = 23;
349
349
  */
350
- signature?: string;
350
+ signature?: string | undefined;
351
351
 
352
352
  /**
353
353
  * Original signed order data (binary)
@@ -362,6 +362,22 @@ export type Order = Message<"silvana.orderbook.v1.Order"> & {
362
362
  * @generated from field: uint64 nonce = 25;
363
363
  */
364
364
  nonce: bigint;
365
+
366
+ /**
367
+ * Liquidity-provider matching constraints (RFQ-like behavior for terminal orders)
368
+ *
369
+ * If true, only match counterparties that are currently-connected LPs (server default: true)
370
+ *
371
+ * @generated from field: bool only_liquidity_providers = 26;
372
+ */
373
+ onlyLiquidityProviders: boolean;
374
+
375
+ /**
376
+ * If set (with only_liquidity_providers), restrict to parties of this LP name (null = any connected LP)
377
+ *
378
+ * @generated from field: optional string liquidity_provider_name = 27;
379
+ */
380
+ liquidityProviderName?: string | undefined;
365
381
  };
366
382
 
367
383
  /**
@@ -399,7 +415,7 @@ export type OrderbookLevel = Message<"silvana.orderbook.v1.OrderbookLevel"> & {
399
415
  /**
400
416
  * @generated from field: google.protobuf.Timestamp first_order_time = 4;
401
417
  */
402
- firstOrderTime?: Timestamp;
418
+ firstOrderTime?: Timestamp | undefined;
403
419
  };
404
420
 
405
421
  /**
@@ -442,7 +458,7 @@ export type OrderbookDepth = Message<"silvana.orderbook.v1.OrderbookDepth"> & {
442
458
  /**
443
459
  * @generated from field: google.protobuf.Timestamp snapshot_time = 5;
444
460
  */
445
- snapshotTime?: Timestamp;
461
+ snapshotTime?: Timestamp | undefined;
446
462
  };
447
463
 
448
464
  /**
@@ -549,34 +565,42 @@ export type SettlementProposal = Message<"silvana.orderbook.v1.SettlementProposa
549
565
  /**
550
566
  * @generated from field: optional string error_message = 15;
551
567
  */
552
- errorMessage?: string;
568
+ errorMessage?: string | undefined;
553
569
 
554
570
  /**
555
571
  * @generated from field: google.protobuf.Timestamp created_at = 16;
556
572
  */
557
- createdAt?: Timestamp;
573
+ createdAt?: Timestamp | undefined;
558
574
 
559
575
  /**
560
576
  * @generated from field: optional google.protobuf.Timestamp settled_at = 17;
561
577
  */
562
- settledAt?: Timestamp;
578
+ settledAt?: Timestamp | undefined;
563
579
 
564
580
  /**
565
581
  * @generated from field: optional google.protobuf.Timestamp cancelled_at = 18;
566
582
  */
567
- cancelledAt?: Timestamp;
583
+ cancelledAt?: Timestamp | undefined;
568
584
 
569
585
  /**
570
586
  * @generated from field: optional google.protobuf.Timestamp failed_at = 19;
571
587
  */
572
- failedAt?: Timestamp;
588
+ failedAt?: Timestamp | undefined;
573
589
 
574
590
  /**
575
591
  * Matched order IDs (always populated - links proposal to bid/offer orders)
576
592
  *
577
593
  * @generated from field: silvana.orderbook.v1.OrderMatch order_match = 20;
578
594
  */
579
- orderMatch?: OrderMatch;
595
+ orderMatch?: OrderMatch | undefined;
596
+
597
+ /**
598
+ * Who creates the DvpProposal: the LP if one party is an LP, else the
599
+ * more-recently-active user. Null/empty ⇒ buyer proposes (backward compat).
600
+ *
601
+ * @generated from field: optional string dvp_proposer_party = 21;
602
+ */
603
+ dvpProposerParty?: string | undefined;
580
604
  };
581
605
 
582
606
  /**
@@ -626,7 +650,7 @@ export type OrderMatch = Message<"silvana.orderbook.v1.OrderMatch"> & {
626
650
  /**
627
651
  * @generated from field: google.protobuf.Timestamp created_at = 6;
628
652
  */
629
- createdAt?: Timestamp;
653
+ createdAt?: Timestamp | undefined;
630
654
  };
631
655
 
632
656
  /**
@@ -737,19 +761,19 @@ export type Settlement = Message<"silvana.orderbook.v1.Settlement"> & {
737
761
  *
738
762
  * @generated from field: optional string settled_dvp_cid = 15;
739
763
  */
740
- settledDvpCid?: string;
764
+ settledDvpCid?: string | undefined;
741
765
 
742
766
  /**
743
767
  * Canton update ID
744
768
  *
745
769
  * @generated from field: optional string settlement_update_id = 16;
746
770
  */
747
- settlementUpdateId?: string;
771
+ settlementUpdateId?: string | undefined;
748
772
 
749
773
  /**
750
774
  * @generated from field: google.protobuf.Timestamp settled_at = 17;
751
775
  */
752
- settledAt?: Timestamp;
776
+ settledAt?: Timestamp | undefined;
753
777
  };
754
778
 
755
779
  /**
@@ -780,21 +804,21 @@ export type MarketData = Message<"silvana.orderbook.v1.MarketData"> & {
780
804
  *
781
805
  * @generated from field: optional string best_bid = 3;
782
806
  */
783
- bestBid?: string;
807
+ bestBid?: string | undefined;
784
808
 
785
809
  /**
786
810
  * DECIMAL(38,10) as string
787
811
  *
788
812
  * @generated from field: optional string best_offer = 4;
789
813
  */
790
- bestOffer?: string;
814
+ bestOffer?: string | undefined;
791
815
 
792
816
  /**
793
817
  * DECIMAL(38,10) as string
794
818
  *
795
819
  * @generated from field: optional string last_price = 5;
796
820
  */
797
- lastPrice?: string;
821
+ lastPrice?: string | undefined;
798
822
 
799
823
  /**
800
824
  * DECIMAL(38,10) as string
@@ -816,7 +840,7 @@ export type MarketData = Message<"silvana.orderbook.v1.MarketData"> & {
816
840
  /**
817
841
  * @generated from field: google.protobuf.Timestamp updated_at = 9;
818
842
  */
819
- updatedAt?: Timestamp;
843
+ updatedAt?: Timestamp | undefined;
820
844
  };
821
845
 
822
846
  /**
@@ -837,27 +861,27 @@ export type GetOrdersRequest = Message<"silvana.orderbook.v1.GetOrdersRequest">
837
861
  *
838
862
  * @generated from field: optional string market_id = 2;
839
863
  */
840
- marketId?: string;
864
+ marketId?: string | undefined;
841
865
 
842
866
  /**
843
867
  * @generated from field: optional silvana.orderbook.v1.OrderStatus status = 3;
844
868
  */
845
- status?: OrderStatus;
869
+ status?: OrderStatus | undefined;
846
870
 
847
871
  /**
848
872
  * @generated from field: optional silvana.orderbook.v1.OrderType order_type = 4;
849
873
  */
850
- orderType?: OrderType;
874
+ orderType?: OrderType | undefined;
851
875
 
852
876
  /**
853
877
  * @generated from field: optional uint32 limit = 5;
854
878
  */
855
- limit?: number;
879
+ limit?: number | undefined;
856
880
 
857
881
  /**
858
882
  * @generated from field: optional uint32 offset = 6;
859
883
  */
860
- offset?: number;
884
+ offset?: number | undefined;
861
885
 
862
886
  /**
863
887
  * Liquidity provider filtering (returns orders from LP parties)
@@ -866,7 +890,7 @@ export type GetOrdersRequest = Message<"silvana.orderbook.v1.GetOrdersRequest">
866
890
  *
867
891
  * @generated from field: optional uint32 liquidity_provider_active_seconds = 11;
868
892
  */
869
- liquidityProviderActiveSeconds?: number;
893
+ liquidityProviderActiveSeconds?: number | undefined;
870
894
 
871
895
  /**
872
896
  * Filter by specific LP names
@@ -933,7 +957,7 @@ export type GetOrderbookDepthRequest = Message<"silvana.orderbook.v1.GetOrderboo
933
957
  *
934
958
  * @generated from field: optional uint32 depth = 3;
935
959
  */
936
- depth?: number;
960
+ depth?: number | undefined;
937
961
  };
938
962
 
939
963
  /**
@@ -960,7 +984,7 @@ export type GetOrderbookDepthResponse = Message<"silvana.orderbook.v1.GetOrderbo
960
984
  /**
961
985
  * @generated from field: silvana.orderbook.v1.OrderbookDepth orderbook = 3;
962
986
  */
963
- orderbook?: OrderbookDepth;
987
+ orderbook?: OrderbookDepth | undefined;
964
988
  };
965
989
 
966
990
  /**
@@ -981,22 +1005,22 @@ export type GetSettlementProposalsRequest = Message<"silvana.orderbook.v1.GetSet
981
1005
  *
982
1006
  * @generated from field: optional string market_id = 2;
983
1007
  */
984
- marketId?: string;
1008
+ marketId?: string | undefined;
985
1009
 
986
1010
  /**
987
1011
  * @generated from field: optional silvana.orderbook.v1.SettlementStatus status = 3;
988
1012
  */
989
- status?: SettlementStatus;
1013
+ status?: SettlementStatus | undefined;
990
1014
 
991
1015
  /**
992
1016
  * @generated from field: optional uint32 limit = 4;
993
1017
  */
994
- limit?: number;
1018
+ limit?: number | undefined;
995
1019
 
996
1020
  /**
997
1021
  * @generated from field: optional uint32 offset = 5;
998
1022
  */
999
- offset?: number;
1023
+ offset?: number | undefined;
1000
1024
  };
1001
1025
 
1002
1026
  /**
@@ -1078,7 +1102,7 @@ export type GetSettlementProposalResponse = Message<"silvana.orderbook.v1.GetSet
1078
1102
  /**
1079
1103
  * @generated from field: optional silvana.orderbook.v1.SettlementProposal proposal = 3;
1080
1104
  */
1081
- proposal?: SettlementProposal;
1105
+ proposal?: SettlementProposal | undefined;
1082
1106
  };
1083
1107
 
1084
1108
  /**
@@ -1099,17 +1123,17 @@ export type GetInstrumentsRequest = Message<"silvana.orderbook.v1.GetInstruments
1099
1123
  *
1100
1124
  * @generated from field: optional string instrument_type = 2;
1101
1125
  */
1102
- instrumentType?: string;
1126
+ instrumentType?: string | undefined;
1103
1127
 
1104
1128
  /**
1105
1129
  * @generated from field: optional uint32 limit = 3;
1106
1130
  */
1107
- limit?: number;
1131
+ limit?: number | undefined;
1108
1132
 
1109
1133
  /**
1110
1134
  * @generated from field: optional uint32 offset = 4;
1111
1135
  */
1112
- offset?: number;
1136
+ offset?: number | undefined;
1113
1137
  };
1114
1138
 
1115
1139
  /**
@@ -1162,32 +1186,32 @@ export type GetMarketsRequest = Message<"silvana.orderbook.v1.GetMarketsRequest"
1162
1186
  *
1163
1187
  * @generated from field: optional silvana.orderbook.v1.MarketType market_type = 2;
1164
1188
  */
1165
- marketType?: MarketType;
1189
+ marketType?: MarketType | undefined;
1166
1190
 
1167
1191
  /**
1168
1192
  * @generated from field: optional string base_instrument = 3;
1169
1193
  */
1170
- baseInstrument?: string;
1194
+ baseInstrument?: string | undefined;
1171
1195
 
1172
1196
  /**
1173
1197
  * @generated from field: optional string quote_instrument = 4;
1174
1198
  */
1175
- quoteInstrument?: string;
1199
+ quoteInstrument?: string | undefined;
1176
1200
 
1177
1201
  /**
1178
1202
  * @generated from field: optional bool active_only = 5;
1179
1203
  */
1180
- activeOnly?: boolean;
1204
+ activeOnly?: boolean | undefined;
1181
1205
 
1182
1206
  /**
1183
1207
  * @generated from field: optional uint32 limit = 6;
1184
1208
  */
1185
- limit?: number;
1209
+ limit?: number | undefined;
1186
1210
 
1187
1211
  /**
1188
1212
  * @generated from field: optional uint32 offset = 7;
1189
1213
  */
1190
- offset?: number;
1214
+ offset?: number | undefined;
1191
1215
  };
1192
1216
 
1193
1217
  /**
@@ -1240,27 +1264,27 @@ export type GetOrderHistoryRequest = Message<"silvana.orderbook.v1.GetOrderHisto
1240
1264
  *
1241
1265
  * @generated from field: optional string market_id = 2;
1242
1266
  */
1243
- marketId?: string;
1267
+ marketId?: string | undefined;
1244
1268
 
1245
1269
  /**
1246
1270
  * @generated from field: optional google.protobuf.Timestamp from_time = 3;
1247
1271
  */
1248
- fromTime?: Timestamp;
1272
+ fromTime?: Timestamp | undefined;
1249
1273
 
1250
1274
  /**
1251
1275
  * @generated from field: optional google.protobuf.Timestamp to_time = 4;
1252
1276
  */
1253
- toTime?: Timestamp;
1277
+ toTime?: Timestamp | undefined;
1254
1278
 
1255
1279
  /**
1256
1280
  * @generated from field: optional uint32 limit = 5;
1257
1281
  */
1258
- limit?: number;
1282
+ limit?: number | undefined;
1259
1283
 
1260
1284
  /**
1261
1285
  * @generated from field: optional uint32 offset = 6;
1262
1286
  */
1263
- offset?: number;
1287
+ offset?: number | undefined;
1264
1288
  };
1265
1289
 
1266
1290
  /**
@@ -1363,27 +1387,27 @@ export type GetSettlementsRequest = Message<"silvana.orderbook.v1.GetSettlements
1363
1387
  *
1364
1388
  * @generated from field: optional string market_id = 2;
1365
1389
  */
1366
- marketId?: string;
1390
+ marketId?: string | undefined;
1367
1391
 
1368
1392
  /**
1369
1393
  * @generated from field: optional google.protobuf.Timestamp from_time = 3;
1370
1394
  */
1371
- fromTime?: Timestamp;
1395
+ fromTime?: Timestamp | undefined;
1372
1396
 
1373
1397
  /**
1374
1398
  * @generated from field: optional google.protobuf.Timestamp to_time = 4;
1375
1399
  */
1376
- toTime?: Timestamp;
1400
+ toTime?: Timestamp | undefined;
1377
1401
 
1378
1402
  /**
1379
1403
  * @generated from field: optional uint32 limit = 5;
1380
1404
  */
1381
- limit?: number;
1405
+ limit?: number | undefined;
1382
1406
 
1383
1407
  /**
1384
1408
  * @generated from field: optional uint32 offset = 6;
1385
1409
  */
1386
- offset?: number;
1410
+ offset?: number | undefined;
1387
1411
  };
1388
1412
 
1389
1413
  /**
@@ -1443,7 +1467,7 @@ export type SubscribeOrderbookRequest = Message<"silvana.orderbook.v1.SubscribeO
1443
1467
  *
1444
1468
  * @generated from field: optional uint32 depth = 3;
1445
1469
  */
1446
- depth?: number;
1470
+ depth?: number | undefined;
1447
1471
  };
1448
1472
 
1449
1473
  /**
@@ -1482,7 +1506,7 @@ export type OrderbookUpdate = Message<"silvana.orderbook.v1.OrderbookUpdate"> &
1482
1506
  /**
1483
1507
  * @generated from field: google.protobuf.Timestamp timestamp = 5;
1484
1508
  */
1485
- timestamp?: Timestamp;
1509
+ timestamp?: Timestamp | undefined;
1486
1510
 
1487
1511
  /**
1488
1512
  * For ordering updates
@@ -1536,7 +1560,7 @@ export type SubscribeOrdersRequest = Message<"silvana.orderbook.v1.SubscribeOrde
1536
1560
  *
1537
1561
  * @generated from field: optional string market_id = 2;
1538
1562
  */
1539
- marketId?: string;
1563
+ marketId?: string | undefined;
1540
1564
  };
1541
1565
 
1542
1566
  /**
@@ -1560,19 +1584,19 @@ export type OrderUpdate = Message<"silvana.orderbook.v1.OrderUpdate"> & {
1560
1584
  /**
1561
1585
  * @generated from field: silvana.orderbook.v1.Order order = 2;
1562
1586
  */
1563
- order?: Order;
1587
+ order?: Order | undefined;
1564
1588
 
1565
1589
  /**
1566
1590
  * For fill events
1567
1591
  *
1568
1592
  * @generated from field: optional silvana.orderbook.v1.OrderMatch match = 3;
1569
1593
  */
1570
- match?: OrderMatch;
1594
+ match?: OrderMatch | undefined;
1571
1595
 
1572
1596
  /**
1573
1597
  * @generated from field: google.protobuf.Timestamp timestamp = 4;
1574
1598
  */
1575
- timestamp?: Timestamp;
1599
+ timestamp?: Timestamp | undefined;
1576
1600
  };
1577
1601
 
1578
1602
  /**
@@ -1639,7 +1663,7 @@ export type SubscribeSettlementsRequest = Message<"silvana.orderbook.v1.Subscrib
1639
1663
  *
1640
1664
  * @generated from field: optional string market_id = 2;
1641
1665
  */
1642
- marketId?: string;
1666
+ marketId?: string | undefined;
1643
1667
  };
1644
1668
 
1645
1669
  /**
@@ -1663,12 +1687,12 @@ export type SettlementUpdate = Message<"silvana.orderbook.v1.SettlementUpdate">
1663
1687
  /**
1664
1688
  * @generated from field: silvana.orderbook.v1.SettlementProposal proposal = 2;
1665
1689
  */
1666
- proposal?: SettlementProposal;
1690
+ proposal?: SettlementProposal | undefined;
1667
1691
 
1668
1692
  /**
1669
1693
  * @generated from field: google.protobuf.Timestamp timestamp = 3;
1670
1694
  */
1671
- timestamp?: Timestamp;
1695
+ timestamp?: Timestamp | undefined;
1672
1696
  };
1673
1697
 
1674
1698
  /**
@@ -1769,34 +1793,34 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
1769
1793
  /**
1770
1794
  * @generated from field: optional google.protobuf.Timestamp expires_at = 7;
1771
1795
  */
1772
- expiresAt?: Timestamp;
1796
+ expiresAt?: Timestamp | undefined;
1773
1797
 
1774
1798
  /**
1775
1799
  * @generated from field: optional string trader_order_ref = 8;
1776
1800
  */
1777
- traderOrderRef?: string;
1801
+ traderOrderRef?: string | undefined;
1778
1802
 
1779
1803
  /**
1780
1804
  * @generated from field: optional google.protobuf.Struct credentials = 9;
1781
1805
  */
1782
- credentials?: JsonObject;
1806
+ credentials?: JsonObject | undefined;
1783
1807
 
1784
1808
  /**
1785
1809
  * @generated from field: optional google.protobuf.Struct requirements = 10;
1786
1810
  */
1787
- requirements?: JsonObject;
1811
+ requirements?: JsonObject | undefined;
1788
1812
 
1789
1813
  /**
1790
1814
  * @generated from field: optional google.protobuf.Struct metadata = 11;
1791
1815
  */
1792
- metadata?: JsonObject;
1816
+ metadata?: JsonObject | undefined;
1793
1817
 
1794
1818
  /**
1795
1819
  * Base64-encoded Ed25519 signature for order authentication
1796
1820
  *
1797
1821
  * @generated from field: optional string signature = 12;
1798
1822
  */
1799
- signature?: string;
1823
+ signature?: string | undefined;
1800
1824
 
1801
1825
  /**
1802
1826
  * Original signed order data (binary)
@@ -1811,6 +1835,18 @@ export type SubmitOrderRequest = Message<"silvana.orderbook.v1.SubmitOrderReques
1811
1835
  * @generated from field: uint64 nonce = 14;
1812
1836
  */
1813
1837
  nonce: bigint;
1838
+
1839
+ /**
1840
+ * Liquidity-provider matching constraints. Unset only_liquidity_providers ⇒ server defaults to true.
1841
+ *
1842
+ * @generated from field: optional bool only_liquidity_providers = 15;
1843
+ */
1844
+ onlyLiquidityProviders?: boolean | undefined;
1845
+
1846
+ /**
1847
+ * @generated from field: optional string liquidity_provider_name = 16;
1848
+ */
1849
+ liquidityProviderName?: string | undefined;
1814
1850
  };
1815
1851
 
1816
1852
  /**
@@ -1837,7 +1873,7 @@ export type SubmitOrderResponse = Message<"silvana.orderbook.v1.SubmitOrderRespo
1837
1873
  /**
1838
1874
  * @generated from field: optional silvana.orderbook.v1.Order order = 3;
1839
1875
  */
1840
- order?: Order;
1876
+ order?: Order | undefined;
1841
1877
  };
1842
1878
 
1843
1879
  /**
@@ -1885,7 +1921,7 @@ export type CancelOrderResponse = Message<"silvana.orderbook.v1.CancelOrderRespo
1885
1921
  /**
1886
1922
  * @generated from field: optional silvana.orderbook.v1.Order order = 3;
1887
1923
  */
1888
- order?: Order;
1924
+ order?: Order | undefined;
1889
1925
  };
1890
1926
 
1891
1927
  /**
@@ -1925,68 +1961,68 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
1925
1961
  *
1926
1962
  * @generated from field: optional string user_service_cid = 5;
1927
1963
  */
1928
- userServiceCid?: string;
1964
+ userServiceCid?: string | undefined;
1929
1965
 
1930
1966
  /**
1931
1967
  * OperatorConfiguration contract ID for operators
1932
1968
  *
1933
1969
  * @generated from field: optional string operator_config_cid = 6;
1934
1970
  */
1935
- operatorConfigCid?: string;
1971
+ operatorConfigCid?: string | undefined;
1936
1972
 
1937
1973
  /**
1938
1974
  * @generated from field: optional google.protobuf.Struct metadata = 7;
1939
1975
  */
1940
- metadata?: JsonObject;
1976
+ metadata?: JsonObject | undefined;
1941
1977
 
1942
1978
  /**
1943
1979
  * UserService request contract ID
1944
1980
  *
1945
1981
  * @generated from field: optional string user_service_request_cid = 8;
1946
1982
  */
1947
- userServiceRequestCid?: string;
1983
+ userServiceRequestCid?: string | undefined;
1948
1984
 
1949
1985
  /**
1950
1986
  * User-specific data (KYC, credentials, etc.)
1951
1987
  *
1952
1988
  * @generated from field: google.protobuf.Struct user_data = 9;
1953
1989
  */
1954
- userData?: JsonObject;
1990
+ userData?: JsonObject | undefined;
1955
1991
 
1956
1992
  /**
1957
1993
  * Party email address
1958
1994
  *
1959
1995
  * @generated from field: optional string email = 10;
1960
1996
  */
1961
- email?: string;
1997
+ email?: string | undefined;
1962
1998
 
1963
1999
  /**
1964
2000
  * Base58 public key
1965
2001
  *
1966
2002
  * @generated from field: optional string public_key = 11;
1967
2003
  */
1968
- publicKey?: string;
2004
+ publicKey?: string | undefined;
1969
2005
 
1970
2006
  /**
1971
2007
  * Invite code used during registration
1972
2008
  *
1973
2009
  * @generated from field: optional string invite_code = 12;
1974
2010
  */
1975
- inviteCode?: string;
2011
+ inviteCode?: string | undefined;
1976
2012
 
1977
2013
  /**
1978
2014
  * Source: loop_wallet, form, supa_wallet, admin, onboard, zoro_wallet
1979
2015
  *
1980
2016
  * @generated from field: optional string source = 13;
1981
2017
  */
1982
- source?: string;
2018
+ source?: string | undefined;
1983
2019
 
1984
2020
  /**
1985
2021
  * AES-256-GCM encrypted private key
1986
2022
  *
1987
2023
  * @generated from field: optional string encrypted_private_key = 14;
1988
2024
  */
1989
- encryptedPrivateKey?: string;
2025
+ encryptedPrivateKey?: string | undefined;
1990
2026
 
1991
2027
  /**
1992
2028
  * Liquidity provider fields (creates/links LP entry when party is created)
@@ -1995,14 +2031,14 @@ export type CreatePartyRequest = Message<"silvana.orderbook.v1.CreatePartyReques
1995
2031
  *
1996
2032
  * @generated from field: optional string liquidity_provider_name = 16;
1997
2033
  */
1998
- liquidityProviderName?: string;
2034
+ liquidityProviderName?: string | undefined;
1999
2035
 
2000
2036
  /**
2001
2037
  * LP description (for new LPs)
2002
2038
  *
2003
2039
  * @generated from field: optional string liquidity_provider_description = 17;
2004
2040
  */
2005
- liquidityProviderDescription?: string;
2041
+ liquidityProviderDescription?: string | undefined;
2006
2042
  };
2007
2043
 
2008
2044
  /**
@@ -2029,7 +2065,7 @@ export type CreatePartyResponse = Message<"silvana.orderbook.v1.CreatePartyRespo
2029
2065
  /**
2030
2066
  * @generated from field: silvana.orderbook.v1.Party party = 3;
2031
2067
  */
2032
- party?: Party;
2068
+ party?: Party | undefined;
2033
2069
  };
2034
2070
 
2035
2071
  /**
@@ -2064,74 +2100,74 @@ export type UpdatePartyRequest = Message<"silvana.orderbook.v1.UpdatePartyReques
2064
2100
  /**
2065
2101
  * @generated from field: optional string party_name = 4;
2066
2102
  */
2067
- partyName?: string;
2103
+ partyName?: string | undefined;
2068
2104
 
2069
2105
  /**
2070
2106
  * @generated from field: optional string user_service_cid = 5;
2071
2107
  */
2072
- userServiceCid?: string;
2108
+ userServiceCid?: string | undefined;
2073
2109
 
2074
2110
  /**
2075
2111
  * @generated from field: optional string operator_config_cid = 6;
2076
2112
  */
2077
- operatorConfigCid?: string;
2113
+ operatorConfigCid?: string | undefined;
2078
2114
 
2079
2115
  /**
2080
2116
  * @generated from field: optional string user_service_request_cid = 7;
2081
2117
  */
2082
- userServiceRequestCid?: string;
2118
+ userServiceRequestCid?: string | undefined;
2083
2119
 
2084
2120
  /**
2085
2121
  * @generated from field: optional google.protobuf.Struct user_data = 8;
2086
2122
  */
2087
- userData?: JsonObject;
2123
+ userData?: JsonObject | undefined;
2088
2124
 
2089
2125
  /**
2090
2126
  * @generated from field: optional google.protobuf.Struct metadata = 9;
2091
2127
  */
2092
- metadata?: JsonObject;
2128
+ metadata?: JsonObject | undefined;
2093
2129
 
2094
2130
  /**
2095
2131
  * Audit: why this change
2096
2132
  *
2097
2133
  * @generated from field: optional string change_reason = 10;
2098
2134
  */
2099
- changeReason?: string;
2135
+ changeReason?: string | undefined;
2100
2136
 
2101
2137
  /**
2102
2138
  * Party email address
2103
2139
  *
2104
2140
  * @generated from field: optional string email = 11;
2105
2141
  */
2106
- email?: string;
2142
+ email?: string | undefined;
2107
2143
 
2108
2144
  /**
2109
2145
  * Base58 public key
2110
2146
  *
2111
2147
  * @generated from field: optional string public_key = 12;
2112
2148
  */
2113
- publicKey?: string;
2149
+ publicKey?: string | undefined;
2114
2150
 
2115
2151
  /**
2116
2152
  * Invite code used during registration
2117
2153
  *
2118
2154
  * @generated from field: optional string invite_code = 13;
2119
2155
  */
2120
- inviteCode?: string;
2156
+ inviteCode?: string | undefined;
2121
2157
 
2122
2158
  /**
2123
2159
  * Source: loop_wallet, form, supa_wallet, admin
2124
2160
  *
2125
2161
  * @generated from field: optional string source = 14;
2126
2162
  */
2127
- source?: string;
2163
+ source?: string | undefined;
2128
2164
 
2129
2165
  /**
2130
2166
  * AES-256-GCM encrypted private key
2131
2167
  *
2132
2168
  * @generated from field: optional string encrypted_private_key = 15;
2133
2169
  */
2134
- encryptedPrivateKey?: string;
2170
+ encryptedPrivateKey?: string | undefined;
2135
2171
  };
2136
2172
 
2137
2173
  /**
@@ -2158,7 +2194,7 @@ export type UpdatePartyResponse = Message<"silvana.orderbook.v1.UpdatePartyRespo
2158
2194
  /**
2159
2195
  * @generated from field: silvana.orderbook.v1.Party party = 3;
2160
2196
  */
2161
- party?: Party;
2197
+ party?: Party | undefined;
2162
2198
  };
2163
2199
 
2164
2200
  /**
@@ -2218,7 +2254,7 @@ export type DeactivatePartyResponse = Message<"silvana.orderbook.v1.DeactivatePa
2218
2254
  /**
2219
2255
  * @generated from field: silvana.orderbook.v1.Party party = 3;
2220
2256
  */
2221
- party?: Party;
2257
+ party?: Party | undefined;
2222
2258
  };
2223
2259
 
2224
2260
  /**
@@ -2244,12 +2280,12 @@ export type GetPartyHistoryRequest = Message<"silvana.orderbook.v1.GetPartyHisto
2244
2280
  /**
2245
2281
  * @generated from field: optional uint32 limit = 3;
2246
2282
  */
2247
- limit?: number;
2283
+ limit?: number | undefined;
2248
2284
 
2249
2285
  /**
2250
2286
  * @generated from field: optional uint32 offset = 4;
2251
2287
  */
2252
- offset?: number;
2288
+ offset?: number | undefined;
2253
2289
  };
2254
2290
 
2255
2291
  /**
@@ -2290,7 +2326,7 @@ export type PartyHistoryEntry = Message<"silvana.orderbook.v1.PartyHistoryEntry"
2290
2326
  /**
2291
2327
  * @generated from field: optional string change_reason = 5;
2292
2328
  */
2293
- changeReason?: string;
2329
+ changeReason?: string | undefined;
2294
2330
 
2295
2331
  /**
2296
2332
  * @generated from field: uint64 version = 6;
@@ -2302,12 +2338,12 @@ export type PartyHistoryEntry = Message<"silvana.orderbook.v1.PartyHistoryEntry"
2302
2338
  *
2303
2339
  * @generated from field: silvana.orderbook.v1.Party party_snapshot = 7;
2304
2340
  */
2305
- partySnapshot?: Party;
2341
+ partySnapshot?: Party | undefined;
2306
2342
 
2307
2343
  /**
2308
2344
  * @generated from field: google.protobuf.Timestamp created_at = 8;
2309
2345
  */
2310
- createdAt?: Timestamp;
2346
+ createdAt?: Timestamp | undefined;
2311
2347
  };
2312
2348
 
2313
2349
  /**
@@ -2387,7 +2423,7 @@ export type GetPartyResponse = Message<"silvana.orderbook.v1.GetPartyResponse">
2387
2423
  /**
2388
2424
  * @generated from field: silvana.orderbook.v1.Party party = 3;
2389
2425
  */
2390
- party?: Party;
2426
+ party?: Party | undefined;
2391
2427
  };
2392
2428
 
2393
2429
  /**
@@ -2410,28 +2446,28 @@ export type GetPartiesRequest = Message<"silvana.orderbook.v1.GetPartiesRequest"
2410
2446
  *
2411
2447
  * @generated from field: optional string party_type = 2;
2412
2448
  */
2413
- partyType?: string;
2449
+ partyType?: string | undefined;
2414
2450
 
2415
2451
  /**
2416
2452
  * If true, only return active parties (default: all)
2417
2453
  *
2418
2454
  * @generated from field: optional bool active_only = 3;
2419
2455
  */
2420
- activeOnly?: boolean;
2456
+ activeOnly?: boolean | undefined;
2421
2457
 
2422
2458
  /**
2423
2459
  * Max results (default: 50, max: 1000)
2424
2460
  *
2425
2461
  * @generated from field: optional uint32 limit = 4;
2426
2462
  */
2427
- limit?: number;
2463
+ limit?: number | undefined;
2428
2464
 
2429
2465
  /**
2430
2466
  * Pagination offset
2431
2467
  *
2432
2468
  * @generated from field: optional uint32 offset = 5;
2433
2469
  */
2434
- offset?: number;
2470
+ offset?: number | undefined;
2435
2471
  };
2436
2472
 
2437
2473
  /**
@@ -2497,12 +2533,12 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
2497
2533
  /**
2498
2534
  * @generated from field: optional string user_service_cid = 4;
2499
2535
  */
2500
- userServiceCid?: string;
2536
+ userServiceCid?: string | undefined;
2501
2537
 
2502
2538
  /**
2503
2539
  * @generated from field: optional string operator_config_cid = 5;
2504
2540
  */
2505
- operatorConfigCid?: string;
2541
+ operatorConfigCid?: string | undefined;
2506
2542
 
2507
2543
  /**
2508
2544
  * @generated from field: bool is_active = 6;
@@ -2512,31 +2548,31 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
2512
2548
  /**
2513
2549
  * @generated from field: optional google.protobuf.Struct metadata = 7;
2514
2550
  */
2515
- metadata?: JsonObject;
2551
+ metadata?: JsonObject | undefined;
2516
2552
 
2517
2553
  /**
2518
2554
  * @generated from field: google.protobuf.Timestamp created_at = 8;
2519
2555
  */
2520
- createdAt?: Timestamp;
2556
+ createdAt?: Timestamp | undefined;
2521
2557
 
2522
2558
  /**
2523
2559
  * @generated from field: google.protobuf.Timestamp updated_at = 9;
2524
2560
  */
2525
- updatedAt?: Timestamp;
2561
+ updatedAt?: Timestamp | undefined;
2526
2562
 
2527
2563
  /**
2528
2564
  * UserService request contract ID
2529
2565
  *
2530
2566
  * @generated from field: optional string user_service_request_cid = 10;
2531
2567
  */
2532
- userServiceRequestCid?: string;
2568
+ userServiceRequestCid?: string | undefined;
2533
2569
 
2534
2570
  /**
2535
2571
  * User-specific data (KYC, credentials, etc.)
2536
2572
  *
2537
2573
  * @generated from field: google.protobuf.Struct user_data = 11;
2538
2574
  */
2539
- userData?: JsonObject;
2575
+ userData?: JsonObject | undefined;
2540
2576
 
2541
2577
  /**
2542
2578
  * Optimistic locking version
@@ -2550,21 +2586,21 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
2550
2586
  *
2551
2587
  * @generated from field: optional string email = 13;
2552
2588
  */
2553
- email?: string;
2589
+ email?: string | undefined;
2554
2590
 
2555
2591
  /**
2556
2592
  * Base58 public key
2557
2593
  *
2558
2594
  * @generated from field: optional string public_key = 14;
2559
2595
  */
2560
- publicKey?: string;
2596
+ publicKey?: string | undefined;
2561
2597
 
2562
2598
  /**
2563
2599
  * Invite code used during registration
2564
2600
  *
2565
2601
  * @generated from field: optional string invite_code = 15;
2566
2602
  */
2567
- inviteCode?: string;
2603
+ inviteCode?: string | undefined;
2568
2604
 
2569
2605
  /**
2570
2606
  * Source: loop_wallet, form, supa_wallet, admin
@@ -2578,7 +2614,7 @@ export type Party = Message<"silvana.orderbook.v1.Party"> & {
2578
2614
  *
2579
2615
  * @generated from field: optional string participant = 17;
2580
2616
  */
2581
- participant?: string;
2617
+ participant?: string | undefined;
2582
2618
  };
2583
2619
 
2584
2620
  /**
@@ -2613,24 +2649,24 @@ export type LiquidityProvider = Message<"silvana.orderbook.v1.LiquidityProvider"
2613
2649
  *
2614
2650
  * @generated from field: optional string description = 3;
2615
2651
  */
2616
- description?: string;
2652
+ description?: string | undefined;
2617
2653
 
2618
2654
  /**
2619
2655
  * Last ping time
2620
2656
  *
2621
2657
  * @generated from field: optional google.protobuf.Timestamp last_active_time = 4;
2622
2658
  */
2623
- lastActiveTime?: Timestamp;
2659
+ lastActiveTime?: Timestamp | undefined;
2624
2660
 
2625
2661
  /**
2626
2662
  * @generated from field: google.protobuf.Timestamp created_at = 5;
2627
2663
  */
2628
- createdAt?: Timestamp;
2664
+ createdAt?: Timestamp | undefined;
2629
2665
 
2630
2666
  /**
2631
2667
  * @generated from field: google.protobuf.Timestamp updated_at = 6;
2632
2668
  */
2633
- updatedAt?: Timestamp;
2669
+ updatedAt?: Timestamp | undefined;
2634
2670
  };
2635
2671
 
2636
2672
  /**
@@ -2653,19 +2689,19 @@ export type GetLiquidityProvidersRequest = Message<"silvana.orderbook.v1.GetLiqu
2653
2689
  *
2654
2690
  * @generated from field: optional uint32 active_seconds = 2;
2655
2691
  */
2656
- activeSeconds?: number;
2692
+ activeSeconds?: number | undefined;
2657
2693
 
2658
2694
  /**
2659
2695
  * Pagination
2660
2696
  *
2661
2697
  * @generated from field: optional uint32 limit = 3;
2662
2698
  */
2663
- limit?: number;
2699
+ limit?: number | undefined;
2664
2700
 
2665
2701
  /**
2666
2702
  * @generated from field: optional uint32 offset = 4;
2667
2703
  */
2668
- offset?: number;
2704
+ offset?: number | undefined;
2669
2705
  };
2670
2706
 
2671
2707
  /**
@@ -2721,12 +2757,12 @@ export type WaitingListEntry = Message<"silvana.orderbook.v1.WaitingListEntry">
2721
2757
  /**
2722
2758
  * @generated from field: optional string party_id = 2;
2723
2759
  */
2724
- partyId?: string;
2760
+ partyId?: string | undefined;
2725
2761
 
2726
2762
  /**
2727
2763
  * @generated from field: google.protobuf.Struct user_data = 3;
2728
2764
  */
2729
- userData?: JsonObject;
2765
+ userData?: JsonObject | undefined;
2730
2766
 
2731
2767
  /**
2732
2768
  * loop_wallet, form, supa_wallet, agent
@@ -2738,12 +2774,12 @@ export type WaitingListEntry = Message<"silvana.orderbook.v1.WaitingListEntry">
2738
2774
  /**
2739
2775
  * @generated from field: optional string email = 5;
2740
2776
  */
2741
- email?: string;
2777
+ email?: string | undefined;
2742
2778
 
2743
2779
  /**
2744
2780
  * @generated from field: optional string public_key = 6;
2745
2781
  */
2746
- publicKey?: string;
2782
+ publicKey?: string | undefined;
2747
2783
 
2748
2784
  /**
2749
2785
  * requested, signature_required, topology_created, onboarded
@@ -2760,32 +2796,32 @@ export type WaitingListEntry = Message<"silvana.orderbook.v1.WaitingListEntry">
2760
2796
  /**
2761
2797
  * @generated from field: optional google.protobuf.Struct metadata = 9;
2762
2798
  */
2763
- metadata?: JsonObject;
2799
+ metadata?: JsonObject | undefined;
2764
2800
 
2765
2801
  /**
2766
2802
  * @generated from field: google.protobuf.Timestamp created_at = 10;
2767
2803
  */
2768
- createdAt?: Timestamp;
2804
+ createdAt?: Timestamp | undefined;
2769
2805
 
2770
2806
  /**
2771
2807
  * @generated from field: google.protobuf.Timestamp updated_at = 11;
2772
2808
  */
2773
- updatedAt?: Timestamp;
2809
+ updatedAt?: Timestamp | undefined;
2774
2810
 
2775
2811
  /**
2776
2812
  * @generated from field: optional string multihash = 12;
2777
2813
  */
2778
- multihash?: string;
2814
+ multihash?: string | undefined;
2779
2815
 
2780
2816
  /**
2781
2817
  * @generated from field: optional string multihash_signature = 13;
2782
2818
  */
2783
- multihashSignature?: string;
2819
+ multihashSignature?: string | undefined;
2784
2820
 
2785
2821
  /**
2786
2822
  * @generated from field: optional string invite_code = 14;
2787
2823
  */
2788
- inviteCode?: string;
2824
+ inviteCode?: string | undefined;
2789
2825
  };
2790
2826
 
2791
2827
  /**
@@ -2806,7 +2842,7 @@ export type AddWaitingListEntryRequest = Message<"silvana.orderbook.v1.AddWaitin
2806
2842
  *
2807
2843
  * @generated from field: google.protobuf.Struct user_data = 2;
2808
2844
  */
2809
- userData?: JsonObject;
2845
+ userData?: JsonObject | undefined;
2810
2846
 
2811
2847
  /**
2812
2848
  * @generated from field: string source = 3;
@@ -2816,17 +2852,17 @@ export type AddWaitingListEntryRequest = Message<"silvana.orderbook.v1.AddWaitin
2816
2852
  /**
2817
2853
  * @generated from field: optional string email = 4;
2818
2854
  */
2819
- email?: string;
2855
+ email?: string | undefined;
2820
2856
 
2821
2857
  /**
2822
2858
  * @generated from field: optional string public_key = 5;
2823
2859
  */
2824
- publicKey?: string;
2860
+ publicKey?: string | undefined;
2825
2861
 
2826
2862
  /**
2827
2863
  * @generated from field: optional google.protobuf.Struct metadata = 6;
2828
2864
  */
2829
- metadata?: JsonObject;
2865
+ metadata?: JsonObject | undefined;
2830
2866
  };
2831
2867
 
2832
2868
  /**
@@ -2879,38 +2915,38 @@ export type Round = Message<"silvana.orderbook.v1.Round"> & {
2879
2915
  *
2880
2916
  * @generated from field: optional string issuance_per_featured_app_reward_coupon = 2;
2881
2917
  */
2882
- issuancePerFeaturedAppRewardCoupon?: string;
2918
+ issuancePerFeaturedAppRewardCoupon?: string | undefined;
2883
2919
 
2884
2920
  /**
2885
2921
  * DECIMAL(38,10) as string
2886
2922
  *
2887
2923
  * @generated from field: optional string issuance_per_unfeatured_app_reward_coupon = 3;
2888
2924
  */
2889
- issuancePerUnfeaturedAppRewardCoupon?: string;
2925
+ issuancePerUnfeaturedAppRewardCoupon?: string | undefined;
2890
2926
 
2891
2927
  /**
2892
2928
  * DECIMAL(38,10) as string
2893
2929
  *
2894
2930
  * @generated from field: optional string cc_usd_rate = 4;
2895
2931
  */
2896
- ccUsdRate?: string;
2932
+ ccUsdRate?: string | undefined;
2897
2933
 
2898
2934
  /**
2899
2935
  * DECIMAL(38,10) as string
2900
2936
  *
2901
2937
  * @generated from field: optional string traffic_cost_usd_per_mb = 5;
2902
2938
  */
2903
- trafficCostUsdPerMb?: string;
2939
+ trafficCostUsdPerMb?: string | undefined;
2904
2940
 
2905
2941
  /**
2906
2942
  * @generated from field: google.protobuf.Timestamp created_at = 6;
2907
2943
  */
2908
- createdAt?: Timestamp;
2944
+ createdAt?: Timestamp | undefined;
2909
2945
 
2910
2946
  /**
2911
2947
  * @generated from field: google.protobuf.Timestamp updated_at = 7;
2912
2948
  */
2913
- updatedAt?: Timestamp;
2949
+ updatedAt?: Timestamp | undefined;
2914
2950
  };
2915
2951
 
2916
2952
  /**
@@ -2931,48 +2967,48 @@ export type LatestCoefficients = Message<"silvana.orderbook.v1.LatestCoefficient
2931
2967
  *
2932
2968
  * @generated from field: optional string issuance_per_featured_app_reward_coupon = 1;
2933
2969
  */
2934
- issuancePerFeaturedAppRewardCoupon?: string;
2970
+ issuancePerFeaturedAppRewardCoupon?: string | undefined;
2935
2971
 
2936
2972
  /**
2937
2973
  * @generated from field: optional uint64 issuance_per_featured_app_reward_coupon_round = 2;
2938
2974
  */
2939
- issuancePerFeaturedAppRewardCouponRound?: bigint;
2975
+ issuancePerFeaturedAppRewardCouponRound?: bigint | undefined;
2940
2976
 
2941
2977
  /**
2942
2978
  * Issuance coefficient for unfeatured apps (from most recent round with value)
2943
2979
  *
2944
2980
  * @generated from field: optional string issuance_per_unfeatured_app_reward_coupon = 3;
2945
2981
  */
2946
- issuancePerUnfeaturedAppRewardCoupon?: string;
2982
+ issuancePerUnfeaturedAppRewardCoupon?: string | undefined;
2947
2983
 
2948
2984
  /**
2949
2985
  * @generated from field: optional uint64 issuance_per_unfeatured_app_reward_coupon_round = 4;
2950
2986
  */
2951
- issuancePerUnfeaturedAppRewardCouponRound?: bigint;
2987
+ issuancePerUnfeaturedAppRewardCouponRound?: bigint | undefined;
2952
2988
 
2953
2989
  /**
2954
2990
  * CC/USD exchange rate (from most recent round with value)
2955
2991
  *
2956
2992
  * @generated from field: optional string cc_usd_rate = 5;
2957
2993
  */
2958
- ccUsdRate?: string;
2994
+ ccUsdRate?: string | undefined;
2959
2995
 
2960
2996
  /**
2961
2997
  * @generated from field: optional uint64 cc_usd_rate_round = 6;
2962
2998
  */
2963
- ccUsdRateRound?: bigint;
2999
+ ccUsdRateRound?: bigint | undefined;
2964
3000
 
2965
3001
  /**
2966
3002
  * Traffic cost in USD per MB (from most recent round with value)
2967
3003
  *
2968
3004
  * @generated from field: optional string traffic_cost_usd_per_mb = 7;
2969
3005
  */
2970
- trafficCostUsdPerMb?: string;
3006
+ trafficCostUsdPerMb?: string | undefined;
2971
3007
 
2972
3008
  /**
2973
3009
  * @generated from field: optional uint64 traffic_cost_usd_per_mb_round = 8;
2974
3010
  */
2975
- trafficCostUsdPerMbRound?: bigint;
3011
+ trafficCostUsdPerMbRound?: bigint | undefined;
2976
3012
  };
2977
3013
 
2978
3014
  /**
@@ -2995,7 +3031,7 @@ export type GetRoundsDataRequest = Message<"silvana.orderbook.v1.GetRoundsDataRe
2995
3031
  *
2996
3032
  * @generated from field: optional uint32 limit = 2;
2997
3033
  */
2998
- limit?: number;
3034
+ limit?: number | undefined;
2999
3035
  };
3000
3036
 
3001
3037
  /**
@@ -3031,7 +3067,7 @@ export type GetRoundsDataResponse = Message<"silvana.orderbook.v1.GetRoundsDataR
3031
3067
  *
3032
3068
  * @generated from field: silvana.orderbook.v1.LatestCoefficients latest = 4;
3033
3069
  */
3034
- latest?: LatestCoefficients;
3070
+ latest?: LatestCoefficients | undefined;
3035
3071
 
3036
3072
  /**
3037
3073
  * Total rounds in database
@@ -3045,7 +3081,7 @@ export type GetRoundsDataResponse = Message<"silvana.orderbook.v1.GetRoundsDataR
3045
3081
  *
3046
3082
  * @generated from field: silvana.orderbook.v1.PredictionData prediction = 6;
3047
3083
  */
3048
- prediction?: PredictionData;
3084
+ prediction?: PredictionData | undefined;
3049
3085
  };
3050
3086
 
3051
3087
  /**
@@ -3127,14 +3163,14 @@ export type PredictionData = Message<"silvana.orderbook.v1.PredictionData"> & {
3127
3163
  *
3128
3164
  * @generated from field: optional string forecast_coefficient = 3;
3129
3165
  */
3130
- forecastCoefficient?: string;
3166
+ forecastCoefficient?: string | undefined;
3131
3167
 
3132
3168
  /**
3133
3169
  * The round the forecast applies to
3134
3170
  *
3135
3171
  * @generated from field: optional uint64 forecast_round = 4;
3136
3172
  */
3137
- forecastRound?: bigint;
3173
+ forecastRound?: bigint | undefined;
3138
3174
 
3139
3175
  /**
3140
3176
  * AR model coefficients [a0..a5]
@@ -3148,14 +3184,14 @@ export type PredictionData = Message<"silvana.orderbook.v1.PredictionData"> & {
3148
3184
  *
3149
3185
  * @generated from field: optional string residual_std = 6;
3150
3186
  */
3151
- residualStd?: string;
3187
+ residualStd?: string | undefined;
3152
3188
 
3153
3189
  /**
3154
3190
  * Last known round used for prediction
3155
3191
  *
3156
3192
  * @generated from field: optional uint64 prediction_round = 7;
3157
3193
  */
3158
- predictionRound?: bigint;
3194
+ predictionRound?: bigint | undefined;
3159
3195
  };
3160
3196
 
3161
3197
  /**
@@ -3186,12 +3222,12 @@ export type Invite = Message<"silvana.orderbook.v1.Invite"> & {
3186
3222
  *
3187
3223
  * @generated from field: optional string rewards = 3;
3188
3224
  */
3189
- rewards?: string;
3225
+ rewards?: string | undefined;
3190
3226
 
3191
3227
  /**
3192
3228
  * @generated from field: optional google.protobuf.Struct metadata = 4;
3193
3229
  */
3194
- metadata?: JsonObject;
3230
+ metadata?: JsonObject | undefined;
3195
3231
 
3196
3232
  /**
3197
3233
  * @generated from field: silvana.orderbook.v1.InviteStatus status = 5;
@@ -3206,7 +3242,7 @@ export type Invite = Message<"silvana.orderbook.v1.Invite"> & {
3206
3242
  /**
3207
3243
  * @generated from field: optional uint32 max_count = 7;
3208
3244
  */
3209
- maxCount?: number;
3245
+ maxCount?: number | undefined;
3210
3246
 
3211
3247
  /**
3212
3248
  * @generated from field: string created_by = 8;
@@ -3216,12 +3252,12 @@ export type Invite = Message<"silvana.orderbook.v1.Invite"> & {
3216
3252
  /**
3217
3253
  * @generated from field: google.protobuf.Timestamp created_at = 9;
3218
3254
  */
3219
- createdAt?: Timestamp;
3255
+ createdAt?: Timestamp | undefined;
3220
3256
 
3221
3257
  /**
3222
3258
  * @generated from field: google.protobuf.Timestamp updated_at = 10;
3223
3259
  */
3224
- updatedAt?: Timestamp;
3260
+ updatedAt?: Timestamp | undefined;
3225
3261
  };
3226
3262
 
3227
3263
  /**
@@ -3262,7 +3298,7 @@ export type GetInviteResponse = Message<"silvana.orderbook.v1.GetInviteResponse"
3262
3298
  /**
3263
3299
  * @generated from field: optional silvana.orderbook.v1.Invite invite = 2;
3264
3300
  */
3265
- invite?: Invite;
3301
+ invite?: Invite | undefined;
3266
3302
  };
3267
3303
 
3268
3304
  /**
@@ -3288,7 +3324,7 @@ export type UseInviteRequest = Message<"silvana.orderbook.v1.UseInviteRequest">
3288
3324
  *
3289
3325
  * @generated from field: optional string party_id = 2;
3290
3326
  */
3291
- partyId?: string;
3327
+ partyId?: string | undefined;
3292
3328
  };
3293
3329
 
3294
3330
  /**
@@ -3317,7 +3353,7 @@ export type UseInviteResponse = Message<"silvana.orderbook.v1.UseInviteResponse"
3317
3353
  *
3318
3354
  * @generated from field: optional silvana.orderbook.v1.Invite invite = 3;
3319
3355
  */
3320
- invite?: Invite;
3356
+ invite?: Invite | undefined;
3321
3357
  };
3322
3358
 
3323
3359
  /**
@@ -3360,26 +3396,26 @@ export type CreateInstrumentRequest = Message<"silvana.orderbook.v1.CreateInstru
3360
3396
  /**
3361
3397
  * @generated from field: optional string description = 6;
3362
3398
  */
3363
- description?: string;
3399
+ description?: string | undefined;
3364
3400
 
3365
3401
  /**
3366
3402
  * Canton party ID
3367
3403
  *
3368
3404
  * @generated from field: optional string issuer = 7;
3369
3405
  */
3370
- issuer?: string;
3406
+ issuer?: string | undefined;
3371
3407
 
3372
3408
  /**
3373
3409
  * Canton registry party ID
3374
3410
  *
3375
3411
  * @generated from field: optional string registry = 8;
3376
3412
  */
3377
- registry?: string;
3413
+ registry?: string | undefined;
3378
3414
 
3379
3415
  /**
3380
3416
  * @generated from field: optional google.protobuf.Struct metadata = 9;
3381
3417
  */
3382
- metadata?: JsonObject;
3418
+ metadata?: JsonObject | undefined;
3383
3419
 
3384
3420
  /**
3385
3421
  * Symbol for news API search (e.g., 'BTC' for WBTC)
@@ -3413,7 +3449,7 @@ export type CreateInstrumentResponse = Message<"silvana.orderbook.v1.CreateInstr
3413
3449
  /**
3414
3450
  * @generated from field: silvana.orderbook.v1.Instrument instrument = 3;
3415
3451
  */
3416
- instrument?: Instrument;
3452
+ instrument?: Instrument | undefined;
3417
3453
  };
3418
3454
 
3419
3455
  /**
@@ -3446,14 +3482,14 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
3446
3482
  *
3447
3483
  * @generated from field: optional string base_instrument = 4;
3448
3484
  */
3449
- baseInstrument?: string;
3485
+ baseInstrument?: string | undefined;
3450
3486
 
3451
3487
  /**
3452
3488
  * Optional for general markets
3453
3489
  *
3454
3490
  * @generated from field: optional string quote_instrument = 5;
3455
3491
  */
3456
- quoteInstrument?: string;
3492
+ quoteInstrument?: string | undefined;
3457
3493
 
3458
3494
  /**
3459
3495
  * DECIMAL as string
@@ -3467,7 +3503,7 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
3467
3503
  *
3468
3504
  * @generated from field: optional string max_order_size = 7;
3469
3505
  */
3470
- maxOrderSize?: string;
3506
+ maxOrderSize?: string | undefined;
3471
3507
 
3472
3508
  /**
3473
3509
  * Minimum price increment
@@ -3493,14 +3529,14 @@ export type CreateMarketRequest = Message<"silvana.orderbook.v1.CreateMarketRequ
3493
3529
  /**
3494
3530
  * @generated from field: optional google.protobuf.Struct metadata = 11;
3495
3531
  */
3496
- metadata?: JsonObject;
3532
+ metadata?: JsonObject | undefined;
3497
3533
 
3498
3534
  /**
3499
3535
  * Price feed configurations
3500
3536
  *
3501
3537
  * @generated from field: optional google.protobuf.Struct price_feeds = 12;
3502
3538
  */
3503
- priceFeeds?: JsonObject;
3539
+ priceFeeds?: JsonObject | undefined;
3504
3540
  };
3505
3541
 
3506
3542
  /**
@@ -3527,7 +3563,7 @@ export type CreateMarketResponse = Message<"silvana.orderbook.v1.CreateMarketRes
3527
3563
  /**
3528
3564
  * @generated from field: silvana.orderbook.v1.Market market = 3;
3529
3565
  */
3530
- market?: Market;
3566
+ market?: Market | undefined;
3531
3567
  };
3532
3568
 
3533
3569
  /**
@@ -3555,7 +3591,7 @@ export type UpdateMarketPriceFeedsRequest = Message<"silvana.orderbook.v1.Update
3555
3591
  *
3556
3592
  * @generated from field: google.protobuf.Struct price_feeds = 3;
3557
3593
  */
3558
- priceFeeds?: JsonObject;
3594
+ priceFeeds?: JsonObject | undefined;
3559
3595
  };
3560
3596
 
3561
3597
  /**
@@ -3584,7 +3620,7 @@ export type UpdateMarketPriceFeedsResponse = Message<"silvana.orderbook.v1.Updat
3584
3620
  *
3585
3621
  * @generated from field: silvana.orderbook.v1.Market market = 3;
3586
3622
  */
3587
- market?: Market;
3623
+ market?: Market | undefined;
3588
3624
  };
3589
3625
 
3590
3626
  /**
@@ -3633,7 +3669,7 @@ export type RequestQuotesRequest = Message<"silvana.orderbook.v1.RequestQuotesRe
3633
3669
  *
3634
3670
  * @generated from field: optional uint32 timeout_secs = 6;
3635
3671
  */
3636
- timeoutSecs?: number;
3672
+ timeoutSecs?: number | undefined;
3637
3673
  };
3638
3674
 
3639
3675
  /**
@@ -3736,21 +3772,21 @@ export type RfqQuoteInfo = Message<"silvana.orderbook.v1.RfqQuoteInfo"> & {
3736
3772
  /**
3737
3773
  * @generated from field: google.protobuf.Timestamp valid_until = 6;
3738
3774
  */
3739
- validUntil?: Timestamp;
3775
+ validUntil?: Timestamp | undefined;
3740
3776
 
3741
3777
  /**
3742
3778
  * LP's allocation deadline requirement (seconds from DVP creation)
3743
3779
  *
3744
3780
  * @generated from field: optional uint32 allocate_before_secs = 7;
3745
3781
  */
3746
- allocateBeforeSecs?: number;
3782
+ allocateBeforeSecs?: number | undefined;
3747
3783
 
3748
3784
  /**
3749
3785
  * LP's settlement deadline requirement (seconds from DVP creation)
3750
3786
  *
3751
3787
  * @generated from field: optional uint32 settle_before_secs = 8;
3752
3788
  */
3753
- settleBeforeSecs?: number;
3789
+ settleBeforeSecs?: number | undefined;
3754
3790
 
3755
3791
  /**
3756
3792
  * Estimated settlement fees (per party, may change between quote and actual settlement)
@@ -3806,14 +3842,14 @@ export type RfqRejectInfo = Message<"silvana.orderbook.v1.RfqRejectInfo"> & {
3806
3842
  *
3807
3843
  * @generated from field: optional string min_quantity = 3;
3808
3844
  */
3809
- minQuantity?: string;
3845
+ minQuantity?: string | undefined;
3810
3846
 
3811
3847
  /**
3812
3848
  * LP's max acceptable quantity (if rejected for amount)
3813
3849
  *
3814
3850
  * @generated from field: optional string max_quantity = 4;
3815
3851
  */
3816
- maxQuantity?: string;
3852
+ maxQuantity?: string | undefined;
3817
3853
  };
3818
3854
 
3819
3855
  /**
@@ -3872,7 +3908,7 @@ export type AcceptQuoteResponse = Message<"silvana.orderbook.v1.AcceptQuoteRespo
3872
3908
  *
3873
3909
  * @generated from field: optional string proposal_id = 3;
3874
3910
  */
3875
- proposalId?: string;
3911
+ proposalId?: string | undefined;
3876
3912
  };
3877
3913
 
3878
3914
  /**
@@ -3895,7 +3931,7 @@ export type GetConnectedLiquidityProvidersRequest = Message<"silvana.orderbook.v
3895
3931
  *
3896
3932
  * @generated from field: optional string market_id = 2;
3897
3933
  */
3898
- marketId?: string;
3934
+ marketId?: string | undefined;
3899
3935
  };
3900
3936
 
3901
3937
  /**
@@ -3998,47 +4034,47 @@ export type RfqAuditLogEntry = Message<"silvana.orderbook.v1.RfqAuditLogEntry">
3998
4034
  /**
3999
4035
  * @generated from field: optional string lp_name = 7;
4000
4036
  */
4001
- lpName?: string;
4037
+ lpName?: string | undefined;
4002
4038
 
4003
4039
  /**
4004
4040
  * @generated from field: optional string lp_party_id = 8;
4005
4041
  */
4006
- lpPartyId?: string;
4042
+ lpPartyId?: string | undefined;
4007
4043
 
4008
4044
  /**
4009
4045
  * @generated from field: optional string quantity = 9;
4010
4046
  */
4011
- quantity?: string;
4047
+ quantity?: string | undefined;
4012
4048
 
4013
4049
  /**
4014
4050
  * @generated from field: optional string price = 10;
4015
4051
  */
4016
- price?: string;
4052
+ price?: string | undefined;
4017
4053
 
4018
4054
  /**
4019
4055
  * @generated from field: optional string quote_quantity = 11;
4020
4056
  */
4021
- quoteQuantity?: string;
4057
+ quoteQuantity?: string | undefined;
4022
4058
 
4023
4059
  /**
4024
4060
  * @generated from field: optional string quote_id = 12;
4025
4061
  */
4026
- quoteId?: string;
4062
+ quoteId?: string | undefined;
4027
4063
 
4028
4064
  /**
4029
4065
  * @generated from field: optional string proposal_id = 13;
4030
4066
  */
4031
- proposalId?: string;
4067
+ proposalId?: string | undefined;
4032
4068
 
4033
4069
  /**
4034
4070
  * @generated from field: optional string error_message = 14;
4035
4071
  */
4036
- errorMessage?: string;
4072
+ errorMessage?: string | undefined;
4037
4073
 
4038
4074
  /**
4039
4075
  * @generated from field: google.protobuf.Timestamp created_at = 15;
4040
4076
  */
4041
- createdAt?: Timestamp;
4077
+ createdAt?: Timestamp | undefined;
4042
4078
  };
4043
4079
 
4044
4080
  /**
@@ -4058,42 +4094,42 @@ export type GetRfqAuditLogRequest = Message<"silvana.orderbook.v1.GetRfqAuditLog
4058
4094
  *
4059
4095
  * @generated from field: optional string rfq_id = 1;
4060
4096
  */
4061
- rfqId?: string;
4097
+ rfqId?: string | undefined;
4062
4098
 
4063
4099
  /**
4064
4100
  * @generated from field: optional string market_id = 2;
4065
4101
  */
4066
- marketId?: string;
4102
+ marketId?: string | undefined;
4067
4103
 
4068
4104
  /**
4069
4105
  * @generated from field: optional silvana.orderbook.v1.RfqAuditEventType event_type = 3;
4070
4106
  */
4071
- eventType?: RfqAuditEventType;
4107
+ eventType?: RfqAuditEventType | undefined;
4072
4108
 
4073
4109
  /**
4074
4110
  * @generated from field: optional string lp_name = 4;
4075
4111
  */
4076
- lpName?: string;
4112
+ lpName?: string | undefined;
4077
4113
 
4078
4114
  /**
4079
4115
  * @generated from field: optional google.protobuf.Timestamp from_time = 5;
4080
4116
  */
4081
- fromTime?: Timestamp;
4117
+ fromTime?: Timestamp | undefined;
4082
4118
 
4083
4119
  /**
4084
4120
  * @generated from field: optional google.protobuf.Timestamp to_time = 6;
4085
4121
  */
4086
- toTime?: Timestamp;
4122
+ toTime?: Timestamp | undefined;
4087
4123
 
4088
4124
  /**
4089
4125
  * @generated from field: optional uint32 limit = 7;
4090
4126
  */
4091
- limit?: number;
4127
+ limit?: number | undefined;
4092
4128
 
4093
4129
  /**
4094
4130
  * @generated from field: optional uint32 offset = 8;
4095
4131
  */
4096
- offset?: number;
4132
+ offset?: number | undefined;
4097
4133
  };
4098
4134
 
4099
4135
  /**