@silvana-one/orderbook 1.1.26 → 1.1.28

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 (38) hide show
  1. package/dist/node/index.cjs +336 -257
  2. package/dist/node/orderbook.d.ts +9 -4
  3. package/dist/node/orderbook.js +54 -119
  4. package/dist/node/orderbook.js.map +1 -1
  5. package/dist/node/proto/silvana/news/v1/news_pb.js +1 -1
  6. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +313 -487
  7. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +115 -138
  8. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  9. package/dist/node/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  10. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +939 -226
  11. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +452 -26
  12. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  13. package/dist/node/settlement.d.ts +41 -30
  14. package/dist/node/settlement.js +40 -7
  15. package/dist/node/settlement.js.map +1 -1
  16. package/dist/tsconfig.tsbuildinfo +1 -1
  17. package/dist/tsconfig.web.tsbuildinfo +1 -1
  18. package/dist/web/orderbook.d.ts +9 -4
  19. package/dist/web/orderbook.js +54 -119
  20. package/dist/web/orderbook.js.map +1 -1
  21. package/dist/web/proto/silvana/news/v1/news_pb.js +1 -1
  22. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +313 -487
  23. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +115 -138
  24. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  25. package/dist/web/proto/silvana/pricing/v1/pricing_pb.js +1 -1
  26. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +939 -226
  27. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +452 -26
  28. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  29. package/dist/web/settlement.d.ts +41 -30
  30. package/dist/web/settlement.js +40 -7
  31. package/dist/web/settlement.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/orderbook.ts +60 -121
  34. package/src/proto/silvana/news/v1/news_pb.ts +1 -1
  35. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +418 -649
  36. package/src/proto/silvana/pricing/v1/pricing_pb.ts +1 -1
  37. package/src/proto/silvana/settlement/v1/settlement_pb.ts +1161 -313
  38. package/src/settlement.ts +206 -31
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,js_import_style=module"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=ts,js_import_style=module"
2
2
  // @generated from file proto/silvana/settlement/v1/settlement.proto (package silvana.settlement.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 proto/silvana/settlement/v1/settlement.proto.
13
13
  */
14
14
  export const file_proto_silvana_settlement_v1_settlement: GenFile = /*@__PURE__*/
15
- fileDesc("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAingEKFFNldHRsZW1lbnRJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSDgoGc3ltYm9sGAIgASgJEhAKCHJlZ2lzdHJ5GAMgASgJEhAKCHF1YW50aXR5GAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSKBBAoZU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRITCgtidXllcl9wYXJ0eRgEIAEoCRIUCgxzZWxsZXJfcGFydHkYBSABKAkSRAoPYmFzZV9pbnN0cnVtZW50GAYgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EkUKEHF1b3RlX2luc3RydW1lbnQYByABKAsyKy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEluc3RydW1lbnQSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIzCg9hbGxvY2F0ZV9iZWZvcmUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXNldHRsZV9iZWZvcmUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgsKCV9tZXRhZGF0YSKJAgoWUHJlY29uZmlybWF0aW9uUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEkIKCHByb3Bvc2FsGAMgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USGAoQcmVxdWVzdGluZ19wYXJ0eRgEIAEoCRIuCgpyZXNwb25kX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgV0ZXJtcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIICgZfdGVybXMivwIKF1ByZWNvbmZpcm1hdGlvbkRlY2lzaW9uEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQAoIcmVzcG9uc2UYAyABKA4yLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVzcG9uc2USHQoQcmVqZWN0aW9uX3JlYXNvbhgEIAEoCUgAiAEBEjAKCmNvbmRpdGlvbnMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESEQoJc2lnbmVkX2J5GAYgASgJEi4KCmRlY2lkZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9yZWplY3Rpb25fcmVhc29uQg0KC19jb25kaXRpb25zItgBChJEdnBDb250cmFjdENyZWF0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIYChBkdnBfcHJvcG9zYWxfY2lkGAMgASgJEh4KFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBCABKAkSFgoOcHJvcG9zZXJfcGFydHkYBSABKAkSFAoMY291bnRlcnBhcnR5GAYgASgJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIq8BChNEdnBDb250cmFjdEFjY2VwdGVkEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIVCg1kdnBfdXBkYXRlX2lkGAQgASgJEhMKC2FjY2VwdGVkX2J5GAUgASgJEi8KC2FjY2VwdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLbAgoQQWxsb2NhdGlvblN0YXR1cxITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEhAKCHBhcnR5X2lkGAQgASgJEhYKDmFsbG9jYXRpb25fY2lkGAUgASgJEhwKFGFsbG9jYXRpb25fdXBkYXRlX2lkGAYgASgJEhUKDWluc3RydW1lbnRfaWQYByABKAkSEAoIcXVhbnRpdHkYCCABKAkSFAoMaXNfYWxsb2NhdGVkGAkgASgIEhoKDWVycm9yX21lc3NhZ2UYCiABKAlIAIgBARIwCgxhbGxvY2F0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIqoCChlTZXR0bGVtZW50RXhlY3V0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYBCABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgGIAEoCRIVCg1pc19zdWNjZXNzZnVsGAcgASgIEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIAIgBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSKKAQoPVXNlclNlcnZpY2VJbmZvEhAKCHBhcnR5X2lkGAEgASgJEhgKEHVzZXJfc2VydmljZV9jaWQYAiABKAkSGwoTb3BlcmF0b3JfY29uZmlnX2NpZBgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL5AQoTU2V0dGxlbWVudEhhbmRzaGFrZRIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhEKCXBhcnR5X2lkcxgCIAMoCRI9Cg11c2VyX3NlcnZpY2VzGAMgAygLMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVzZXJTZXJ2aWNlSW5mbxIWCg5vcGVyYXRvcl9wYXJ0eRgEIAEoCRIyCgxjYXBhYmlsaXRpZXMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCDwoNX2NhcGFiaWxpdGllcyK4AQoMSGFuZHNoYWtlQWNrEhAKCGFjY2VwdGVkGAEgASgIEh0KEHJlamVjdGlvbl9yZWFzb24YAiABKAlIAIgBARISCgpzZXNzaW9uX2lkGAMgASgJEh0KFXN1cHBvcnRlZF9pbnN0cnVtZW50cxgEIAMoCRIvCgtzZXJ2ZXJfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb24iZwoJSGVhcnRiZWF0EhIKCnNlc3Npb25faWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQiZwoVTGlxdWlkaXR5UHJvdmlkZXJQaW5nEh8KF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGAEgASgJEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqAEKFUxpcXVpZGl0eVByb3ZpZGVyUG9uZxIfChdsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZRgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBARIvCgtzZXJ2ZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2Vycm9yX21lc3NhZ2Ui2wYKFVNlcnZlclRvQ2FudG9uTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI8Cg1oYW5kc2hha2VfYWNrGAMgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhhbmRzaGFrZUFja0gAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJECghwcm9wb3NhbBgFIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlSAASUAoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYBiABKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVxdWVzdEgAEkAKC2R2cF9jcmVhdGVkGAcgASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0Q3JlYXRlZEgAEkIKDGR2cF9hY2NlcHRlZBgIIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBDb250cmFjdEFjY2VwdGVkSAASRAoRYWxsb2NhdGlvbl9zdGF0dXMYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblN0YXR1c0gAEk0KEXNldHRsZW1lbnRfc3RhdHVzGAogASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXNIABI7Cgdjb21tYW5kGAsgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kSAASNwoFcXVlcnkYDCABKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFF1ZXJ5SAASPwoHbHBfcG9uZxgOIAEoCzIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5MaXF1aWRpdHlQcm92aWRlclBvbmdIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIrEGChVDYW50b25Ub1NlcnZlck1lc3NhZ2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIXCg9zZXF1ZW5jZV9udW1iZXIYAiABKAQSPwoJaGFuZHNoYWtlGAMgASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRIYW5kc2hha2VIABI1CgloZWFydGJlYXQYBCABKAsyIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuSGVhcnRiZWF0SAASSQoPcHJlY29uZmlybWF0aW9uGAUgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uSAASQAoMZHZwX2NyZWF0aW9uGAYgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENyZWF0aW9uUmVwb3J0SAASRAoOZHZwX2FjY2VwdGFuY2UYByABKAsyKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQWNjZXB0YW5jZVJlcG9ydEgAEj0KCmFsbG9jYXRpb24YCCABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblJlcG9ydEgAEj0KCnNldHRsZW1lbnQYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFJlcG9ydEgAEj0KCHJlc3BvbnNlGAogASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRSZXNwb25zZUgAEjMKBWVycm9yGAsgASgLMiIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkVycm9yUmVwb3J0SAASNQoGc3RhdHVzGAwgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN0YXR1c1VwZGF0ZUgAEj8KB2xwX3BpbmcYDiABKAsyLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuTGlxdWlkaXR5UHJvdmlkZXJQaW5nSAASKwoHc2VudF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCQoHbWVzc2FnZSKiAgoRRHZwQ3JlYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIjChZkdnBfcHJvcG9zYWxfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIoECChNEdnBBY2NlcHRhbmNlUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIUCgdkdnBfY2lkGAQgASgJSACIAQESGgoNZHZwX3VwZGF0ZV9pZBgFIAEoCUgBiAEBEhoKDWVycm9yX21lc3NhZ2UYBiABKAlIAogBARIvCgthY2NlcHRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2Ui5wIKEEFsbG9jYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI0CgpwYXJ0eV9yb2xlGAMgASgOMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlBhcnR5Um9sZRIPCgdzdWNjZXNzGAQgASgIEhsKDmFsbG9jYXRpb25fY2lkGAUgASgJSACIAQESIQoUYWxsb2NhdGlvbl91cGRhdGVfaWQYBiABKAlIAYgBARIUCgxob2xkaW5nX2NpZHMYByADKAkSGgoNZXJyb3JfbWVzc2FnZRgIIAEoCUgCiAEBEjAKDGFsbG9jYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEQoPX2FsbG9jYXRpb25fY2lkQhcKFV9hbGxvY2F0aW9uX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSL+AgoQU2V0dGxlbWVudFJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHAoPc2V0dGxlZF9kdnBfY2lkGAQgASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAlIAYgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAYgASgJSAKIAQESFQoNYXJjaGl2ZWRfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAOIAQESLgoKc2V0dGxlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCEAoOX2Vycm9yX21lc3NhZ2UihwIKC0Vycm9yUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEhIKCmVycm9yX2NvZGUYBCABKAkSFQoNZXJyb3JfbWVzc2FnZRgFIAEoCRItCgdkZXRhaWxzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi8KC29jY3VycmVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZGV0YWlscyKGAgoMU3RhdHVzVXBkYXRlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSPQoNY3VycmVudF9zdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USFAoHbWVzc2FnZRgEIAEoCUgAiAEBEi0KB21ldHJpY3MYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCCgoIX21ldHJpY3Mi0gMKEVNldHRsZW1lbnRDb21tYW5kEkoKDGNvbW1hbmRfdHlwZRgBIAEoDjI0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50Q29tbWFuZC5Db21tYW5kVHlwZRITCgtwcm9wb3NhbF9pZBgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJEjAKCnBhcmFtZXRlcnMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoKZXhlY3V0ZV9ieRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi0wEKC0NvbW1hbmRUeXBlEhwKGENPTU1BTkRfVFlQRV9VTlNQRUNJRklFRBAAEiQKIENPTU1BTkRfVFlQRV9DUkVBVEVfRFZQX1BST1BPU0FMEAESGwoXQ09NTUFORF9UWVBFX0FDQ0VQVF9EVlAQAhIZChVDT01NQU5EX1RZUEVfQUxMT0NBVEUQAxIXChNDT01NQU5EX1RZUEVfU0VUVExFEAQSFwoTQ09NTUFORF9UWVBFX0NBTkNFTBAFEhYKEkNPTU1BTkRfVFlQRV9SRVRSWRAGQg0KC19wYXJhbWV0ZXJzIt8DCg9TZXR0bGVtZW50UXVlcnkSRAoKcXVlcnlfdHlwZRgBIAEoDjIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UXVlcnkuUXVlcnlUeXBlEhUKCHBhcnR5X2lkGAIgASgJSACIAQESGAoLY29udHJhY3RfaWQYAyABKAlIAYgBARIaCg1pbnN0cnVtZW50X2lkGAQgASgJSAKIAQESMAoKcGFyYW1ldGVycxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBASLIAQoJUXVlcnlUeXBlEhoKFlFVRVJZX1RZUEVfVU5TUEVDSUZJRUQQABIbChdRVUVSWV9UWVBFX0dFVF9IT0xESU5HUxABEh8KG1FVRVJZX1RZUEVfR0VUX1VTRVJfU0VSVklDRRACEhsKF1FVRVJZX1RZUEVfR0VUX0NPTlRSQUNUEAMSJAogUVVFUllfVFlQRV9HRVRfQUxMT0NBVElPTl9TVEFUVVMQBBIeChpRVUVSWV9UWVBFX0NIRUNLX0xJUVVJRElUWRAFQgsKCV9wYXJ0eV9pZEIOCgxfY29udHJhY3RfaWRCEAoOX2luc3RydW1lbnRfaWRCDQoLX3BhcmFtZXRlcnMirgEKElNldHRsZW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhQKB21lc3NhZ2UYAiABKAlIAIgBARIqCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjAKDHJlc3BvbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCBwoFX2RhdGEigQEKGkdldFBlbmRpbmdQcm9wb3NhbHNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBAUIICgZfbGltaXQicQobR2V0UGVuZGluZ1Byb3Bvc2Fsc1Jlc3BvbnNlEkMKCXByb3Bvc2FscxgBIAMoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlEg0KBXRvdGFsGAIgASgNImgKGkdldFNldHRsZW1lbnRTdGF0dXNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSFQoNc2V0dGxlbWVudF9pZBgCIAEoCSLgAwobR2V0U2V0dGxlbWVudFN0YXR1c1Jlc3BvbnNlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIUCgdkdnBfY2lkGAUgASgJSAGIAQESIQoUYWxsb2NhdGlvbl9idXllcl9jaWQYBiABKAlIAogBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYByABKAlIA4gBARIcCg9zZXR0bGVkX2R2cF9jaWQYCCABKAlIBIgBARIaCg1lcnJvcl9tZXNzYWdlGAkgASgJSAWIAQESLgoKdXBkYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX2R2cF9wcm9wb3NhbF9jaWRCCgoIX2R2cF9jaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWRCEgoQX3NldHRsZWRfZHZwX2NpZEIQCg5fZXJyb3JfbWVzc2FnZSKVAQocU3VibWl0UHJlY29uZmlybWF0aW9uUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEkAKCGRlY2lzaW9uGAIgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uIsYKCh9VcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSGAoQZXhwZWN0ZWRfdmVyc2lvbhgDIAEoBBIdChBkdnBfcHJvcG9zYWxfY2lkGAQgASgJSACIAQESIwoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgFIAEoCUgBiAEBEhQKB2R2cF9jaWQYBiABKAlIAogBARIaCg1kdnBfdXBkYXRlX2lkGAcgASgJSAOIAQESIQoUYWxsb2NhdGlvbl9idXllcl9jaWQYCCABKAlIBIgBARInChphbGxvY2F0aW9uX2J1eWVyX3VwZGF0ZV9pZBgJIAEoCUgFiAEBEiIKFWFsbG9jYXRpb25fc2VsbGVyX2NpZBgKIAEoCUgGiAEBEigKG2FsbG9jYXRpb25fc2VsbGVyX3VwZGF0ZV9pZBgLIAEoCUgHiAEBEhwKD3NldHRsZWRfZHZwX2NpZBgMIAEoCUgIiAEBEiEKFHNldHRsZW1lbnRfdXBkYXRlX2lkGA0gASgJSAmIAQESKQocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgOIAEoCUgKiAEBEj4KCW5ld19zdGFnZRgPIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2VIC4gBARIaCg1lcnJvcl9tZXNzYWdlGBAgASgJSAyIAQESLgoIbWV0YWRhdGEYESABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SA2IAQESGwoOYnV5ZXJfZmVlX3NlbnQYEiABKAhIDogBARIcCg9zZWxsZXJfZmVlX3NlbnQYEyABKAhID4gBARIgChNidXllcl9mZWVfdXBkYXRlX2lkGBQgASgJSBCIAQESIQoUc2VsbGVyX2ZlZV91cGRhdGVfaWQYFSABKAlIEYgBARI6ChFidXllcl9mZWVfcGFpZF9hdBgWIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIEogBARI7ChJzZWxsZXJfZmVlX3BhaWRfYXQYFyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSBOIAQFCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQh0KG19hbGxvY2F0aW9uX2J1eWVyX3VwZGF0ZV9pZEIYChZfYWxsb2NhdGlvbl9zZWxsZXJfY2lkQh4KHF9hbGxvY2F0aW9uX3NlbGxlcl91cGRhdGVfaWRCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCDAoKX25ld19zdGFnZUIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCEQoPX2J1eWVyX2ZlZV9zZW50QhIKEF9zZWxsZXJfZmVlX3NlbnRCFgoUX2J1eWVyX2ZlZV91cGRhdGVfaWRCFwoVX3NlbGxlcl9mZWVfdXBkYXRlX2lkQhQKEl9idXllcl9mZWVfcGFpZF9hdEIVChNfc2VsbGVyX2ZlZV9wYWlkX2F0IpgBCiBVcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSEwoLbmV3X3ZlcnNpb24YAyABKAQSPQoNY3VycmVudF9zdGFnZRgEIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2UieQoYRGlzY2xvc2VkQ29udHJhY3RNZXNzYWdlEhMKC2NvbnRyYWN0X2lkGAEgASgJEhMKC3RlbXBsYXRlX2lkGAIgASgJEhoKEmNyZWF0ZWRfZXZlbnRfYmxvYhgDIAEoCRIXCg9zeW5jaHJvbml6ZXJfaWQYBCABKAkiqwEKHFNhdmVEaXNjbG9zZWRDb250cmFjdFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRJBCghjb250cmFjdBgDIAEoCzIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EaXNjbG9zZWRDb250cmFjdE1lc3NhZ2UiQQodU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJIoYBChxHZXREaXNjbG9zZWRDb250cmFjdHNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSEgoFb3duZXIYAyABKAlIAIgBAUIICgZfb3duZXIiYwodR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVzcG9uc2USQgoJY29udHJhY3RzGAEgAygLMi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLkRpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZSLcAgoXUmVjb3JkU2V0dGxlbWVudFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYAyABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBCABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgFIAEoCRIUCgdkdnBfY2lkGAYgASgJSACIAQESIQoUYWxsb2NhdGlvbl9idXllcl9jaWQYByABKAlIAYgBARIiChVhbGxvY2F0aW9uX3NlbGxlcl9jaWQYCCABKAlIAogBAUIKCghfZHZwX2NpZEIXChVfYWxsb2NhdGlvbl9idXllcl9jaWRCGAoWX2FsbG9jYXRpb25fc2VsbGVyX2NpZCJTChhSZWNvcmRTZXR0bGVtZW50UmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEhUKDXNldHRsZW1lbnRfaWQYAyABKAkitgkKGFJlY29yZFRyYW5zYWN0aW9uUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEiwKBnVwZGF0ZRgWIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBARIYChBkYW1sX3RlbXBsYXRlX2lkGBcgASgJEhMKC2RhbWxfY2hvaWNlGBggASgJEjIKDGRhbWxfY2hvaWNlcxgZIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXMiVQoZUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSFgoOdHJhbnNhY3Rpb25faWQYAyABKAQikQMKHEdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIZCgxzZW5kZXJfcGFydHkYAiABKAlIAIgBARI8Cgd0eF90eXBlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZUgBiAEBEiMKFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYBCABKAlIAogBARI9CgZyZXN1bHQYBSABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHRIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg8KDV9zZW5kZXJfcGFydHlCCgoIX3R4X3R5cGVCGQoXX3NldHRsZW1lbnRfcHJvcG9zYWxfaWRCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJ0Ch1HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRJECgx0cmFuc2FjdGlvbnMYASADKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25IaXN0b3J5RW50cnkSDQoFdG90YWwYAiABKA0ivAkKF1RyYW5zYWN0aW9uSGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEi4KCmNyZWF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKBnVwZGF0ZRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBARIYChBkYW1sX3RlbXBsYXRlX2lkGBggASgJEhMKC2RhbWxfY2hvaWNlGBkgASgJEjIKDGRhbWxfY2hvaWNlcxgaIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXMqhQQKD1NldHRsZW1lbnRTdGFnZRIgChxTRVRUTEVNRU5UX1NUQUdFX1VOU1BFQ0lGSUVEEAASJgoiU0VUVExFTUVOVF9TVEFHRV9QUk9QT1NBTF9SRUNFSVZFRBABEiwKKFNFVFRMRU1FTlRfU1RBR0VfUFJFQ09ORklSTUFUSU9OX1BFTkRJTkcQAhIhCh1TRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1FRBADEioKJlNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFUSU5HEAQSKQolU0VUVExFTUVOVF9TVEFHRV9EVlBfUFJPUE9TQUxfQ1JFQVRFRBAFEiIKHlNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVElORxAGEiEKHVNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVEVEEAcSHwobU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FUSU5HEAgSHgoaU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FURUQQCRIdChlTRVRUTEVNRU5UX1NUQUdFX1NFVFRMSU5HEAoSHAoYU0VUVExFTUVOVF9TVEFHRV9TRVRUTEVEEAsSGwoXU0VUVExFTUVOVF9TVEFHRV9GQUlMRUQQDBIeChpTRVRUTEVNRU5UX1NUQUdFX0NBTkNFTExFRBANKo0BChdQcmVjb25maXJtYXRpb25SZXNwb25zZRIoCiRQUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfVU5TUEVDSUZJRUQQABIjCh9QUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfQUNDRVBUEAESIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1JFSkVDVBACKm0KCVBhcnR5Um9sZRIaChZQQVJUWV9ST0xFX1VOU1BFQ0lGSUVEEAASFAoQUEFSVFlfUk9MRV9CVVlFUhABEhUKEVBBUlRZX1JPTEVfU0VMTEVSEAISFwoTUEFSVFlfUk9MRV9PUEVSQVRPUhADKvwDCg9UcmFuc2FjdGlvblR5cGUSIAocVFJBTlNBQ1RJT05fVFlQRV9VTlNQRUNJRklFRBAAEikKJVRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX1JFUVVFU1QQARIwCixUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUX0FDQ0VQVBACEigKJFRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX0NBTkNFTBADEiAKHFRSQU5TQUNUSU9OX1RZUEVfRFZQX1BST1BPU0UQBBIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9BQ0NFUFQQBRIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9DQU5DRUwQBhIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9TRVRUTEUQBxIdChlUUkFOU0FDVElPTl9UWVBFX0FMTE9DQVRFEAgSJAogVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURV9DQU5DRUwQCRIhCh1UUkFOU0FDVElPTl9UWVBFX0ZFRV9UUkFOU0ZFUhAKEhoKFlRSQU5TQUNUSU9OX1RZUEVfTUVSR0UQCxIbChdUUkFOU0FDVElPTl9UWVBFX1VOTE9DSxAMEhoKFlRSQU5TQUNUSU9OX1RZUEVfT1RIRVIQDSqIAQoKU2VuZGVyVHlwZRIbChdTRU5ERVJfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFNFTkRFUl9UWVBFX09QRVJBVE9SEAESFAoQU0VOREVSX1RZUEVfVVNFUhACEhUKEVNFTkRFUl9UWVBFX0JVWUVSEAMSFgoSU0VOREVSX1RZUEVfU0VMTEVSEAQqlgEKEVRyYW5zYWN0aW9uUmVzdWx0EiIKHlRSQU5TQUNUSU9OX1JFU1VMVF9VTlNQRUNJRklFRBAAEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9QRU5ESU5HEAESHgoaVFJBTlNBQ1RJT05fUkVTVUxUX1NVQ0NFU1MQAhIdChlUUkFOU0FDVElPTl9SRVNVTFRfRkFJTEVEEAMy8wkKEVNldHRsZW1lbnRTZXJ2aWNlEnIKEFNldHRsZW1lbnRTdHJlYW0SLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uVG9TZXJ2ZXJNZXNzYWdlGiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNlcnZlclRvQ2FudG9uTWVzc2FnZSgBMAESfAoTR2V0UGVuZGluZ1Byb3Bvc2FscxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USfAoTR2V0U2V0dGxlbWVudFN0YXR1cxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USZAoVU3VibWl0UHJlY29uZmlybWF0aW9uEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSiwEKGFVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbBI2LnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVTZXR0bGVtZW50UHJvcG9zYWxSZXF1ZXN0Gjcuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVNldHRsZW1lbnRQcm9wb3NhbFJlc3BvbnNlEoIBChVTYXZlRGlzY2xvc2VkQ29udHJhY3QSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TYXZlRGlzY2xvc2VkQ29udHJhY3RSZXNwb25zZRKCAQoVR2V0RGlzY2xvc2VkQ29udHJhY3RzEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldERpc2Nsb3NlZENvbnRyYWN0c1JlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVzcG9uc2UScwoQUmVjb3JkU2V0dGxlbWVudBIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50UmVxdWVzdBovLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50UmVzcG9uc2USdgoRUmVjb3JkVHJhbnNhY3Rpb24SLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkVHJhbnNhY3Rpb25SZXF1ZXN0GjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFRyYW5zYWN0aW9uUmVzcG9uc2USggEKFUdldFRyYW5zYWN0aW9uSGlzdG9yeRIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFRyYW5zYWN0aW9uSGlzdG9yeVJlc3BvbnNlQjVaM2dpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87c2V0dGxlbWVudGIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
15
+ fileDesc("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAingEKFFNldHRsZW1lbnRJbnN0cnVtZW50EhUKDWluc3RydW1lbnRfaWQYASABKAkSDgoGc3ltYm9sGAIgASgJEhAKCHJlZ2lzdHJ5GAMgASgJEhAKCHF1YW50aXR5GAQgASgJEi4KCG1ldGFkYXRhGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQgsKCV9tZXRhZGF0YSKZBQoZU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhEKCW1hcmtldF9pZBgDIAEoCRITCgtidXllcl9wYXJ0eRgEIAEoCRIUCgxzZWxsZXJfcGFydHkYBSABKAkSRAoPYmFzZV9pbnN0cnVtZW50GAYgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EkUKEHF1b3RlX2luc3RydW1lbnQYByABKAsyKy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEluc3RydW1lbnQSGAoQc2V0dGxlbWVudF9wcmljZRgIIAEoCRIzCg9hbGxvY2F0ZV9iZWZvcmUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjEKDXNldHRsZV9iZWZvcmUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi4KCmNyZWF0ZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiAKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgNIAEoCRIhChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA4gASgJEicKH2FsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDyABKAkSKAogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYECABKAlCCwoJX21ldGFkYXRhIokCChZQcmVjb25maXJtYXRpb25SZXF1ZXN0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQgoIcHJvcG9zYWwYAyABKAsyMC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFByb3Bvc2FsTWVzc2FnZRIYChByZXF1ZXN0aW5nX3BhcnR5GAQgASgJEi4KCnJlc3BvbmRfYnkYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKBXRlcm1zGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBQggKBl90ZXJtcyK/AgoXUHJlY29uZmlybWF0aW9uRGVjaXNpb24SEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRJACghyZXNwb25zZRgDIAEoDjIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25SZXNwb25zZRIdChByZWplY3Rpb25fcmVhc29uGAQgASgJSACIAQESMAoKY29uZGl0aW9ucxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIRCglzaWduZWRfYnkYBiABKAkSLgoKZGVjaWRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb25CDQoLX2NvbmRpdGlvbnMi2AEKEkR2cENvbnRyYWN0Q3JlYXRlZBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEhgKEGR2cF9wcm9wb3NhbF9jaWQYAyABKAkSHgoWZHZwX3Byb3Bvc2FsX3VwZGF0ZV9pZBgEIAEoCRIWCg5wcm9wb3Nlcl9wYXJ0eRgFIAEoCRIUCgxjb3VudGVycGFydHkYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAirwEKE0R2cENvbnRyYWN0QWNjZXB0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdkdnBfY2lkGAMgASgJEhUKDWR2cF91cGRhdGVfaWQYBCABKAkSEwoLYWNjZXB0ZWRfYnkYBSABKAkSLwoLYWNjZXB0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wItsCChBBbGxvY2F0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNAoKcGFydHlfcm9sZRgDIAEoDjIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QYXJ0eVJvbGUSEAoIcGFydHlfaWQYBCABKAkSFgoOYWxsb2NhdGlvbl9jaWQYBSABKAkSHAoUYWxsb2NhdGlvbl91cGRhdGVfaWQYBiABKAkSFQoNaW5zdHJ1bWVudF9pZBgHIAEoCRIQCghxdWFudGl0eRgIIAEoCRIUCgxpc19hbGxvY2F0ZWQYCSABKAgSGgoNZXJyb3JfbWVzc2FnZRgKIAEoCUgAiAEBEjAKDGFsbG9jYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2Vycm9yX21lc3NhZ2UiqgIKGVNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXMSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdkdnBfY2lkGAMgASgJEhcKD3NldHRsZWRfZHZwX2NpZBgEIAEoCRIcChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgFIAEoCRIkChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAYgASgJEhUKDWlzX3N1Y2Nlc3NmdWwYByABKAgSGgoNZXJyb3JfbWVzc2FnZRgIIAEoCUgAiAEBEi4KCnNldHRsZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIooBCg9Vc2VyU2VydmljZUluZm8SEAoIcGFydHlfaWQYASABKAkSGAoQdXNlcl9zZXJ2aWNlX2NpZBgCIAEoCRIbChNvcGVyYXRvcl9jb25maWdfY2lkGAMgASgJEi4KCmNyZWF0ZWRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIvkBChNTZXR0bGVtZW50SGFuZHNoYWtlEjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEQoJcGFydHlfaWRzGAIgAygJEj0KDXVzZXJfc2VydmljZXMYAyADKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVXNlclNlcnZpY2VJbmZvEhYKDm9wZXJhdG9yX3BhcnR5GAQgASgJEjIKDGNhcGFiaWxpdGllcxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIPCg1fY2FwYWJpbGl0aWVzIrgBCgxIYW5kc2hha2VBY2sSEAoIYWNjZXB0ZWQYASABKAgSHQoQcmVqZWN0aW9uX3JlYXNvbhgCIAEoCUgAiAEBEhIKCnNlc3Npb25faWQYAyABKAkSHQoVc3VwcG9ydGVkX2luc3RydW1lbnRzGAQgAygJEi8KC3NlcnZlcl90aW1lGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEITChFfcmVqZWN0aW9uX3JlYXNvbiJnCglIZWFydGJlYXQSEgoKc2Vzc2lvbl9pZBgBIAEoCRItCgl0aW1lc3RhbXAYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD3NlcXVlbmNlX251bWJlchgDIAEoBCJnChVMaXF1aWRpdHlQcm92aWRlclBpbmcSHwoXbGlxdWlkaXR5X3Byb3ZpZGVyX25hbWUYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKoAQoVTGlxdWlkaXR5UHJvdmlkZXJQb25nEh8KF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgSGgoNZXJyb3JfbWVzc2FnZRgDIAEoCUgAiAEBEi8KC3NlcnZlcl90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSLbBgoVU2VydmVyVG9DYW50b25NZXNzYWdlEhIKCnNlc3Npb25faWQYASABKAkSFwoPc2VxdWVuY2VfbnVtYmVyGAIgASgEEjwKDWhhbmRzaGFrZV9hY2sYAyABKAsyIy5zaWx2YW5hLnNldHRsZW1lbnQudjEuSGFuZHNoYWtlQWNrSAASNQoJaGVhcnRiZWF0GAQgASgLMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhlYXJ0YmVhdEgAEkQKCHByb3Bvc2FsGAUgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2VIABJQChdwcmVjb25maXJtYXRpb25fcmVxdWVzdBgGIAEoCzItLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25SZXF1ZXN0SAASQAoLZHZwX2NyZWF0ZWQYByABKAsyKS5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQ29udHJhY3RDcmVhdGVkSAASQgoMZHZwX2FjY2VwdGVkGAggASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0QWNjZXB0ZWRIABJEChFhbGxvY2F0aW9uX3N0YXR1cxgJIAEoCzInLnNpbHZhbmEuc2V0dGxlbWVudC52MS5BbGxvY2F0aW9uU3RhdHVzSAASTQoRc2V0dGxlbWVudF9zdGF0dXMYCiABKAsyMC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV4ZWN1dGlvblN0YXR1c0gAEjsKB2NvbW1hbmQYCyABKAsyKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudENvbW1hbmRIABI3CgVxdWVyeRgMIAEoCzImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UXVlcnlIABI/CgdscF9wb25nGA4gASgLMiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkxpcXVpZGl0eVByb3ZpZGVyUG9uZ0gAEisKB3NlbnRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgkKB21lc3NhZ2UisQYKFUNhbnRvblRvU2VydmVyTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI/CgloYW5kc2hha2UYAyABKAsyKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEhhbmRzaGFrZUgAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJJCg9wcmVjb25maXJtYXRpb24YBSABKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uRGVjaXNpb25IABJACgxkdnBfY3JlYXRpb24YBiABKAsyKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQ3JlYXRpb25SZXBvcnRIABJECg5kdnBfYWNjZXB0YW5jZRgHIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBBY2NlcHRhbmNlUmVwb3J0SAASPQoKYWxsb2NhdGlvbhgIIAEoCzInLnNpbHZhbmEuc2V0dGxlbWVudC52MS5BbGxvY2F0aW9uUmVwb3J0SAASPQoKc2V0dGxlbWVudBgJIAEoCzInLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UmVwb3J0SAASPQoIcmVzcG9uc2UYCiABKAsyKS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFJlc3BvbnNlSAASMwoFZXJyb3IYCyABKAsyIi5zaWx2YW5hLnNldHRsZW1lbnQudjEuRXJyb3JSZXBvcnRIABI1CgZzdGF0dXMYDCABKAsyIy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU3RhdHVzVXBkYXRlSAASPwoHbHBfcGluZxgOIAEoCzIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5MaXF1aWRpdHlQcm92aWRlclBpbmdIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIqICChFEdnBDcmVhdGlvblJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHQoQZHZwX3Byb3Bvc2FsX2NpZBgEIAEoCUgAiAEBEiMKFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBSABKAlIAYgBARIaCg1lcnJvcl9tZXNzYWdlGAYgASgJSAKIAQESLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX2R2cF9wcm9wb3NhbF9jaWRCGQoXX2R2cF9wcm9wb3NhbF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2UigQIKE0R2cEFjY2VwdGFuY2VSZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEhQKB2R2cF9jaWQYBCABKAlIAIgBARIaCg1kdnBfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi8KC2FjY2VwdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZHZwX2NpZEIQCg5fZHZwX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSLnAgoQQWxsb2NhdGlvblJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEg8KB3N1Y2Nlc3MYBCABKAgSGwoOYWxsb2NhdGlvbl9jaWQYBSABKAlIAIgBARIhChRhbGxvY2F0aW9uX3VwZGF0ZV9pZBgGIAEoCUgBiAEBEhQKDGhvbGRpbmdfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAKIAQESMAoMYWxsb2NhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIRCg9fYWxsb2NhdGlvbl9jaWRCFwoVX2FsbG9jYXRpb25fdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIv4CChBTZXR0bGVtZW50UmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIcCg9zZXR0bGVkX2R2cF9jaWQYBCABKAlIAIgBARIhChRzZXR0bGVtZW50X3VwZGF0ZV9pZBgFIAEoCUgBiAEBEikKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBiABKAlIAogBARIVCg1hcmNoaXZlZF9jaWRzGAcgAygJEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIA4gBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfc2V0dGxlZF9kdnBfY2lkQhcKFV9zZXR0bGVtZW50X3VwZGF0ZV9pZEIfCh1fc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldEIQCg5fZXJyb3JfbWVzc2FnZSKHAgoLRXJyb3JSZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI1CgVzdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USEgoKZXJyb3JfY29kZRgEIAEoCRIVCg1lcnJvcl9tZXNzYWdlGAUgASgJEi0KB2RldGFpbHMYBiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLwoLb2NjdXJyZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgoKCF9kZXRhaWxzIoYCCgxTdGF0dXNVcGRhdGUSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI9Cg1jdXJyZW50X3N0YWdlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRTdGFnZRIUCgdtZXNzYWdlGAQgASgJSACIAQESLQoHbWV0cmljcxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAYgBARIuCgp1cGRhdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUIKCghfbWV0cmljcyLSAwoRU2V0dGxlbWVudENvbW1hbmQSSgoMY29tbWFuZF90eXBlGAEgASgOMjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kLkNvbW1hbmRUeXBlEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhUKDXNldHRsZW1lbnRfaWQYAyABKAkSMAoKcGFyYW1ldGVycxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIuCgpleGVjdXRlX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLTAQoLQ29tbWFuZFR5cGUSHAoYQ09NTUFORF9UWVBFX1VOU1BFQ0lGSUVEEAASJAogQ09NTUFORF9UWVBFX0NSRUFURV9EVlBfUFJPUE9TQUwQARIbChdDT01NQU5EX1RZUEVfQUNDRVBUX0RWUBACEhkKFUNPTU1BTkRfVFlQRV9BTExPQ0FURRADEhcKE0NPTU1BTkRfVFlQRV9TRVRUTEUQBBIXChNDT01NQU5EX1RZUEVfQ0FOQ0VMEAUSFgoSQ09NTUFORF9UWVBFX1JFVFJZEAZCDQoLX3BhcmFtZXRlcnMi3wMKD1NldHRsZW1lbnRRdWVyeRJECgpxdWVyeV90eXBlGAEgASgOMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRRdWVyeS5RdWVyeVR5cGUSFQoIcGFydHlfaWQYAiABKAlIAIgBARIYCgtjb250cmFjdF9pZBgDIAEoCUgBiAEBEhoKDWluc3RydW1lbnRfaWQYBCABKAlIAogBARIwCgpwYXJhbWV0ZXJzGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgDiAEBIsgBCglRdWVyeVR5cGUSGgoWUVVFUllfVFlQRV9VTlNQRUNJRklFRBAAEhsKF1FVRVJZX1RZUEVfR0VUX0hPTERJTkdTEAESHwobUVVFUllfVFlQRV9HRVRfVVNFUl9TRVJWSUNFEAISGwoXUVVFUllfVFlQRV9HRVRfQ09OVFJBQ1QQAxIkCiBRVUVSWV9UWVBFX0dFVF9BTExPQ0FUSU9OX1NUQVRVUxAEEh4KGlFVRVJZX1RZUEVfQ0hFQ0tfTElRVUlESVRZEAVCCwoJX3BhcnR5X2lkQg4KDF9jb250cmFjdF9pZEIQCg5faW5zdHJ1bWVudF9pZEINCgtfcGFyYW1ldGVycyKuAQoSU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSFAoHbWVzc2FnZRgCIAEoCUgAiAEBEioKBGRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESMAoMcmVzcG9uZGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfbWVzc2FnZUIHCgVfZGF0YSKBAQoaR2V0UGVuZGluZ1Byb3Bvc2Fsc1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIQCghwYXJ0eV9pZBgCIAEoCRISCgVsaW1pdBgDIAEoDUgAiAEBQggKBl9saW1pdCJxChtHZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USQwoJcHJvcG9zYWxzGAEgAygLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USDQoFdG90YWwYAiABKA0iaAoaR2V0U2V0dGxlbWVudFN0YXR1c1JlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIVCg1zZXR0bGVtZW50X2lkGAIgASgJIqcDCg1EdnBTdGVwU3RhdHVzEhEKCXN0ZXBfbmFtZRgBIAEoCRI4CgZzdGF0dXMYAiABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1c0VudW0SGAoLY29udHJhY3RfaWQYAyABKAlIAIgBARIWCgl1cGRhdGVfaWQYBCABKAlIAYgBARIzCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgCiAEBEhoKDWVycm9yX21lc3NhZ2UYBiABKAlIA4gBARIZCgxjb25maXJtZWRfYnkYByABKAlIBIgBARJFChFjb25maXJtZWRfYnlfcm9sZRgIIAEoDjIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRlZEJ5Um9sZUgFiAEBQg4KDF9jb250cmFjdF9pZEIMCgpfdXBkYXRlX2lkQg0KC191cGRhdGVkX2F0QhAKDl9lcnJvcl9tZXNzYWdlQg8KDV9jb25maXJtZWRfYnlCFAoSX2NvbmZpcm1lZF9ieV9yb2xlIpIIChtHZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI1CgVzdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USGgoNZXJyb3JfbWVzc2FnZRgEIAEoCUgAiAEBEi4KCnVwZGF0ZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEkYKGGR2cF9wcm9jZXNzaW5nX2ZlZV9idXllchgKIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEkcKGWR2cF9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYCyABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxJNCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGAwgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSTgogYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9zZWxsZXIYDSABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI5CgtkdnBfcmVxdWVzdBgOIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEjgKCmR2cF9hY2NlcHQYDyABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI+ChBhbGxvY2F0aW9uX2J1eWVyGBAgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSPwoRYWxsb2NhdGlvbl9zZWxsZXIYESABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI4CgpzZXR0bGVtZW50GBIgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSSAoadHJhZmZpY19jb21wZW5zYXRpb25fYnV5ZXIYEyABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxJJCht0cmFmZmljX2NvbXBlbnNhdGlvbl9zZWxsZXIYFCABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI9Cg9wcmVjb25maXJtYXRpb24YFSABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1c0IQCg5fZXJyb3JfbWVzc2FnZSKVAQocU3VibWl0UHJlY29uZmlybWF0aW9uUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEkAKCGRlY2lzaW9uGAIgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uInkKGERpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZRITCgtjb250cmFjdF9pZBgBIAEoCRITCgt0ZW1wbGF0ZV9pZBgCIAEoCRIaChJjcmVhdGVkX2V2ZW50X2Jsb2IYAyABKAkSFwoPc3luY2hyb25pemVyX2lkGAQgASgJIqsBChxTYXZlRGlzY2xvc2VkQ29udHJhY3RSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSQQoIY29udHJhY3QYAyABKAsyLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuRGlzY2xvc2VkQ29udHJhY3RNZXNzYWdlIkEKHVNhdmVEaXNjbG9zZWRDb250cmFjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCSKGAQocR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhIKBW93bmVyGAMgASgJSACIAQFCCAoGX293bmVyImMKHUdldERpc2Nsb3NlZENvbnRyYWN0c1Jlc3BvbnNlEkIKCWNvbnRyYWN0cxgBIAMoCzIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EaXNjbG9zZWRDb250cmFjdE1lc3NhZ2Ui3AIKF1JlY29yZFNldHRsZW1lbnRSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSFwoPc2V0dGxlZF9kdnBfY2lkGAMgASgJEhwKFHNldHRsZW1lbnRfdXBkYXRlX2lkGAQgASgJEiQKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBSABKAkSFAoHZHZwX2NpZBgGIAEoCUgAiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGAcgASgJSAGIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGAggASgJSAKIAQFCCgoIX2R2cF9jaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWQiUwoYUmVjb3JkU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJIrYJChhSZWNvcmRUcmFuc2FjdGlvblJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBI3Cgd0eF90eXBlGAIgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZRIUCgxzZW5kZXJfcGFydHkYAyABKAkSNgoLc2VuZGVyX3R5cGUYBCABKA4yIS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VuZGVyVHlwZRIWCgl1cGRhdGVfaWQYBSABKAlIAIgBARIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSAGIAQESIwoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgHIAEoCUgCiAEBEhYKCW1hcmtldF9pZBgIIAEoCUgDiAEBEhkKDGNvdW50ZXJwYXJ0eRgJIAEoCUgEiAEBEhgKC2NvbnRyYWN0X2lkGAogASgJSAWIAQESGAoLY2hvaWNlX25hbWUYCyABKAlIBogBARITCgZhbW91bnQYDCABKAlIB4gBARIbCg5yZXdhcmRzX2Ftb3VudBgNIAEoCUgIiAEBEhoKDXJld2FyZHNfcm91bmQYDiABKARICYgBARIcCg90cmFmZmljX3JlcXVlc3QYDyABKARICogBARIdChB0cmFmZmljX3Jlc3BvbnNlGBAgASgESAuIAQESGgoNdHJhZmZpY190b3RhbBgRIAEoBEgMiAEBEiQKF2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkGBIgASgESA2IAQESOAoGcmVzdWx0GBMgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYFCABKAlIDogBARIuCghtZXRhZGF0YRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIsCgZ1cGRhdGUYFiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESGAoQZGFtbF90ZW1wbGF0ZV9pZBgXIAEoCRITCgtkYW1sX2Nob2ljZRgYIAEoCRIyCgxkYW1sX2Nob2ljZXMYGSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQFCDAoKX3VwZGF0ZV9pZEIQCg5fc3VibWlzc2lvbl9pZEIZChdfc2V0dGxlbWVudF9wcm9wb3NhbF9pZEIMCgpfbWFya2V0X2lkQg8KDV9jb3VudGVycGFydHlCDgoMX2NvbnRyYWN0X2lkQg4KDF9jaG9pY2VfbmFtZUIJCgdfYW1vdW50QhEKD19yZXdhcmRzX2Ftb3VudEIQCg5fcmV3YXJkc19yb3VuZEISChBfdHJhZmZpY19yZXF1ZXN0QhMKEV90cmFmZmljX3Jlc3BvbnNlQhAKDl90cmFmZmljX3RvdGFsQhoKGF9hY3Rpdml0eV9tYXJrZXJfY3JlYXRlZEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCCQoHX3VwZGF0ZUIPCg1fZGFtbF9jaG9pY2VzIlUKGVJlY29yZFRyYW5zYWN0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEhYKDnRyYW5zYWN0aW9uX2lkGAMgASgEIpEDChxHZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSGQoMc2VuZGVyX3BhcnR5GAIgASgJSACIAQESPAoHdHhfdHlwZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5UcmFuc2FjdGlvblR5cGVIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAQgASgJSAKIAQESPQoGcmVzdWx0GAUgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0SAOIAQESEgoFbGltaXQYBiABKA1IBIgBARITCgZvZmZzZXQYByABKA1IBYgBAUIPCg1fc2VuZGVyX3BhcnR5QgoKCF90eF90eXBlQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgkKB19yZXN1bHRCCAoGX2xpbWl0QgkKB19vZmZzZXQidAodR2V0VHJhbnNhY3Rpb25IaXN0b3J5UmVzcG9uc2USRAoMdHJhbnNhY3Rpb25zGAEgAygLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uSGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAIgASgNIrwJChdUcmFuc2FjdGlvbkhpc3RvcnlFbnRyeRIKCgJpZBgBIAEoBBI3Cgd0eF90eXBlGAIgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZRIUCgxzZW5kZXJfcGFydHkYAyABKAkSNgoLc2VuZGVyX3R5cGUYBCABKA4yIS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VuZGVyVHlwZRIWCgl1cGRhdGVfaWQYBSABKAlIAIgBARIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSAGIAQESIwoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgHIAEoCUgCiAEBEhYKCW1hcmtldF9pZBgIIAEoCUgDiAEBEhkKDGNvdW50ZXJwYXJ0eRgJIAEoCUgEiAEBEhgKC2NvbnRyYWN0X2lkGAogASgJSAWIAQESGAoLY2hvaWNlX25hbWUYCyABKAlIBogBARITCgZhbW91bnQYDCABKAlIB4gBARIbCg5yZXdhcmRzX2Ftb3VudBgNIAEoCUgIiAEBEhoKDXJld2FyZHNfcm91bmQYDiABKARICYgBARIcCg90cmFmZmljX3JlcXVlc3QYDyABKARICogBARIdChB0cmFmZmljX3Jlc3BvbnNlGBAgASgESAuIAQESGgoNdHJhZmZpY190b3RhbBgRIAEoBEgMiAEBEiQKF2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkGBIgASgESA2IAQESOAoGcmVzdWx0GBMgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYFCABKAlIDogBARIuCghtZXRhZGF0YRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIuCgpjcmVhdGVkX2F0GBYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCgZ1cGRhdGUYFyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESGAoQZGFtbF90ZW1wbGF0ZV9pZBgYIAEoCRITCgtkYW1sX2Nob2ljZRgZIAEoCRIyCgxkYW1sX2Nob2ljZXMYGiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQFCDAoKX3VwZGF0ZV9pZEIQCg5fc3VibWlzc2lvbl9pZEIZChdfc2V0dGxlbWVudF9wcm9wb3NhbF9pZEIMCgpfbWFya2V0X2lkQg8KDV9jb3VudGVycGFydHlCDgoMX2NvbnRyYWN0X2lkQg4KDF9jaG9pY2VfbmFtZUIJCgdfYW1vdW50QhEKD19yZXdhcmRzX2Ftb3VudEIQCg5fcmV3YXJkc19yb3VuZEISChBfdHJhZmZpY19yZXF1ZXN0QhMKEV90cmFmZmljX3Jlc3BvbnNlQhAKDl90cmFmZmljX3RvdGFsQhoKGF9hY3Rpdml0eV9tYXJrZXJfY3JlYXRlZEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGFCCQoHX3VwZGF0ZUIPCg1fZGFtbF9jaG9pY2VzIs8EChxSZWNvcmRTZXR0bGVtZW50RXZlbnRSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSEwoLcmVjb3JkZWRfYnkYAyABKAkSPwoQcmVjb3JkZWRfYnlfcm9sZRgEIAEoDjIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRlZEJ5Um9sZRI+CgpldmVudF90eXBlGAUgASgOMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFdmVudFR5cGUSGgoNc3VibWlzc2lvbl9pZBgGIAEoCUgAiAEBEhYKCXVwZGF0ZV9pZBgHIAEoCUgBiAEBEhgKC2NvbnRyYWN0X2lkGAggASgJSAKIAQESGAoLdGVtcGxhdGVfaWQYCSABKAlIA4gBARI8CgZyZXN1bHQYCiABKA4yLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50UmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYCyABKAlIBIgBARIuCghtZXRhZGF0YRgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIBYgBAUIQCg5fc3VibWlzc2lvbl9pZEIMCgpfdXBkYXRlX2lkQg4KDF9jb250cmFjdF9pZEIOCgxfdGVtcGxhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2VCCwoJX21ldGFkYXRhIlMKHVJlY29yZFNldHRsZW1lbnRFdmVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIQCghldmVudF9pZBgDIAEoBCLHAgobR2V0U2V0dGxlbWVudEhpc3RvcnlSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSQwoKZXZlbnRfdHlwZRgDIAEoDjIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRUeXBlSACIAQESQQoGcmVzdWx0GAQgASgOMiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFdmVudFJlc3VsdEgBiAEBEhIKBWxpbWl0GAUgASgNSAKIAQESEwoGb2Zmc2V0GAYgASgNSAOIAQFCDQoLX2V2ZW50X3R5cGVCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJsChxHZXRTZXR0bGVtZW50SGlzdG9yeVJlc3BvbnNlEj0KBmV2ZW50cxgBIAMoCzItLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50SGlzdG9yeUVudHJ5Eg0KBXRvdGFsGAIgASgNItAEChZTZXR0bGVtZW50SGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhMKC3JlY29yZGVkX2J5GAMgASgJEj8KEHJlY29yZGVkX2J5X3JvbGUYBCABKA4yJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkZWRCeVJvbGUSPgoKZXZlbnRfdHlwZRgFIAEoDjIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRUeXBlEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAIgBARIWCgl1cGRhdGVfaWQYByABKAlIAYgBARIYCgtjb250cmFjdF9pZBgIIAEoCUgCiAEBEhgKC3RlbXBsYXRlX2lkGAkgASgJSAOIAQESPAoGcmVzdWx0GAogASgOMiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFdmVudFJlc3VsdBIaCg1lcnJvcl9tZXNzYWdlGAsgASgJSASIAQESLgoIbWV0YWRhdGEYDCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAWIAQESLgoKY3JlYXRlZF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX3N1Ym1pc3Npb25faWRCDAoKX3VwZGF0ZV9pZEIOCgxfY29udHJhY3RfaWRCDgoMX3RlbXBsYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YSLZAgobVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSUAoKbmV3X3N0YXR1cxgDIAEoDjI8LnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVQcm9wb3NhbFN0YXR1c1JlcXVlc3QuTmV3U3RhdHVzEhoKDWVycm9yX21lc3NhZ2UYBCABKAlIAIgBASJwCglOZXdTdGF0dXMSGgoWTkVXX1NUQVRVU19VTlNQRUNJRklFRBAAEhYKEk5FV19TVEFUVVNfU0VUVExFRBABEhgKFE5FV19TVEFUVVNfQ0FOQ0VMTEVEEAISFQoRTkVXX1NUQVRVU19GQUlMRUQQA0IQCg5fZXJyb3JfbWVzc2FnZSJAChxVcGRhdGVQcm9wb3NhbFN0YXR1c1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCSKIAQogR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlcXVlc3QSPwoLY2FudG9uX2F1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGhIAIgBARITCgtwcm9wb3NhbF9pZBgDIAEoCUIOCgxfY2FudG9uX2F1dGgidgohR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlc3BvbnNlEg0KBWZvdW5kGAEgASgIEkIKCHByb3Bvc2FsGAIgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2UqhQQKD1NldHRsZW1lbnRTdGFnZRIgChxTRVRUTEVNRU5UX1NUQUdFX1VOU1BFQ0lGSUVEEAASJgoiU0VUVExFTUVOVF9TVEFHRV9QUk9QT1NBTF9SRUNFSVZFRBABEiwKKFNFVFRMRU1FTlRfU1RBR0VfUFJFQ09ORklSTUFUSU9OX1BFTkRJTkcQAhIhCh1TRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1FRBADEioKJlNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFUSU5HEAQSKQolU0VUVExFTUVOVF9TVEFHRV9EVlBfUFJPUE9TQUxfQ1JFQVRFRBAFEiIKHlNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVElORxAGEiEKHVNFVFRMRU1FTlRfU1RBR0VfRFZQX0FDQ0VQVEVEEAcSHwobU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FUSU5HEAgSHgoaU0VUVExFTUVOVF9TVEFHRV9BTExPQ0FURUQQCRIdChlTRVRUTEVNRU5UX1NUQUdFX1NFVFRMSU5HEAoSHAoYU0VUVExFTUVOVF9TVEFHRV9TRVRUTEVEEAsSGwoXU0VUVExFTUVOVF9TVEFHRV9GQUlMRUQQDBIeChpTRVRUTEVNRU5UX1NUQUdFX0NBTkNFTExFRBANKo0BChdQcmVjb25maXJtYXRpb25SZXNwb25zZRIoCiRQUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfVU5TUEVDSUZJRUQQABIjCh9QUkVDT05GSVJNQVRJT05fUkVTUE9OU0VfQUNDRVBUEAESIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1JFSkVDVBACKm0KCVBhcnR5Um9sZRIaChZQQVJUWV9ST0xFX1VOU1BFQ0lGSUVEEAASFAoQUEFSVFlfUk9MRV9CVVlFUhABEhUKEVBBUlRZX1JPTEVfU0VMTEVSEAISFwoTUEFSVFlfUk9MRV9PUEVSQVRPUhADKvwDCg9UcmFuc2FjdGlvblR5cGUSIAocVFJBTlNBQ1RJT05fVFlQRV9VTlNQRUNJRklFRBAAEikKJVRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX1JFUVVFU1QQARIwCixUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUX0FDQ0VQVBACEigKJFRSQU5TQUNUSU9OX1RZUEVfVVNFUl9TRVJWSUNFX0NBTkNFTBADEiAKHFRSQU5TQUNUSU9OX1RZUEVfRFZQX1BST1BPU0UQBBIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9BQ0NFUFQQBRIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9DQU5DRUwQBhIfChtUUkFOU0FDVElPTl9UWVBFX0RWUF9TRVRUTEUQBxIdChlUUkFOU0FDVElPTl9UWVBFX0FMTE9DQVRFEAgSJAogVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURV9DQU5DRUwQCRIhCh1UUkFOU0FDVElPTl9UWVBFX0ZFRV9UUkFOU0ZFUhAKEhoKFlRSQU5TQUNUSU9OX1RZUEVfTUVSR0UQCxIbChdUUkFOU0FDVElPTl9UWVBFX1VOTE9DSxAMEhoKFlRSQU5TQUNUSU9OX1RZUEVfT1RIRVIQDSqdAQoKU2VuZGVyVHlwZRIbChdTRU5ERVJfVFlQRV9VTlNQRUNJRklFRBAAEhgKFFNFTkRFUl9UWVBFX09QRVJBVE9SEAESFAoQU0VOREVSX1RZUEVfVVNFUhACEhUKEVNFTkRFUl9UWVBFX0JVWUVSEAMSFgoSU0VOREVSX1RZUEVfU0VMTEVSEAQSEwoPU0VOREVSX1RZUEVfQVBQEAUqlgEKEVRyYW5zYWN0aW9uUmVzdWx0EiIKHlRSQU5TQUNUSU9OX1JFU1VMVF9VTlNQRUNJRklFRBAAEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9QRU5ESU5HEAESHgoaVFJBTlNBQ1RJT05fUkVTVUxUX1NVQ0NFU1MQAhIdChlUUkFOU0FDVElPTl9SRVNVTFRfRkFJTEVEEAMq8xMKE1NldHRsZW1lbnRFdmVudFR5cGUSJQohU0VUVExFTUVOVF9FVkVOVF9UWVBFX1VOU1BFQ0lGSUVEEAASPAo4U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9CVVlFUl9TVUJNSVRURUQQARI8CjhTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1BST0NFU1NJTkdfRkVFX0JVWUVSX0NPTVBMRVRFRBACEjsKN1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfQlVZRVJfUkVDRUlWRUQQAxIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfU1VCTUlUVEVEEAQSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX0NPTVBMRVRFRBAFEi8KK1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUkVRVUVTVF9XSVRORVNTRUQQBhIuCipTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfUkVKRUNURUQQBxIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfQ0FOQ0VMTEVEEAgSPQo5U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfU1VCTUlUVEVEEAkSPQo5U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfQ09NUExFVEVEEAoSPAo4U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfUkVDRUlWRUQQCxIuCipTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0FDQ0VQVF9TVUJNSVRURUQQDBIuCipTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0FDQ0VQVF9DT01QTEVURUQQDRIwCixTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0FDQ0VQVEVEX1dJVE5FU1NFRBAOEiYKIlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUkVKRUNURUQQDxInCiNTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1dJVEhEUkFXThAQEicKI1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfQ0FOQ0VMTEVEEBESQwo/U0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfQlVZRVJfU1VCTUlUVEVEEBISQwo/U0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfQlVZRVJfQ09NUExFVEVEEBMSQgo+U0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfQlVZRVJfUkVDRUlWRUQQFBI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9TVUJNSVRURUQQFRI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9DT01QTEVURUQQFhI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9XSVRORVNTRUQQFxI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9XSVRIRFJBV04QGBI0CjBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9CVVlFUl9DQU5DRUxMRUQQGRJECkBTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfU1VCTUlUVEVEEBoSRApAU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfU0VMTEVSX0NPTVBMRVRFRBAbEkMKP1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX1NFTExFUl9SRUNFSVZFRBAcEjUKMVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1NFTExFUl9TVUJNSVRURUQQHRI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfQ09NUExFVEVEEB4SNQoxU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fU0VMTEVSX1dJVE5FU1NFRBAfEjUKMVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1NFTExFUl9XSVRIRFJBV04QIBI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfQ0FOQ0VMTEVEECESLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX1NFVFRMRU1FTlRfU1VCTUlUVEVEECISLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX1NFVFRMRU1FTlRfQ09NUExFVEVEECMSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX1NFVFRMRU1FTlRfV0lUTkVTU0VEECQSPgo6U0VUVExFTUVOVF9FVkVOVF9UWVBFX1RSQUZGSUNfQ09NUEVOU0FUSU9OX0JVWUVSX1NVQk1JVFRFRBAlEj4KOlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9UUkFGRklDX0NPTVBFTlNBVElPTl9CVVlFUl9DT01QTEVURUQQJhI/CjtTRVRUTEVNRU5UX0VWRU5UX1RZUEVfVFJBRkZJQ19DT01QRU5TQVRJT05fU0VMTEVSX1NVQk1JVFRFRBAnEj8KO1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9UUkFGRklDX0NPTVBFTlNBVElPTl9TRUxMRVJfQ09NUExFVEVEECgSMwovU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9SRVFVRVNURUQQKRIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX0JVWUVSECoSMAosU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9TRUxMRVIQKxIzCi9TRVRUTEVNRU5UX0VWRU5UX1RZUEVfUFJFQ09ORklSTUFUSU9OX0NBTkNFTExFRBAsEiEKHVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9USU1FT1VUEC0qpwEKDlJlY29yZGVkQnlSb2xlEiAKHFJFQ09SREVEX0JZX1JPTEVfVU5TUEVDSUZJRUQQABIaChZSRUNPUkRFRF9CWV9ST0xFX0JVWUVSEAESGwoXUkVDT1JERURfQllfUk9MRV9TRUxMRVIQAhIdChlSRUNPUkRFRF9CWV9ST0xFX09QRVJBVE9SEAMSGwoXUkVDT1JERURfQllfUk9MRV9TWVNURU0QBCrTAQoVU2V0dGxlbWVudEV2ZW50UmVzdWx0EicKI1NFVFRMRU1FTlRfRVZFTlRfUkVTVUxUX1VOU1BFQ0lGSUVEEAASIwofU0VUVExFTUVOVF9FVkVOVF9SRVNVTFRfUEVORElORxABEiMKH1NFVFRMRU1FTlRfRVZFTlRfUkVTVUxUX1NVQ0NFU1MQAhIiCh5TRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9GQUlMRUQQAxIjCh9TRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9USU1FT1VUEAQqwwIKEUR2cFN0ZXBTdGF0dXNFbnVtEh8KG0RWUF9TVEVQX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF0RWUF9TVEVQX1NUQVRVU19QRU5ESU5HEAESHQoZRFZQX1NURVBfU1RBVFVTX1NVQk1JVFRFRBACEh0KGURWUF9TVEVQX1NUQVRVU19DT01QTEVURUQQAxIdChlEVlBfU1RFUF9TVEFUVVNfQ09ORklSTUVEEAQSGgoWRFZQX1NURVBfU1RBVFVTX0ZBSUxFRBAFEhwKGERWUF9TVEVQX1NUQVRVU19SRUpFQ1RFRBAGEh0KGURWUF9TVEVQX1NUQVRVU19XSVRIRFJBV04QBxIdChlEVlBfU1RFUF9TVEFUVVNfQ0FOQ0VMTEVEEAgSGwoXRFZQX1NURVBfU1RBVFVTX1RJTUVPVVQQCTL9DAoRU2V0dGxlbWVudFNlcnZpY2UScgoQU2V0dGxlbWVudFN0cmVhbRIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ub1NlcnZlck1lc3NhZ2UaLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VydmVyVG9DYW50b25NZXNzYWdlKAEwARJ8ChNHZXRQZW5kaW5nUHJvcG9zYWxzEjEuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFBlbmRpbmdQcm9wb3NhbHNSZXF1ZXN0GjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFBlbmRpbmdQcm9wb3NhbHNSZXNwb25zZRJ8ChNHZXRTZXR0bGVtZW50U3RhdHVzEjEuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRTdGF0dXNSZXF1ZXN0GjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRTdGF0dXNSZXNwb25zZRJkChVTdWJtaXRQcmVjb25maXJtYXRpb24SMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU3VibWl0UHJlY29uZmlybWF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRKCAQoVU2F2ZURpc2Nsb3NlZENvbnRyYWN0EjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNhdmVEaXNjbG9zZWRDb250cmFjdFJlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVzcG9uc2USggEKFUdldERpc2Nsb3NlZENvbnRyYWN0cxIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXREaXNjbG9zZWRDb250cmFjdHNSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldERpc2Nsb3NlZENvbnRyYWN0c1Jlc3BvbnNlEnMKEFJlY29yZFNldHRsZW1lbnQSLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkU2V0dGxlbWVudFJlcXVlc3QaLy5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkU2V0dGxlbWVudFJlc3BvbnNlEnYKEVJlY29yZFRyYW5zYWN0aW9uEi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFRyYW5zYWN0aW9uUmVxdWVzdBowLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRUcmFuc2FjdGlvblJlc3BvbnNlEoIBChVHZXRUcmFuc2FjdGlvbkhpc3RvcnkSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0VHJhbnNhY3Rpb25IaXN0b3J5UmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRKCAQoVUmVjb3JkU2V0dGxlbWVudEV2ZW50EjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRFdmVudFJlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkU2V0dGxlbWVudEV2ZW50UmVzcG9uc2USfwoUR2V0U2V0dGxlbWVudEhpc3RvcnkSMi5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0U2V0dGxlbWVudEhpc3RvcnlSZXF1ZXN0GjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRIaXN0b3J5UmVzcG9uc2USfwoUVXBkYXRlUHJvcG9zYWxTdGF0dXMSMi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXF1ZXN0GjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVByb3Bvc2FsU3RhdHVzUmVzcG9uc2USjgEKGUdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWQSNy5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlcXVlc3QaOC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0U2V0dGxlbWVudFByb3Bvc2FsQnlJZFJlc3BvbnNlQjVaM2dpdGh1Yi5jb20vU2lsdmFuYU9uZS9jYW50b24tYWdlbnQvcHJvdG87c2V0dGxlbWVudGIGcHJvdG8z", [file_google_protobuf_timestamp, file_google_protobuf_empty, file_google_protobuf_struct]);
16
16
 
17
17
  /**
18
18
  * Canton node authentication (using Canton party JWT)
@@ -176,6 +176,28 @@ export type SettlementProposalMessage = Message<"silvana.settlement.v1.Settlemen
176
176
  * @generated from field: google.protobuf.Timestamp created_at = 12;
177
177
  */
178
178
  createdAt?: Timestamp;
179
+
180
+ /**
181
+ * Processing fees (DECIMAL as string)
182
+ *
183
+ * @generated from field: string dvp_processing_fee_buyer = 13;
184
+ */
185
+ dvpProcessingFeeBuyer: string;
186
+
187
+ /**
188
+ * @generated from field: string dvp_processing_fee_seller = 14;
189
+ */
190
+ dvpProcessingFeeSeller: string;
191
+
192
+ /**
193
+ * @generated from field: string allocation_processing_fee_buyer = 15;
194
+ */
195
+ allocationProcessingFeeBuyer: string;
196
+
197
+ /**
198
+ * @generated from field: string allocation_processing_fee_seller = 16;
199
+ */
200
+ allocationProcessingFeeSeller: string;
179
201
  };
180
202
 
181
203
  /**
@@ -1576,273 +1598,215 @@ export const GetSettlementStatusRequestSchema: GenMessage<GetSettlementStatusReq
1576
1598
  messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1577
1599
 
1578
1600
  /**
1579
- * @generated from message silvana.settlement.v1.GetSettlementStatusResponse
1601
+ * Status of a single step in the DVP flow with details
1602
+ *
1603
+ * @generated from message silvana.settlement.v1.DvpStepStatus
1580
1604
  */
1581
- export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSettlementStatusResponse"> & {
1605
+ export type DvpStepStatus = Message<"silvana.settlement.v1.DvpStepStatus"> & {
1582
1606
  /**
1583
- * UUID v7
1607
+ * Step name (e.g., "dvp_processing_fee_buyer", "dvp_request", etc.)
1584
1608
  *
1585
- * @generated from field: string proposal_id = 1;
1586
- */
1587
- proposalId: string;
1588
-
1589
- /**
1590
- * @generated from field: string settlement_id = 2;
1591
- */
1592
- settlementId: string;
1593
-
1594
- /**
1595
- * @generated from field: silvana.settlement.v1.SettlementStage stage = 3;
1596
- */
1597
- stage: SettlementStage;
1598
-
1599
- /**
1600
- * @generated from field: optional string dvp_proposal_cid = 4;
1609
+ * @generated from field: string step_name = 1;
1601
1610
  */
1602
- dvpProposalCid?: string;
1611
+ stepName: string;
1603
1612
 
1604
1613
  /**
1605
- * @generated from field: optional string dvp_cid = 5;
1614
+ * Current status
1615
+ *
1616
+ * @generated from field: silvana.settlement.v1.DvpStepStatusEnum status = 2;
1606
1617
  */
1607
- dvpCid?: string;
1618
+ status: DvpStepStatusEnum;
1608
1619
 
1609
1620
  /**
1610
- * @generated from field: optional string allocation_buyer_cid = 6;
1621
+ * Contract ID (if created)
1622
+ *
1623
+ * @generated from field: optional string contract_id = 3;
1611
1624
  */
1612
- allocationBuyerCid?: string;
1625
+ contractId?: string;
1613
1626
 
1614
1627
  /**
1615
- * @generated from field: optional string allocation_seller_cid = 7;
1628
+ * Update ID (Canton ledger update)
1629
+ *
1630
+ * @generated from field: optional string update_id = 4;
1616
1631
  */
1617
- allocationSellerCid?: string;
1632
+ updateId?: string;
1618
1633
 
1619
1634
  /**
1620
- * @generated from field: optional string settled_dvp_cid = 8;
1635
+ * Latest event timestamp
1636
+ *
1637
+ * @generated from field: optional google.protobuf.Timestamp updated_at = 5;
1621
1638
  */
1622
- settledDvpCid?: string;
1639
+ updatedAt?: Timestamp;
1623
1640
 
1624
1641
  /**
1625
- * @generated from field: optional string error_message = 9;
1642
+ * Error message (if failed)
1643
+ *
1644
+ * @generated from field: optional string error_message = 6;
1626
1645
  */
1627
1646
  errorMessage?: string;
1628
1647
 
1629
1648
  /**
1630
- * @generated from field: google.protobuf.Timestamp updated_at = 10;
1631
- */
1632
- updatedAt?: Timestamp;
1633
- };
1634
-
1635
- /**
1636
- * Describes the message silvana.settlement.v1.GetSettlementStatusResponse.
1637
- * Use `create(GetSettlementStatusResponseSchema)` to create a new message.
1638
- */
1639
- export const GetSettlementStatusResponseSchema: GenMessage<GetSettlementStatusResponse> = /*@__PURE__*/
1640
- messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1641
-
1642
- /**
1643
- * @generated from message silvana.settlement.v1.SubmitPreconfirmationRequest
1644
- */
1645
- export type SubmitPreconfirmationRequest = Message<"silvana.settlement.v1.SubmitPreconfirmationRequest"> & {
1646
- /**
1647
- * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
1649
+ * Who confirmed this step (party ID)
1650
+ *
1651
+ * @generated from field: optional string confirmed_by = 7;
1648
1652
  */
1649
- auth?: CantonNodeAuth;
1653
+ confirmedBy?: string;
1650
1654
 
1651
1655
  /**
1652
- * @generated from field: silvana.settlement.v1.PreconfirmationDecision decision = 2;
1656
+ * Role of who confirmed (buyer/seller/operator)
1657
+ *
1658
+ * @generated from field: optional silvana.settlement.v1.RecordedByRole confirmed_by_role = 8;
1653
1659
  */
1654
- decision?: PreconfirmationDecision;
1660
+ confirmedByRole?: RecordedByRole;
1655
1661
  };
1656
1662
 
1657
1663
  /**
1658
- * Describes the message silvana.settlement.v1.SubmitPreconfirmationRequest.
1659
- * Use `create(SubmitPreconfirmationRequestSchema)` to create a new message.
1664
+ * Describes the message silvana.settlement.v1.DvpStepStatus.
1665
+ * Use `create(DvpStepStatusSchema)` to create a new message.
1660
1666
  */
1661
- export const SubmitPreconfirmationRequestSchema: GenMessage<SubmitPreconfirmationRequest> = /*@__PURE__*/
1662
- messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1667
+ export const DvpStepStatusSchema: GenMessage<DvpStepStatus> = /*@__PURE__*/
1668
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1663
1669
 
1664
1670
  /**
1665
- * Update settlement proposal request with optimistic locking
1671
+ * Enhanced GetSettlementStatusResponse with detailed DVP flow progress
1666
1672
  *
1667
- * @generated from message silvana.settlement.v1.UpdateSettlementProposalRequest
1673
+ * @generated from message silvana.settlement.v1.GetSettlementStatusResponse
1668
1674
  */
1669
- export type UpdateSettlementProposalRequest = Message<"silvana.settlement.v1.UpdateSettlementProposalRequest"> & {
1670
- /**
1671
- * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
1672
- */
1673
- auth?: CantonNodeAuth;
1674
-
1675
+ export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSettlementStatusResponse"> & {
1675
1676
  /**
1676
1677
  * UUID v7
1677
1678
  *
1678
- * @generated from field: string proposal_id = 2;
1679
+ * @generated from field: string proposal_id = 1;
1679
1680
  */
1680
1681
  proposalId: string;
1681
1682
 
1682
1683
  /**
1683
- * For optimistic locking - must match current version
1684
- *
1685
- * @generated from field: uint64 expected_version = 3;
1684
+ * @generated from field: string settlement_id = 2;
1686
1685
  */
1687
- expectedVersion: bigint;
1686
+ settlementId: string;
1688
1687
 
1689
1688
  /**
1690
- * Fields that can be updated (all optional - only set fields will be updated)
1689
+ * Overall settlement stage
1691
1690
  *
1692
- * @generated from field: optional string dvp_proposal_cid = 4;
1693
- */
1694
- dvpProposalCid?: string;
1695
-
1696
- /**
1697
- * @generated from field: optional string dvp_proposal_update_id = 5;
1698
- */
1699
- dvpProposalUpdateId?: string;
1700
-
1701
- /**
1702
- * @generated from field: optional string dvp_cid = 6;
1703
- */
1704
- dvpCid?: string;
1705
-
1706
- /**
1707
- * @generated from field: optional string dvp_update_id = 7;
1708
- */
1709
- dvpUpdateId?: string;
1710
-
1711
- /**
1712
- * @generated from field: optional string allocation_buyer_cid = 8;
1691
+ * @generated from field: silvana.settlement.v1.SettlementStage stage = 3;
1713
1692
  */
1714
- allocationBuyerCid?: string;
1693
+ stage: SettlementStage;
1715
1694
 
1716
1695
  /**
1717
- * @generated from field: optional string allocation_buyer_update_id = 9;
1696
+ * Overall error message (if failed)
1697
+ *
1698
+ * @generated from field: optional string error_message = 4;
1718
1699
  */
1719
- allocationBuyerUpdateId?: string;
1700
+ errorMessage?: string;
1720
1701
 
1721
1702
  /**
1722
- * @generated from field: optional string allocation_seller_cid = 10;
1703
+ * Last updated timestamp
1704
+ *
1705
+ * @generated from field: google.protobuf.Timestamp updated_at = 5;
1723
1706
  */
1724
- allocationSellerCid?: string;
1707
+ updatedAt?: Timestamp;
1725
1708
 
1726
1709
  /**
1727
- * @generated from field: optional string allocation_seller_update_id = 11;
1710
+ * Fee payment steps
1711
+ *
1712
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_processing_fee_buyer = 10;
1728
1713
  */
1729
- allocationSellerUpdateId?: string;
1714
+ dvpProcessingFeeBuyer?: DvpStepStatus;
1730
1715
 
1731
1716
  /**
1732
- * @generated from field: optional string settled_dvp_cid = 12;
1717
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_processing_fee_seller = 11;
1733
1718
  */
1734
- settledDvpCid?: string;
1719
+ dvpProcessingFeeSeller?: DvpStepStatus;
1735
1720
 
1736
1721
  /**
1737
- * @generated from field: optional string settlement_update_id = 13;
1722
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_processing_fee_buyer = 12;
1738
1723
  */
1739
- settlementUpdateId?: string;
1724
+ allocationProcessingFeeBuyer?: DvpStepStatus;
1740
1725
 
1741
1726
  /**
1742
- * @generated from field: optional string settlement_completion_offset = 14;
1727
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_processing_fee_seller = 13;
1743
1728
  */
1744
- settlementCompletionOffset?: string;
1729
+ allocationProcessingFeeSeller?: DvpStepStatus;
1745
1730
 
1746
1731
  /**
1747
- * Move to a new stage
1732
+ * DVP contract steps
1748
1733
  *
1749
- * @generated from field: optional silvana.settlement.v1.SettlementStage new_stage = 15;
1750
- */
1751
- newStage?: SettlementStage;
1752
-
1753
- /**
1754
- * @generated from field: optional string error_message = 16;
1734
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_request = 14;
1755
1735
  */
1756
- errorMessage?: string;
1736
+ dvpRequest?: DvpStepStatus;
1757
1737
 
1758
1738
  /**
1759
- * @generated from field: optional google.protobuf.Struct metadata = 17;
1739
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_accept = 15;
1760
1740
  */
1761
- metadata?: JsonObject;
1741
+ dvpAccept?: DvpStepStatus;
1762
1742
 
1763
1743
  /**
1764
- * Set buyer fee transfer initiated
1744
+ * Allocation steps
1765
1745
  *
1766
- * @generated from field: optional bool buyer_fee_sent = 18;
1746
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_buyer = 16;
1767
1747
  */
1768
- buyerFeeSent?: boolean;
1748
+ allocationBuyer?: DvpStepStatus;
1769
1749
 
1770
1750
  /**
1771
- * Set seller fee transfer initiated
1772
- *
1773
- * @generated from field: optional bool seller_fee_sent = 19;
1751
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_seller = 17;
1774
1752
  */
1775
- sellerFeeSent?: boolean;
1753
+ allocationSeller?: DvpStepStatus;
1776
1754
 
1777
1755
  /**
1778
- * Canton update ID for buyer fee transfer
1756
+ * Settlement step
1779
1757
  *
1780
- * @generated from field: optional string buyer_fee_update_id = 20;
1758
+ * @generated from field: silvana.settlement.v1.DvpStepStatus settlement = 18;
1781
1759
  */
1782
- buyerFeeUpdateId?: string;
1760
+ settlement?: DvpStepStatus;
1783
1761
 
1784
1762
  /**
1785
- * Canton update ID for seller fee transfer
1763
+ * Traffic compensation steps
1786
1764
  *
1787
- * @generated from field: optional string seller_fee_update_id = 21;
1765
+ * @generated from field: silvana.settlement.v1.DvpStepStatus traffic_compensation_buyer = 19;
1788
1766
  */
1789
- sellerFeeUpdateId?: string;
1767
+ trafficCompensationBuyer?: DvpStepStatus;
1790
1768
 
1791
1769
  /**
1792
- * When buyer fee was paid
1793
- *
1794
- * @generated from field: optional google.protobuf.Timestamp buyer_fee_paid_at = 22;
1770
+ * @generated from field: silvana.settlement.v1.DvpStepStatus traffic_compensation_seller = 20;
1795
1771
  */
1796
- buyerFeePaidAt?: Timestamp;
1772
+ trafficCompensationSeller?: DvpStepStatus;
1797
1773
 
1798
1774
  /**
1799
- * When seller fee was paid
1775
+ * Preconfirmation step (optional)
1800
1776
  *
1801
- * @generated from field: optional google.protobuf.Timestamp seller_fee_paid_at = 23;
1777
+ * @generated from field: silvana.settlement.v1.DvpStepStatus preconfirmation = 21;
1802
1778
  */
1803
- sellerFeePaidAt?: Timestamp;
1779
+ preconfirmation?: DvpStepStatus;
1804
1780
  };
1805
1781
 
1806
1782
  /**
1807
- * Describes the message silvana.settlement.v1.UpdateSettlementProposalRequest.
1808
- * Use `create(UpdateSettlementProposalRequestSchema)` to create a new message.
1783
+ * Describes the message silvana.settlement.v1.GetSettlementStatusResponse.
1784
+ * Use `create(GetSettlementStatusResponseSchema)` to create a new message.
1809
1785
  */
1810
- export const UpdateSettlementProposalRequestSchema: GenMessage<UpdateSettlementProposalRequest> = /*@__PURE__*/
1811
- messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1786
+ export const GetSettlementStatusResponseSchema: GenMessage<GetSettlementStatusResponse> = /*@__PURE__*/
1787
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1812
1788
 
1813
1789
  /**
1814
- * @generated from message silvana.settlement.v1.UpdateSettlementProposalResponse
1790
+ * @generated from message silvana.settlement.v1.SubmitPreconfirmationRequest
1815
1791
  */
1816
- export type UpdateSettlementProposalResponse = Message<"silvana.settlement.v1.UpdateSettlementProposalResponse"> & {
1817
- /**
1818
- * @generated from field: bool success = 1;
1819
- */
1820
- success: boolean;
1821
-
1822
- /**
1823
- * @generated from field: string message = 2;
1824
- */
1825
- message: string;
1826
-
1792
+ export type SubmitPreconfirmationRequest = Message<"silvana.settlement.v1.SubmitPreconfirmationRequest"> & {
1827
1793
  /**
1828
- * New version after update
1829
- *
1830
- * @generated from field: uint64 new_version = 3;
1794
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
1831
1795
  */
1832
- newVersion: bigint;
1796
+ auth?: CantonNodeAuth;
1833
1797
 
1834
1798
  /**
1835
- * @generated from field: silvana.settlement.v1.SettlementStage current_stage = 4;
1799
+ * @generated from field: silvana.settlement.v1.PreconfirmationDecision decision = 2;
1836
1800
  */
1837
- currentStage: SettlementStage;
1801
+ decision?: PreconfirmationDecision;
1838
1802
  };
1839
1803
 
1840
1804
  /**
1841
- * Describes the message silvana.settlement.v1.UpdateSettlementProposalResponse.
1842
- * Use `create(UpdateSettlementProposalResponseSchema)` to create a new message.
1805
+ * Describes the message silvana.settlement.v1.SubmitPreconfirmationRequest.
1806
+ * Use `create(SubmitPreconfirmationRequestSchema)` to create a new message.
1843
1807
  */
1844
- export const UpdateSettlementProposalResponseSchema: GenMessage<UpdateSettlementProposalResponse> = /*@__PURE__*/
1845
- messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1808
+ export const SubmitPreconfirmationRequestSchema: GenMessage<SubmitPreconfirmationRequest> = /*@__PURE__*/
1809
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1846
1810
 
1847
1811
  /**
1848
1812
  * A disclosed contract for settlement
@@ -1885,7 +1849,7 @@ export type DisclosedContractMessage = Message<"silvana.settlement.v1.DisclosedC
1885
1849
  * Use `create(DisclosedContractMessageSchema)` to create a new message.
1886
1850
  */
1887
1851
  export const DisclosedContractMessageSchema: GenMessage<DisclosedContractMessage> = /*@__PURE__*/
1888
- messageDesc(file_proto_silvana_settlement_v1_settlement, 33);
1852
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1889
1853
 
1890
1854
  /**
1891
1855
  * Save disclosed contract request (buyer/seller saves their contracts during allocation)
@@ -1906,6 +1870,8 @@ export type SaveDisclosedContractRequest = Message<"silvana.settlement.v1.SaveDi
1906
1870
  proposalId: string;
1907
1871
 
1908
1872
  /**
1873
+ * Auth for external parties via gRPC metadata: authorization: Bearer <token>
1874
+ *
1909
1875
  * @generated from field: silvana.settlement.v1.DisclosedContractMessage contract = 3;
1910
1876
  */
1911
1877
  contract?: DisclosedContractMessage;
@@ -1916,7 +1882,7 @@ export type SaveDisclosedContractRequest = Message<"silvana.settlement.v1.SaveDi
1916
1882
  * Use `create(SaveDisclosedContractRequestSchema)` to create a new message.
1917
1883
  */
1918
1884
  export const SaveDisclosedContractRequestSchema: GenMessage<SaveDisclosedContractRequest> = /*@__PURE__*/
1919
- messageDesc(file_proto_silvana_settlement_v1_settlement, 34);
1885
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 33);
1920
1886
 
1921
1887
  /**
1922
1888
  * Save disclosed contract response
@@ -1940,7 +1906,7 @@ export type SaveDisclosedContractResponse = Message<"silvana.settlement.v1.SaveD
1940
1906
  * Use `create(SaveDisclosedContractResponseSchema)` to create a new message.
1941
1907
  */
1942
1908
  export const SaveDisclosedContractResponseSchema: GenMessage<SaveDisclosedContractResponse> = /*@__PURE__*/
1943
- messageDesc(file_proto_silvana_settlement_v1_settlement, 35);
1909
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 34);
1944
1910
 
1945
1911
  /**
1946
1912
  * Get disclosed contracts request
@@ -1973,7 +1939,7 @@ export type GetDisclosedContractsRequest = Message<"silvana.settlement.v1.GetDis
1973
1939
  * Use `create(GetDisclosedContractsRequestSchema)` to create a new message.
1974
1940
  */
1975
1941
  export const GetDisclosedContractsRequestSchema: GenMessage<GetDisclosedContractsRequest> = /*@__PURE__*/
1976
- messageDesc(file_proto_silvana_settlement_v1_settlement, 36);
1942
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 35);
1977
1943
 
1978
1944
  /**
1979
1945
  * Get disclosed contracts response
@@ -1992,7 +1958,7 @@ export type GetDisclosedContractsResponse = Message<"silvana.settlement.v1.GetDi
1992
1958
  * Use `create(GetDisclosedContractsResponseSchema)` to create a new message.
1993
1959
  */
1994
1960
  export const GetDisclosedContractsResponseSchema: GenMessage<GetDisclosedContractsResponse> = /*@__PURE__*/
1995
- messageDesc(file_proto_silvana_settlement_v1_settlement, 37);
1961
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 36);
1996
1962
 
1997
1963
  /**
1998
1964
  * Record a completed settlement request
@@ -2063,7 +2029,7 @@ export type RecordSettlementRequest = Message<"silvana.settlement.v1.RecordSettl
2063
2029
  * Use `create(RecordSettlementRequestSchema)` to create a new message.
2064
2030
  */
2065
2031
  export const RecordSettlementRequestSchema: GenMessage<RecordSettlementRequest> = /*@__PURE__*/
2066
- messageDesc(file_proto_silvana_settlement_v1_settlement, 38);
2032
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 37);
2067
2033
 
2068
2034
  /**
2069
2035
  * Record settlement response
@@ -2094,7 +2060,7 @@ export type RecordSettlementResponse = Message<"silvana.settlement.v1.RecordSett
2094
2060
  * Use `create(RecordSettlementResponseSchema)` to create a new message.
2095
2061
  */
2096
2062
  export const RecordSettlementResponseSchema: GenMessage<RecordSettlementResponse> = /*@__PURE__*/
2097
- messageDesc(file_proto_silvana_settlement_v1_settlement, 39);
2063
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 38);
2098
2064
 
2099
2065
  /**
2100
2066
  * Record a transaction in history
@@ -2255,7 +2221,7 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
2255
2221
  * Use `create(RecordTransactionRequestSchema)` to create a new message.
2256
2222
  */
2257
2223
  export const RecordTransactionRequestSchema: GenMessage<RecordTransactionRequest> = /*@__PURE__*/
2258
- messageDesc(file_proto_silvana_settlement_v1_settlement, 40);
2224
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 39);
2259
2225
 
2260
2226
  /**
2261
2227
  * @generated from message silvana.settlement.v1.RecordTransactionResponse
@@ -2284,7 +2250,7 @@ export type RecordTransactionResponse = Message<"silvana.settlement.v1.RecordTra
2284
2250
  * Use `create(RecordTransactionResponseSchema)` to create a new message.
2285
2251
  */
2286
2252
  export const RecordTransactionResponseSchema: GenMessage<RecordTransactionResponse> = /*@__PURE__*/
2287
- messageDesc(file_proto_silvana_settlement_v1_settlement, 41);
2253
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 40);
2288
2254
 
2289
2255
  /**
2290
2256
  * Get transaction history
@@ -2333,7 +2299,7 @@ export type GetTransactionHistoryRequest = Message<"silvana.settlement.v1.GetTra
2333
2299
  * Use `create(GetTransactionHistoryRequestSchema)` to create a new message.
2334
2300
  */
2335
2301
  export const GetTransactionHistoryRequestSchema: GenMessage<GetTransactionHistoryRequest> = /*@__PURE__*/
2336
- messageDesc(file_proto_silvana_settlement_v1_settlement, 42);
2302
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 41);
2337
2303
 
2338
2304
  /**
2339
2305
  * @generated from message silvana.settlement.v1.GetTransactionHistoryResponse
@@ -2355,7 +2321,7 @@ export type GetTransactionHistoryResponse = Message<"silvana.settlement.v1.GetTr
2355
2321
  * Use `create(GetTransactionHistoryResponseSchema)` to create a new message.
2356
2322
  */
2357
2323
  export const GetTransactionHistoryResponseSchema: GenMessage<GetTransactionHistoryResponse> = /*@__PURE__*/
2358
- messageDesc(file_proto_silvana_settlement_v1_settlement, 43);
2324
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 42);
2359
2325
 
2360
2326
  /**
2361
2327
  * @generated from message silvana.settlement.v1.TransactionHistoryEntry
@@ -2507,305 +2473,1156 @@ export type TransactionHistoryEntry = Message<"silvana.settlement.v1.Transaction
2507
2473
  * Use `create(TransactionHistoryEntrySchema)` to create a new message.
2508
2474
  */
2509
2475
  export const TransactionHistoryEntrySchema: GenMessage<TransactionHistoryEntry> = /*@__PURE__*/
2510
- messageDesc(file_proto_silvana_settlement_v1_settlement, 44);
2476
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 43);
2511
2477
 
2512
2478
  /**
2513
- * DVP settlement stage enumeration
2479
+ * Record a settlement event (any party can record for their settlements)
2514
2480
  *
2515
- * @generated from enum silvana.settlement.v1.SettlementStage
2481
+ * @generated from message silvana.settlement.v1.RecordSettlementEventRequest
2516
2482
  */
2517
- export enum SettlementStage {
2483
+ export type RecordSettlementEventRequest = Message<"silvana.settlement.v1.RecordSettlementEventRequest"> & {
2518
2484
  /**
2519
- * @generated from enum value: SETTLEMENT_STAGE_UNSPECIFIED = 0;
2485
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
2520
2486
  */
2521
- UNSPECIFIED = 0,
2487
+ auth?: CantonNodeAuth;
2522
2488
 
2523
2489
  /**
2524
- * @generated from enum value: SETTLEMENT_STAGE_PROPOSAL_RECEIVED = 1;
2490
+ * UUID v7
2491
+ *
2492
+ * @generated from field: string proposal_id = 2;
2525
2493
  */
2526
- PROPOSAL_RECEIVED = 1,
2494
+ proposalId: string;
2527
2495
 
2528
2496
  /**
2529
- * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMATION_PENDING = 2;
2497
+ * Party ID who is recording
2498
+ *
2499
+ * @generated from field: string recorded_by = 3;
2530
2500
  */
2531
- PRECONFIRMATION_PENDING = 2,
2501
+ recordedBy: string;
2532
2502
 
2533
2503
  /**
2534
- * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMED = 3;
2504
+ * @generated from field: silvana.settlement.v1.RecordedByRole recorded_by_role = 4;
2535
2505
  */
2536
- PRECONFIRMED = 3,
2506
+ recordedByRole: RecordedByRole;
2537
2507
 
2538
2508
  /**
2539
- * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATING = 4;
2509
+ * @generated from field: silvana.settlement.v1.SettlementEventType event_type = 5;
2540
2510
  */
2541
- DVP_PROPOSAL_CREATING = 4,
2511
+ eventType: SettlementEventType;
2542
2512
 
2543
2513
  /**
2544
- * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATED = 5;
2514
+ * Canton transaction tracking (two-phase)
2515
+ *
2516
+ * Phase 1: received on tx submit
2517
+ *
2518
+ * @generated from field: optional string submission_id = 6;
2545
2519
  */
2546
- DVP_PROPOSAL_CREATED = 5,
2520
+ submissionId?: string;
2547
2521
 
2548
2522
  /**
2549
- * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTING = 6;
2523
+ * Phase 2: received after ledger poll
2524
+ *
2525
+ * @generated from field: optional string update_id = 7;
2550
2526
  */
2551
- DVP_ACCEPTING = 6,
2527
+ updateId?: string;
2552
2528
 
2553
2529
  /**
2554
- * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTED = 7;
2530
+ * Canton contract ID
2531
+ *
2532
+ * @generated from field: optional string contract_id = 8;
2555
2533
  */
2556
- DVP_ACCEPTED = 7,
2534
+ contractId?: string;
2557
2535
 
2558
2536
  /**
2559
- * @generated from enum value: SETTLEMENT_STAGE_ALLOCATING = 8;
2537
+ * Daml template ID
2538
+ *
2539
+ * @generated from field: optional string template_id = 9;
2560
2540
  */
2561
- ALLOCATING = 8,
2541
+ templateId?: string;
2562
2542
 
2563
2543
  /**
2564
- * @generated from enum value: SETTLEMENT_STAGE_ALLOCATED = 9;
2544
+ * Result
2545
+ *
2546
+ * @generated from field: silvana.settlement.v1.SettlementEventResult result = 10;
2565
2547
  */
2566
- ALLOCATED = 9,
2548
+ result: SettlementEventResult;
2567
2549
 
2568
2550
  /**
2569
- * @generated from enum value: SETTLEMENT_STAGE_SETTLING = 10;
2551
+ * @generated from field: optional string error_message = 11;
2570
2552
  */
2571
- SETTLING = 10,
2553
+ errorMessage?: string;
2572
2554
 
2573
2555
  /**
2574
- * @generated from enum value: SETTLEMENT_STAGE_SETTLED = 11;
2556
+ * @generated from field: optional google.protobuf.Struct metadata = 12;
2575
2557
  */
2576
- SETTLED = 11,
2558
+ metadata?: JsonObject;
2559
+ };
2560
+
2561
+ /**
2562
+ * Describes the message silvana.settlement.v1.RecordSettlementEventRequest.
2563
+ * Use `create(RecordSettlementEventRequestSchema)` to create a new message.
2564
+ */
2565
+ export const RecordSettlementEventRequestSchema: GenMessage<RecordSettlementEventRequest> = /*@__PURE__*/
2566
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 44);
2577
2567
 
2568
+ /**
2569
+ * @generated from message silvana.settlement.v1.RecordSettlementEventResponse
2570
+ */
2571
+ export type RecordSettlementEventResponse = Message<"silvana.settlement.v1.RecordSettlementEventResponse"> & {
2578
2572
  /**
2579
- * @generated from enum value: SETTLEMENT_STAGE_FAILED = 12;
2573
+ * @generated from field: bool success = 1;
2580
2574
  */
2581
- FAILED = 12,
2575
+ success: boolean;
2582
2576
 
2583
2577
  /**
2584
- * @generated from enum value: SETTLEMENT_STAGE_CANCELLED = 13;
2578
+ * @generated from field: string message = 2;
2585
2579
  */
2586
- CANCELLED = 13,
2587
- }
2580
+ message: string;
2581
+
2582
+ /**
2583
+ * Auto-generated history entry ID
2584
+ *
2585
+ * @generated from field: uint64 event_id = 3;
2586
+ */
2587
+ eventId: bigint;
2588
+ };
2588
2589
 
2589
2590
  /**
2590
- * Describes the enum silvana.settlement.v1.SettlementStage.
2591
+ * Describes the message silvana.settlement.v1.RecordSettlementEventResponse.
2592
+ * Use `create(RecordSettlementEventResponseSchema)` to create a new message.
2591
2593
  */
2592
- export const SettlementStageSchema: GenEnum<SettlementStage> = /*@__PURE__*/
2593
- enumDesc(file_proto_silvana_settlement_v1_settlement, 0);
2594
+ export const RecordSettlementEventResponseSchema: GenMessage<RecordSettlementEventResponse> = /*@__PURE__*/
2595
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 45);
2594
2596
 
2595
2597
  /**
2596
- * Preconfirmation response type
2598
+ * Get settlement history (parties can only see their own settlements)
2597
2599
  *
2598
- * @generated from enum silvana.settlement.v1.PreconfirmationResponse
2600
+ * @generated from message silvana.settlement.v1.GetSettlementHistoryRequest
2599
2601
  */
2600
- export enum PreconfirmationResponse {
2602
+ export type GetSettlementHistoryRequest = Message<"silvana.settlement.v1.GetSettlementHistoryRequest"> & {
2601
2603
  /**
2602
- * @generated from enum value: PRECONFIRMATION_RESPONSE_UNSPECIFIED = 0;
2604
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
2605
+ */
2606
+ auth?: CantonNodeAuth;
2607
+
2608
+ /**
2609
+ * UUID v7
2610
+ *
2611
+ * @generated from field: string proposal_id = 2;
2612
+ */
2613
+ proposalId: string;
2614
+
2615
+ /**
2616
+ * Filter by event type
2617
+ *
2618
+ * @generated from field: optional silvana.settlement.v1.SettlementEventType event_type = 3;
2619
+ */
2620
+ eventType?: SettlementEventType;
2621
+
2622
+ /**
2623
+ * Filter by result
2624
+ *
2625
+ * @generated from field: optional silvana.settlement.v1.SettlementEventResult result = 4;
2626
+ */
2627
+ result?: SettlementEventResult;
2628
+
2629
+ /**
2630
+ * @generated from field: optional uint32 limit = 5;
2631
+ */
2632
+ limit?: number;
2633
+
2634
+ /**
2635
+ * @generated from field: optional uint32 offset = 6;
2636
+ */
2637
+ offset?: number;
2638
+ };
2639
+
2640
+ /**
2641
+ * Describes the message silvana.settlement.v1.GetSettlementHistoryRequest.
2642
+ * Use `create(GetSettlementHistoryRequestSchema)` to create a new message.
2643
+ */
2644
+ export const GetSettlementHistoryRequestSchema: GenMessage<GetSettlementHistoryRequest> = /*@__PURE__*/
2645
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 46);
2646
+
2647
+ /**
2648
+ * @generated from message silvana.settlement.v1.GetSettlementHistoryResponse
2649
+ */
2650
+ export type GetSettlementHistoryResponse = Message<"silvana.settlement.v1.GetSettlementHistoryResponse"> & {
2651
+ /**
2652
+ * @generated from field: repeated silvana.settlement.v1.SettlementHistoryEntry events = 1;
2653
+ */
2654
+ events: SettlementHistoryEntry[];
2655
+
2656
+ /**
2657
+ * @generated from field: uint32 total = 2;
2658
+ */
2659
+ total: number;
2660
+ };
2661
+
2662
+ /**
2663
+ * Describes the message silvana.settlement.v1.GetSettlementHistoryResponse.
2664
+ * Use `create(GetSettlementHistoryResponseSchema)` to create a new message.
2665
+ */
2666
+ export const GetSettlementHistoryResponseSchema: GenMessage<GetSettlementHistoryResponse> = /*@__PURE__*/
2667
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 47);
2668
+
2669
+ /**
2670
+ * Settlement history entry (matches settlement_proposal_history table)
2671
+ *
2672
+ * @generated from message silvana.settlement.v1.SettlementHistoryEntry
2673
+ */
2674
+ export type SettlementHistoryEntry = Message<"silvana.settlement.v1.SettlementHistoryEntry"> & {
2675
+ /**
2676
+ * @generated from field: uint64 id = 1;
2677
+ */
2678
+ id: bigint;
2679
+
2680
+ /**
2681
+ * @generated from field: string proposal_id = 2;
2682
+ */
2683
+ proposalId: string;
2684
+
2685
+ /**
2686
+ * @generated from field: string recorded_by = 3;
2687
+ */
2688
+ recordedBy: string;
2689
+
2690
+ /**
2691
+ * @generated from field: silvana.settlement.v1.RecordedByRole recorded_by_role = 4;
2692
+ */
2693
+ recordedByRole: RecordedByRole;
2694
+
2695
+ /**
2696
+ * @generated from field: silvana.settlement.v1.SettlementEventType event_type = 5;
2697
+ */
2698
+ eventType: SettlementEventType;
2699
+
2700
+ /**
2701
+ * Canton transaction tracking
2702
+ *
2703
+ * @generated from field: optional string submission_id = 6;
2704
+ */
2705
+ submissionId?: string;
2706
+
2707
+ /**
2708
+ * @generated from field: optional string update_id = 7;
2709
+ */
2710
+ updateId?: string;
2711
+
2712
+ /**
2713
+ * @generated from field: optional string contract_id = 8;
2714
+ */
2715
+ contractId?: string;
2716
+
2717
+ /**
2718
+ * @generated from field: optional string template_id = 9;
2719
+ */
2720
+ templateId?: string;
2721
+
2722
+ /**
2723
+ * Result
2724
+ *
2725
+ * @generated from field: silvana.settlement.v1.SettlementEventResult result = 10;
2726
+ */
2727
+ result: SettlementEventResult;
2728
+
2729
+ /**
2730
+ * @generated from field: optional string error_message = 11;
2731
+ */
2732
+ errorMessage?: string;
2733
+
2734
+ /**
2735
+ * @generated from field: optional google.protobuf.Struct metadata = 12;
2736
+ */
2737
+ metadata?: JsonObject;
2738
+
2739
+ /**
2740
+ * @generated from field: google.protobuf.Timestamp created_at = 13;
2741
+ */
2742
+ createdAt?: Timestamp;
2743
+ };
2744
+
2745
+ /**
2746
+ * Describes the message silvana.settlement.v1.SettlementHistoryEntry.
2747
+ * Use `create(SettlementHistoryEntrySchema)` to create a new message.
2748
+ */
2749
+ export const SettlementHistoryEntrySchema: GenMessage<SettlementHistoryEntry> = /*@__PURE__*/
2750
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 48);
2751
+
2752
+ /**
2753
+ * Update proposal status (operator only)
2754
+ *
2755
+ * @generated from message silvana.settlement.v1.UpdateProposalStatusRequest
2756
+ */
2757
+ export type UpdateProposalStatusRequest = Message<"silvana.settlement.v1.UpdateProposalStatusRequest"> & {
2758
+ /**
2759
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
2760
+ */
2761
+ auth?: CantonNodeAuth;
2762
+
2763
+ /**
2764
+ * UUID v7
2765
+ *
2766
+ * @generated from field: string proposal_id = 2;
2767
+ */
2768
+ proposalId: string;
2769
+
2770
+ /**
2771
+ * Only pending → settled/cancelled/failed allowed
2772
+ *
2773
+ * @generated from field: silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus new_status = 3;
2774
+ */
2775
+ newStatus: UpdateProposalStatusRequest_NewStatus;
2776
+
2777
+ /**
2778
+ * Required if failed
2779
+ *
2780
+ * @generated from field: optional string error_message = 4;
2781
+ */
2782
+ errorMessage?: string;
2783
+ };
2784
+
2785
+ /**
2786
+ * Describes the message silvana.settlement.v1.UpdateProposalStatusRequest.
2787
+ * Use `create(UpdateProposalStatusRequestSchema)` to create a new message.
2788
+ */
2789
+ export const UpdateProposalStatusRequestSchema: GenMessage<UpdateProposalStatusRequest> = /*@__PURE__*/
2790
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 49);
2791
+
2792
+ /**
2793
+ * @generated from enum silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus
2794
+ */
2795
+ export enum UpdateProposalStatusRequest_NewStatus {
2796
+ /**
2797
+ * @generated from enum value: NEW_STATUS_UNSPECIFIED = 0;
2798
+ */
2799
+ UNSPECIFIED = 0,
2800
+
2801
+ /**
2802
+ * @generated from enum value: NEW_STATUS_SETTLED = 1;
2803
+ */
2804
+ SETTLED = 1,
2805
+
2806
+ /**
2807
+ * @generated from enum value: NEW_STATUS_CANCELLED = 2;
2808
+ */
2809
+ CANCELLED = 2,
2810
+
2811
+ /**
2812
+ * @generated from enum value: NEW_STATUS_FAILED = 3;
2813
+ */
2814
+ FAILED = 3,
2815
+ }
2816
+
2817
+ /**
2818
+ * Describes the enum silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus.
2819
+ */
2820
+ export const UpdateProposalStatusRequest_NewStatusSchema: GenEnum<UpdateProposalStatusRequest_NewStatus> = /*@__PURE__*/
2821
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 49, 0);
2822
+
2823
+ /**
2824
+ * @generated from message silvana.settlement.v1.UpdateProposalStatusResponse
2825
+ */
2826
+ export type UpdateProposalStatusResponse = Message<"silvana.settlement.v1.UpdateProposalStatusResponse"> & {
2827
+ /**
2828
+ * @generated from field: bool success = 1;
2829
+ */
2830
+ success: boolean;
2831
+
2832
+ /**
2833
+ * @generated from field: string message = 2;
2834
+ */
2835
+ message: string;
2836
+ };
2837
+
2838
+ /**
2839
+ * Describes the message silvana.settlement.v1.UpdateProposalStatusResponse.
2840
+ * Use `create(UpdateProposalStatusResponseSchema)` to create a new message.
2841
+ */
2842
+ export const UpdateProposalStatusResponseSchema: GenMessage<UpdateProposalStatusResponse> = /*@__PURE__*/
2843
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 50);
2844
+
2845
+ /**
2846
+ * Get settlement proposal by ID request
2847
+ *
2848
+ * @generated from message silvana.settlement.v1.GetSettlementProposalByIdRequest
2849
+ */
2850
+ export type GetSettlementProposalByIdRequest = Message<"silvana.settlement.v1.GetSettlementProposalByIdRequest"> & {
2851
+ /**
2852
+ * Auth for external parties via gRPC metadata: authorization: Bearer <token>
2853
+ * For internal Canton agents, use canton_auth field
2854
+ *
2855
+ * @generated from field: optional silvana.settlement.v1.CantonNodeAuth canton_auth = 1;
2856
+ */
2857
+ cantonAuth?: CantonNodeAuth;
2858
+
2859
+ /**
2860
+ * UUID v7
2861
+ *
2862
+ * @generated from field: string proposal_id = 3;
2863
+ */
2864
+ proposalId: string;
2865
+ };
2866
+
2867
+ /**
2868
+ * Describes the message silvana.settlement.v1.GetSettlementProposalByIdRequest.
2869
+ * Use `create(GetSettlementProposalByIdRequestSchema)` to create a new message.
2870
+ */
2871
+ export const GetSettlementProposalByIdRequestSchema: GenMessage<GetSettlementProposalByIdRequest> = /*@__PURE__*/
2872
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 51);
2873
+
2874
+ /**
2875
+ * Get settlement proposal by ID response
2876
+ *
2877
+ * @generated from message silvana.settlement.v1.GetSettlementProposalByIdResponse
2878
+ */
2879
+ export type GetSettlementProposalByIdResponse = Message<"silvana.settlement.v1.GetSettlementProposalByIdResponse"> & {
2880
+ /**
2881
+ * @generated from field: bool found = 1;
2882
+ */
2883
+ found: boolean;
2884
+
2885
+ /**
2886
+ * @generated from field: silvana.settlement.v1.SettlementProposalMessage proposal = 2;
2887
+ */
2888
+ proposal?: SettlementProposalMessage;
2889
+ };
2890
+
2891
+ /**
2892
+ * Describes the message silvana.settlement.v1.GetSettlementProposalByIdResponse.
2893
+ * Use `create(GetSettlementProposalByIdResponseSchema)` to create a new message.
2894
+ */
2895
+ export const GetSettlementProposalByIdResponseSchema: GenMessage<GetSettlementProposalByIdResponse> = /*@__PURE__*/
2896
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 52);
2897
+
2898
+ /**
2899
+ * DVP settlement stage enumeration
2900
+ *
2901
+ * @generated from enum silvana.settlement.v1.SettlementStage
2902
+ */
2903
+ export enum SettlementStage {
2904
+ /**
2905
+ * @generated from enum value: SETTLEMENT_STAGE_UNSPECIFIED = 0;
2906
+ */
2907
+ UNSPECIFIED = 0,
2908
+
2909
+ /**
2910
+ * @generated from enum value: SETTLEMENT_STAGE_PROPOSAL_RECEIVED = 1;
2911
+ */
2912
+ PROPOSAL_RECEIVED = 1,
2913
+
2914
+ /**
2915
+ * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMATION_PENDING = 2;
2916
+ */
2917
+ PRECONFIRMATION_PENDING = 2,
2918
+
2919
+ /**
2920
+ * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMED = 3;
2921
+ */
2922
+ PRECONFIRMED = 3,
2923
+
2924
+ /**
2925
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATING = 4;
2926
+ */
2927
+ DVP_PROPOSAL_CREATING = 4,
2928
+
2929
+ /**
2930
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATED = 5;
2931
+ */
2932
+ DVP_PROPOSAL_CREATED = 5,
2933
+
2934
+ /**
2935
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTING = 6;
2936
+ */
2937
+ DVP_ACCEPTING = 6,
2938
+
2939
+ /**
2940
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTED = 7;
2941
+ */
2942
+ DVP_ACCEPTED = 7,
2943
+
2944
+ /**
2945
+ * @generated from enum value: SETTLEMENT_STAGE_ALLOCATING = 8;
2946
+ */
2947
+ ALLOCATING = 8,
2948
+
2949
+ /**
2950
+ * @generated from enum value: SETTLEMENT_STAGE_ALLOCATED = 9;
2951
+ */
2952
+ ALLOCATED = 9,
2953
+
2954
+ /**
2955
+ * @generated from enum value: SETTLEMENT_STAGE_SETTLING = 10;
2956
+ */
2957
+ SETTLING = 10,
2958
+
2959
+ /**
2960
+ * @generated from enum value: SETTLEMENT_STAGE_SETTLED = 11;
2961
+ */
2962
+ SETTLED = 11,
2963
+
2964
+ /**
2965
+ * @generated from enum value: SETTLEMENT_STAGE_FAILED = 12;
2966
+ */
2967
+ FAILED = 12,
2968
+
2969
+ /**
2970
+ * @generated from enum value: SETTLEMENT_STAGE_CANCELLED = 13;
2971
+ */
2972
+ CANCELLED = 13,
2973
+ }
2974
+
2975
+ /**
2976
+ * Describes the enum silvana.settlement.v1.SettlementStage.
2977
+ */
2978
+ export const SettlementStageSchema: GenEnum<SettlementStage> = /*@__PURE__*/
2979
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 0);
2980
+
2981
+ /**
2982
+ * Preconfirmation response type
2983
+ *
2984
+ * @generated from enum silvana.settlement.v1.PreconfirmationResponse
2985
+ */
2986
+ export enum PreconfirmationResponse {
2987
+ /**
2988
+ * @generated from enum value: PRECONFIRMATION_RESPONSE_UNSPECIFIED = 0;
2989
+ */
2990
+ UNSPECIFIED = 0,
2991
+
2992
+ /**
2993
+ * @generated from enum value: PRECONFIRMATION_RESPONSE_ACCEPT = 1;
2994
+ */
2995
+ ACCEPT = 1,
2996
+
2997
+ /**
2998
+ * @generated from enum value: PRECONFIRMATION_RESPONSE_REJECT = 2;
2999
+ */
3000
+ REJECT = 2,
3001
+ }
3002
+
3003
+ /**
3004
+ * Describes the enum silvana.settlement.v1.PreconfirmationResponse.
3005
+ */
3006
+ export const PreconfirmationResponseSchema: GenEnum<PreconfirmationResponse> = /*@__PURE__*/
3007
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 1);
3008
+
3009
+ /**
3010
+ * Party role in settlement
3011
+ *
3012
+ * @generated from enum silvana.settlement.v1.PartyRole
3013
+ */
3014
+ export enum PartyRole {
3015
+ /**
3016
+ * @generated from enum value: PARTY_ROLE_UNSPECIFIED = 0;
3017
+ */
3018
+ UNSPECIFIED = 0,
3019
+
3020
+ /**
3021
+ * @generated from enum value: PARTY_ROLE_BUYER = 1;
3022
+ */
3023
+ BUYER = 1,
3024
+
3025
+ /**
3026
+ * @generated from enum value: PARTY_ROLE_SELLER = 2;
3027
+ */
3028
+ SELLER = 2,
3029
+
3030
+ /**
3031
+ * @generated from enum value: PARTY_ROLE_OPERATOR = 3;
3032
+ */
3033
+ OPERATOR = 3,
3034
+ }
3035
+
3036
+ /**
3037
+ * Describes the enum silvana.settlement.v1.PartyRole.
3038
+ */
3039
+ export const PartyRoleSchema: GenEnum<PartyRole> = /*@__PURE__*/
3040
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 2);
3041
+
3042
+ /**
3043
+ * Transaction type for history tracking
3044
+ *
3045
+ * @generated from enum silvana.settlement.v1.TransactionType
3046
+ */
3047
+ export enum TransactionType {
3048
+ /**
3049
+ * @generated from enum value: TRANSACTION_TYPE_UNSPECIFIED = 0;
3050
+ */
3051
+ UNSPECIFIED = 0,
3052
+
3053
+ /**
3054
+ * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST = 1;
3055
+ */
3056
+ USER_SERVICE_REQUEST = 1,
3057
+
3058
+ /**
3059
+ * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST_ACCEPT = 2;
3060
+ */
3061
+ USER_SERVICE_REQUEST_ACCEPT = 2,
3062
+
3063
+ /**
3064
+ * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_CANCEL = 3;
3065
+ */
3066
+ USER_SERVICE_CANCEL = 3,
3067
+
3068
+ /**
3069
+ * @generated from enum value: TRANSACTION_TYPE_DVP_PROPOSE = 4;
3070
+ */
3071
+ DVP_PROPOSE = 4,
3072
+
3073
+ /**
3074
+ * @generated from enum value: TRANSACTION_TYPE_DVP_ACCEPT = 5;
3075
+ */
3076
+ DVP_ACCEPT = 5,
3077
+
3078
+ /**
3079
+ * @generated from enum value: TRANSACTION_TYPE_DVP_CANCEL = 6;
3080
+ */
3081
+ DVP_CANCEL = 6,
3082
+
3083
+ /**
3084
+ * @generated from enum value: TRANSACTION_TYPE_DVP_SETTLE = 7;
3085
+ */
3086
+ DVP_SETTLE = 7,
3087
+
3088
+ /**
3089
+ * @generated from enum value: TRANSACTION_TYPE_ALLOCATE = 8;
3090
+ */
3091
+ ALLOCATE = 8,
3092
+
3093
+ /**
3094
+ * @generated from enum value: TRANSACTION_TYPE_ALLOCATE_CANCEL = 9;
3095
+ */
3096
+ ALLOCATE_CANCEL = 9,
3097
+
3098
+ /**
3099
+ * @generated from enum value: TRANSACTION_TYPE_FEE_TRANSFER = 10;
3100
+ */
3101
+ FEE_TRANSFER = 10,
3102
+
3103
+ /**
3104
+ * @generated from enum value: TRANSACTION_TYPE_MERGE = 11;
3105
+ */
3106
+ MERGE = 11,
3107
+
3108
+ /**
3109
+ * @generated from enum value: TRANSACTION_TYPE_UNLOCK = 12;
3110
+ */
3111
+ UNLOCK = 12,
3112
+
3113
+ /**
3114
+ * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
3115
+ */
3116
+ OTHER = 13,
3117
+ }
3118
+
3119
+ /**
3120
+ * Describes the enum silvana.settlement.v1.TransactionType.
3121
+ */
3122
+ export const TransactionTypeSchema: GenEnum<TransactionType> = /*@__PURE__*/
3123
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 3);
3124
+
3125
+ /**
3126
+ * Sender type for transaction history
3127
+ *
3128
+ * @generated from enum silvana.settlement.v1.SenderType
3129
+ */
3130
+ export enum SenderType {
3131
+ /**
3132
+ * @generated from enum value: SENDER_TYPE_UNSPECIFIED = 0;
3133
+ */
3134
+ UNSPECIFIED = 0,
3135
+
3136
+ /**
3137
+ * @generated from enum value: SENDER_TYPE_OPERATOR = 1;
3138
+ */
3139
+ OPERATOR = 1,
3140
+
3141
+ /**
3142
+ * @generated from enum value: SENDER_TYPE_USER = 2;
3143
+ */
3144
+ USER = 2,
3145
+
3146
+ /**
3147
+ * @generated from enum value: SENDER_TYPE_BUYER = 3;
3148
+ */
3149
+ BUYER = 3,
3150
+
3151
+ /**
3152
+ * @generated from enum value: SENDER_TYPE_SELLER = 4;
3153
+ */
3154
+ SELLER = 4,
3155
+
3156
+ /**
3157
+ * @generated from enum value: SENDER_TYPE_APP = 5;
3158
+ */
3159
+ APP = 5,
3160
+ }
3161
+
3162
+ /**
3163
+ * Describes the enum silvana.settlement.v1.SenderType.
3164
+ */
3165
+ export const SenderTypeSchema: GenEnum<SenderType> = /*@__PURE__*/
3166
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 4);
3167
+
3168
+ /**
3169
+ * Transaction result
3170
+ *
3171
+ * @generated from enum silvana.settlement.v1.TransactionResult
3172
+ */
3173
+ export enum TransactionResult {
3174
+ /**
3175
+ * @generated from enum value: TRANSACTION_RESULT_UNSPECIFIED = 0;
3176
+ */
3177
+ UNSPECIFIED = 0,
3178
+
3179
+ /**
3180
+ * @generated from enum value: TRANSACTION_RESULT_PENDING = 1;
3181
+ */
3182
+ PENDING = 1,
3183
+
3184
+ /**
3185
+ * @generated from enum value: TRANSACTION_RESULT_SUCCESS = 2;
3186
+ */
3187
+ SUCCESS = 2,
3188
+
3189
+ /**
3190
+ * @generated from enum value: TRANSACTION_RESULT_FAILED = 3;
3191
+ */
3192
+ FAILED = 3,
3193
+ }
3194
+
3195
+ /**
3196
+ * Describes the enum silvana.settlement.v1.TransactionResult.
3197
+ */
3198
+ export const TransactionResultSchema: GenEnum<TransactionResult> = /*@__PURE__*/
3199
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 5);
3200
+
3201
+ /**
3202
+ * Event types for settlement proposal history (all 11 DVP transactions + contract lifecycle)
3203
+ *
3204
+ * @generated from enum silvana.settlement.v1.SettlementEventType
3205
+ */
3206
+ export enum SettlementEventType {
3207
+ /**
3208
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_UNSPECIFIED = 0;
2603
3209
  */
2604
3210
  UNSPECIFIED = 0,
2605
3211
 
2606
3212
  /**
2607
- * @generated from enum value: PRECONFIRMATION_RESPONSE_ACCEPT = 1;
3213
+ * Step 1: DVP Processing Fee (buyer pays)
3214
+ *
3215
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_BUYER_SUBMITTED = 1;
2608
3216
  */
2609
- ACCEPT = 1,
3217
+ DVP_PROCESSING_FEE_BUYER_SUBMITTED = 1,
2610
3218
 
2611
3219
  /**
2612
- * @generated from enum value: PRECONFIRMATION_RESPONSE_REJECT = 2;
3220
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_BUYER_COMPLETED = 2;
2613
3221
  */
2614
- REJECT = 2,
2615
- }
3222
+ DVP_PROCESSING_FEE_BUYER_COMPLETED = 2,
2616
3223
 
2617
- /**
2618
- * Describes the enum silvana.settlement.v1.PreconfirmationResponse.
2619
- */
2620
- export const PreconfirmationResponseSchema: GenEnum<PreconfirmationResponse> = /*@__PURE__*/
2621
- enumDesc(file_proto_silvana_settlement_v1_settlement, 1);
3224
+ /**
3225
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_BUYER_RECEIVED = 3;
3226
+ */
3227
+ DVP_PROCESSING_FEE_BUYER_RECEIVED = 3,
2622
3228
 
2623
- /**
2624
- * Party role in settlement
2625
- *
2626
- * @generated from enum silvana.settlement.v1.PartyRole
2627
- */
2628
- export enum PartyRole {
2629
3229
  /**
2630
- * @generated from enum value: PARTY_ROLE_UNSPECIFIED = 0;
3230
+ * Step 2: DVP Request (buyer creates DvpProposal)
3231
+ *
3232
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_SUBMITTED = 4;
2631
3233
  */
2632
- UNSPECIFIED = 0,
3234
+ DVP_REQUEST_SUBMITTED = 4,
2633
3235
 
2634
3236
  /**
2635
- * @generated from enum value: PARTY_ROLE_BUYER = 1;
3237
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_COMPLETED = 5;
2636
3238
  */
2637
- BUYER = 1,
3239
+ DVP_REQUEST_COMPLETED = 5,
2638
3240
 
2639
3241
  /**
2640
- * @generated from enum value: PARTY_ROLE_SELLER = 2;
3242
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_WITNESSED = 6;
2641
3243
  */
2642
- SELLER = 2,
3244
+ DVP_REQUEST_WITNESSED = 6,
2643
3245
 
2644
3246
  /**
2645
- * @generated from enum value: PARTY_ROLE_OPERATOR = 3;
3247
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_REJECTED = 7;
2646
3248
  */
2647
- OPERATOR = 3,
2648
- }
3249
+ DVP_REQUEST_REJECTED = 7,
2649
3250
 
2650
- /**
2651
- * Describes the enum silvana.settlement.v1.PartyRole.
2652
- */
2653
- export const PartyRoleSchema: GenEnum<PartyRole> = /*@__PURE__*/
2654
- enumDesc(file_proto_silvana_settlement_v1_settlement, 2);
3251
+ /**
3252
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_CANCELLED = 8;
3253
+ */
3254
+ DVP_REQUEST_CANCELLED = 8,
2655
3255
 
2656
- /**
2657
- * Transaction type for history tracking
2658
- *
2659
- * @generated from enum silvana.settlement.v1.TransactionType
2660
- */
2661
- export enum TransactionType {
2662
3256
  /**
2663
- * @generated from enum value: TRANSACTION_TYPE_UNSPECIFIED = 0;
3257
+ * Step 3: DVP Processing Fee (seller pays)
3258
+ *
3259
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_SELLER_SUBMITTED = 9;
2664
3260
  */
2665
- UNSPECIFIED = 0,
3261
+ DVP_PROCESSING_FEE_SELLER_SUBMITTED = 9,
2666
3262
 
2667
3263
  /**
2668
- * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST = 1;
3264
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_SELLER_COMPLETED = 10;
2669
3265
  */
2670
- USER_SERVICE_REQUEST = 1,
3266
+ DVP_PROCESSING_FEE_SELLER_COMPLETED = 10,
2671
3267
 
2672
3268
  /**
2673
- * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST_ACCEPT = 2;
3269
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_SELLER_RECEIVED = 11;
2674
3270
  */
2675
- USER_SERVICE_REQUEST_ACCEPT = 2,
3271
+ DVP_PROCESSING_FEE_SELLER_RECEIVED = 11,
2676
3272
 
2677
3273
  /**
2678
- * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_CANCEL = 3;
3274
+ * Step 4: Accept DVP (seller accepts, creates Dvp contract)
3275
+ *
3276
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_ACCEPT_SUBMITTED = 12;
2679
3277
  */
2680
- USER_SERVICE_CANCEL = 3,
3278
+ DVP_ACCEPT_SUBMITTED = 12,
2681
3279
 
2682
3280
  /**
2683
- * @generated from enum value: TRANSACTION_TYPE_DVP_PROPOSE = 4;
3281
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_ACCEPT_COMPLETED = 13;
2684
3282
  */
2685
- DVP_PROPOSE = 4,
3283
+ DVP_ACCEPT_COMPLETED = 13,
2686
3284
 
2687
3285
  /**
2688
- * @generated from enum value: TRANSACTION_TYPE_DVP_ACCEPT = 5;
3286
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_ACCEPTED_WITNESSED = 14;
2689
3287
  */
2690
- DVP_ACCEPT = 5,
3288
+ DVP_ACCEPTED_WITNESSED = 14,
2691
3289
 
2692
3290
  /**
2693
- * @generated from enum value: TRANSACTION_TYPE_DVP_CANCEL = 6;
3291
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REJECTED = 15;
2694
3292
  */
2695
- DVP_CANCEL = 6,
3293
+ DVP_REJECTED = 15,
2696
3294
 
2697
3295
  /**
2698
- * @generated from enum value: TRANSACTION_TYPE_DVP_SETTLE = 7;
3296
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_WITHDRAWN = 16;
2699
3297
  */
2700
- DVP_SETTLE = 7,
3298
+ DVP_WITHDRAWN = 16,
2701
3299
 
2702
3300
  /**
2703
- * @generated from enum value: TRANSACTION_TYPE_ALLOCATE = 8;
3301
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_CANCELLED = 17;
2704
3302
  */
2705
- ALLOCATE = 8,
3303
+ DVP_CANCELLED = 17,
2706
3304
 
2707
3305
  /**
2708
- * @generated from enum value: TRANSACTION_TYPE_ALLOCATE_CANCEL = 9;
3306
+ * Step 5: Allocation Processing Fee (buyer pays)
3307
+ *
3308
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_BUYER_SUBMITTED = 18;
2709
3309
  */
2710
- ALLOCATE_CANCEL = 9,
3310
+ ALLOCATION_PROCESSING_FEE_BUYER_SUBMITTED = 18,
2711
3311
 
2712
3312
  /**
2713
- * @generated from enum value: TRANSACTION_TYPE_FEE_TRANSFER = 10;
3313
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_BUYER_COMPLETED = 19;
2714
3314
  */
2715
- FEE_TRANSFER = 10,
3315
+ ALLOCATION_PROCESSING_FEE_BUYER_COMPLETED = 19,
2716
3316
 
2717
3317
  /**
2718
- * @generated from enum value: TRANSACTION_TYPE_MERGE = 11;
3318
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_BUYER_RECEIVED = 20;
2719
3319
  */
2720
- MERGE = 11,
3320
+ ALLOCATION_PROCESSING_FEE_BUYER_RECEIVED = 20,
2721
3321
 
2722
3322
  /**
2723
- * @generated from enum value: TRANSACTION_TYPE_UNLOCK = 12;
3323
+ * Step 6: Allocate CC (buyer allocates base instrument)
3324
+ *
3325
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_SUBMITTED = 21;
2724
3326
  */
2725
- UNLOCK = 12,
3327
+ ALLOCATION_BUYER_SUBMITTED = 21,
2726
3328
 
2727
3329
  /**
2728
- * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
3330
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_COMPLETED = 22;
2729
3331
  */
2730
- OTHER = 13,
3332
+ ALLOCATION_BUYER_COMPLETED = 22,
3333
+
3334
+ /**
3335
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_WITNESSED = 23;
3336
+ */
3337
+ ALLOCATION_BUYER_WITNESSED = 23,
3338
+
3339
+ /**
3340
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_WITHDRAWN = 24;
3341
+ */
3342
+ ALLOCATION_BUYER_WITHDRAWN = 24,
3343
+
3344
+ /**
3345
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_CANCELLED = 25;
3346
+ */
3347
+ ALLOCATION_BUYER_CANCELLED = 25,
3348
+
3349
+ /**
3350
+ * Step 7: Allocation Processing Fee (seller pays)
3351
+ *
3352
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_SELLER_SUBMITTED = 26;
3353
+ */
3354
+ ALLOCATION_PROCESSING_FEE_SELLER_SUBMITTED = 26,
3355
+
3356
+ /**
3357
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_SELLER_COMPLETED = 27;
3358
+ */
3359
+ ALLOCATION_PROCESSING_FEE_SELLER_COMPLETED = 27,
3360
+
3361
+ /**
3362
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_SELLER_RECEIVED = 28;
3363
+ */
3364
+ ALLOCATION_PROCESSING_FEE_SELLER_RECEIVED = 28,
3365
+
3366
+ /**
3367
+ * Step 8: Allocate USDC (seller allocates quote instrument)
3368
+ *
3369
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_SUBMITTED = 29;
3370
+ */
3371
+ ALLOCATION_SELLER_SUBMITTED = 29,
3372
+
3373
+ /**
3374
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_COMPLETED = 30;
3375
+ */
3376
+ ALLOCATION_SELLER_COMPLETED = 30,
3377
+
3378
+ /**
3379
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_WITNESSED = 31;
3380
+ */
3381
+ ALLOCATION_SELLER_WITNESSED = 31,
3382
+
3383
+ /**
3384
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_WITHDRAWN = 32;
3385
+ */
3386
+ ALLOCATION_SELLER_WITHDRAWN = 32,
3387
+
3388
+ /**
3389
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_CANCELLED = 33;
3390
+ */
3391
+ ALLOCATION_SELLER_CANCELLED = 33,
3392
+
3393
+ /**
3394
+ * Step 9: DVP Settlement (operator executes atomic swap)
3395
+ *
3396
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_SETTLEMENT_SUBMITTED = 34;
3397
+ */
3398
+ SETTLEMENT_SUBMITTED = 34,
3399
+
3400
+ /**
3401
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_SETTLEMENT_COMPLETED = 35;
3402
+ */
3403
+ SETTLEMENT_COMPLETED = 35,
3404
+
3405
+ /**
3406
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_SETTLEMENT_WITNESSED = 36;
3407
+ */
3408
+ SETTLEMENT_WITNESSED = 36,
3409
+
3410
+ /**
3411
+ * Step 10: Traffic Compensation to Buyer
3412
+ *
3413
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_BUYER_SUBMITTED = 37;
3414
+ */
3415
+ TRAFFIC_COMPENSATION_BUYER_SUBMITTED = 37,
3416
+
3417
+ /**
3418
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_BUYER_COMPLETED = 38;
3419
+ */
3420
+ TRAFFIC_COMPENSATION_BUYER_COMPLETED = 38,
3421
+
3422
+ /**
3423
+ * Step 11: Traffic Compensation to Seller
3424
+ *
3425
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_SELLER_SUBMITTED = 39;
3426
+ */
3427
+ TRAFFIC_COMPENSATION_SELLER_SUBMITTED = 39,
3428
+
3429
+ /**
3430
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_SELLER_COMPLETED = 40;
3431
+ */
3432
+ TRAFFIC_COMPENSATION_SELLER_COMPLETED = 40,
3433
+
3434
+ /**
3435
+ * Preconfirmation (optional off-chain flow)
3436
+ *
3437
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_REQUESTED = 41;
3438
+ */
3439
+ PRECONFIRMATION_REQUESTED = 41,
3440
+
3441
+ /**
3442
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_BUYER = 42;
3443
+ */
3444
+ PRECONFIRMATION_BUYER = 42,
3445
+
3446
+ /**
3447
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_SELLER = 43;
3448
+ */
3449
+ PRECONFIRMATION_SELLER = 43,
3450
+
3451
+ /**
3452
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_CANCELLED = 44;
3453
+ */
3454
+ PRECONFIRMATION_CANCELLED = 44,
3455
+
3456
+ /**
3457
+ * Timeout (for expired proposals)
3458
+ *
3459
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TIMEOUT = 45;
3460
+ */
3461
+ TIMEOUT = 45,
2731
3462
  }
2732
3463
 
2733
3464
  /**
2734
- * Describes the enum silvana.settlement.v1.TransactionType.
3465
+ * Describes the enum silvana.settlement.v1.SettlementEventType.
2735
3466
  */
2736
- export const TransactionTypeSchema: GenEnum<TransactionType> = /*@__PURE__*/
2737
- enumDesc(file_proto_silvana_settlement_v1_settlement, 3);
3467
+ export const SettlementEventTypeSchema: GenEnum<SettlementEventType> = /*@__PURE__*/
3468
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 6);
2738
3469
 
2739
3470
  /**
2740
- * Sender type for transaction history
3471
+ * Role of the party recording the event
2741
3472
  *
2742
- * @generated from enum silvana.settlement.v1.SenderType
3473
+ * @generated from enum silvana.settlement.v1.RecordedByRole
2743
3474
  */
2744
- export enum SenderType {
3475
+ export enum RecordedByRole {
2745
3476
  /**
2746
- * @generated from enum value: SENDER_TYPE_UNSPECIFIED = 0;
3477
+ * @generated from enum value: RECORDED_BY_ROLE_UNSPECIFIED = 0;
2747
3478
  */
2748
3479
  UNSPECIFIED = 0,
2749
3480
 
2750
3481
  /**
2751
- * @generated from enum value: SENDER_TYPE_OPERATOR = 1;
3482
+ * @generated from enum value: RECORDED_BY_ROLE_BUYER = 1;
2752
3483
  */
2753
- OPERATOR = 1,
3484
+ BUYER = 1,
2754
3485
 
2755
3486
  /**
2756
- * @generated from enum value: SENDER_TYPE_USER = 2;
3487
+ * @generated from enum value: RECORDED_BY_ROLE_SELLER = 2;
2757
3488
  */
2758
- USER = 2,
3489
+ SELLER = 2,
2759
3490
 
2760
3491
  /**
2761
- * @generated from enum value: SENDER_TYPE_BUYER = 3;
3492
+ * @generated from enum value: RECORDED_BY_ROLE_OPERATOR = 3;
2762
3493
  */
2763
- BUYER = 3,
3494
+ OPERATOR = 3,
2764
3495
 
2765
3496
  /**
2766
- * @generated from enum value: SENDER_TYPE_SELLER = 4;
3497
+ * @generated from enum value: RECORDED_BY_ROLE_SYSTEM = 4;
2767
3498
  */
2768
- SELLER = 4,
3499
+ SYSTEM = 4,
2769
3500
  }
2770
3501
 
2771
3502
  /**
2772
- * Describes the enum silvana.settlement.v1.SenderType.
3503
+ * Describes the enum silvana.settlement.v1.RecordedByRole.
2773
3504
  */
2774
- export const SenderTypeSchema: GenEnum<SenderType> = /*@__PURE__*/
2775
- enumDesc(file_proto_silvana_settlement_v1_settlement, 4);
3505
+ export const RecordedByRoleSchema: GenEnum<RecordedByRole> = /*@__PURE__*/
3506
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 7);
2776
3507
 
2777
3508
  /**
2778
- * Transaction result
3509
+ * Result of a settlement event
2779
3510
  *
2780
- * @generated from enum silvana.settlement.v1.TransactionResult
3511
+ * @generated from enum silvana.settlement.v1.SettlementEventResult
2781
3512
  */
2782
- export enum TransactionResult {
3513
+ export enum SettlementEventResult {
2783
3514
  /**
2784
- * @generated from enum value: TRANSACTION_RESULT_UNSPECIFIED = 0;
3515
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_UNSPECIFIED = 0;
2785
3516
  */
2786
3517
  UNSPECIFIED = 0,
2787
3518
 
2788
3519
  /**
2789
- * @generated from enum value: TRANSACTION_RESULT_PENDING = 1;
3520
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_PENDING = 1;
2790
3521
  */
2791
3522
  PENDING = 1,
2792
3523
 
2793
3524
  /**
2794
- * @generated from enum value: TRANSACTION_RESULT_SUCCESS = 2;
3525
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_SUCCESS = 2;
2795
3526
  */
2796
3527
  SUCCESS = 2,
2797
3528
 
2798
3529
  /**
2799
- * @generated from enum value: TRANSACTION_RESULT_FAILED = 3;
3530
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_FAILED = 3;
2800
3531
  */
2801
3532
  FAILED = 3,
3533
+
3534
+ /**
3535
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_TIMEOUT = 4;
3536
+ */
3537
+ TIMEOUT = 4,
2802
3538
  }
2803
3539
 
2804
3540
  /**
2805
- * Describes the enum silvana.settlement.v1.TransactionResult.
3541
+ * Describes the enum silvana.settlement.v1.SettlementEventResult.
2806
3542
  */
2807
- export const TransactionResultSchema: GenEnum<TransactionResult> = /*@__PURE__*/
2808
- enumDesc(file_proto_silvana_settlement_v1_settlement, 5);
3543
+ export const SettlementEventResultSchema: GenEnum<SettlementEventResult> = /*@__PURE__*/
3544
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 8);
3545
+
3546
+ /**
3547
+ * Status of a single step in the DVP flow
3548
+ *
3549
+ * @generated from enum silvana.settlement.v1.DvpStepStatusEnum
3550
+ */
3551
+ export enum DvpStepStatusEnum {
3552
+ /**
3553
+ * @generated from enum value: DVP_STEP_STATUS_UNSPECIFIED = 0;
3554
+ */
3555
+ DVP_STEP_STATUS_UNSPECIFIED = 0,
3556
+
3557
+ /**
3558
+ * Not started
3559
+ *
3560
+ * @generated from enum value: DVP_STEP_STATUS_PENDING = 1;
3561
+ */
3562
+ DVP_STEP_STATUS_PENDING = 1,
3563
+
3564
+ /**
3565
+ * Transaction submitted
3566
+ *
3567
+ * @generated from enum value: DVP_STEP_STATUS_SUBMITTED = 2;
3568
+ */
3569
+ DVP_STEP_STATUS_SUBMITTED = 2,
3570
+
3571
+ /**
3572
+ * Transaction completed
3573
+ *
3574
+ * @generated from enum value: DVP_STEP_STATUS_COMPLETED = 3;
3575
+ */
3576
+ DVP_STEP_STATUS_COMPLETED = 3,
3577
+
3578
+ /**
3579
+ * Confirmed by operator (or witnessed on-chain)
3580
+ *
3581
+ * @generated from enum value: DVP_STEP_STATUS_CONFIRMED = 4;
3582
+ */
3583
+ DVP_STEP_STATUS_CONFIRMED = 4,
3584
+
3585
+ /**
3586
+ * Failed
3587
+ *
3588
+ * @generated from enum value: DVP_STEP_STATUS_FAILED = 5;
3589
+ */
3590
+ DVP_STEP_STATUS_FAILED = 5,
3591
+
3592
+ /**
3593
+ * Rejected by counterparty
3594
+ *
3595
+ * @generated from enum value: DVP_STEP_STATUS_REJECTED = 6;
3596
+ */
3597
+ DVP_STEP_STATUS_REJECTED = 6,
3598
+
3599
+ /**
3600
+ * Withdrawn
3601
+ *
3602
+ * @generated from enum value: DVP_STEP_STATUS_WITHDRAWN = 7;
3603
+ */
3604
+ DVP_STEP_STATUS_WITHDRAWN = 7,
3605
+
3606
+ /**
3607
+ * Cancelled
3608
+ *
3609
+ * @generated from enum value: DVP_STEP_STATUS_CANCELLED = 8;
3610
+ */
3611
+ DVP_STEP_STATUS_CANCELLED = 8,
3612
+
3613
+ /**
3614
+ * Timed out
3615
+ *
3616
+ * @generated from enum value: DVP_STEP_STATUS_TIMEOUT = 9;
3617
+ */
3618
+ DVP_STEP_STATUS_TIMEOUT = 9,
3619
+ }
3620
+
3621
+ /**
3622
+ * Describes the enum silvana.settlement.v1.DvpStepStatusEnum.
3623
+ */
3624
+ export const DvpStepStatusEnumSchema: GenEnum<DvpStepStatusEnum> = /*@__PURE__*/
3625
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 9);
2809
3626
 
2810
3627
  /**
2811
3628
  * @generated from service silvana.settlement.v1.SettlementService
@@ -2852,16 +3669,6 @@ export const SettlementService: GenService<{
2852
3669
  input: typeof SubmitPreconfirmationRequestSchema;
2853
3670
  output: typeof EmptySchema;
2854
3671
  },
2855
- /**
2856
- * Update settlement proposal (frontend user action with version control for concurrency)
2857
- *
2858
- * @generated from rpc silvana.settlement.v1.SettlementService.UpdateSettlementProposal
2859
- */
2860
- updateSettlementProposal: {
2861
- methodKind: "unary";
2862
- input: typeof UpdateSettlementProposalRequestSchema;
2863
- output: typeof UpdateSettlementProposalResponseSchema;
2864
- },
2865
3672
  /**
2866
3673
  * Save a disclosed contract (buyer/seller saves during allocation)
2867
3674
  *
@@ -2912,6 +3719,47 @@ export const SettlementService: GenService<{
2912
3719
  input: typeof GetTransactionHistoryRequestSchema;
2913
3720
  output: typeof GetTransactionHistoryResponseSchema;
2914
3721
  },
3722
+ /**
3723
+ * Settlement proposal history (append-only event log)
3724
+ * Record a settlement event (any party can record for their settlements)
3725
+ *
3726
+ * @generated from rpc silvana.settlement.v1.SettlementService.RecordSettlementEvent
3727
+ */
3728
+ recordSettlementEvent: {
3729
+ methodKind: "unary";
3730
+ input: typeof RecordSettlementEventRequestSchema;
3731
+ output: typeof RecordSettlementEventResponseSchema;
3732
+ },
3733
+ /**
3734
+ * Get settlement history for a proposal
3735
+ *
3736
+ * @generated from rpc silvana.settlement.v1.SettlementService.GetSettlementHistory
3737
+ */
3738
+ getSettlementHistory: {
3739
+ methodKind: "unary";
3740
+ input: typeof GetSettlementHistoryRequestSchema;
3741
+ output: typeof GetSettlementHistoryResponseSchema;
3742
+ },
3743
+ /**
3744
+ * Update proposal status (operator only: pending → settled/cancelled/failed)
3745
+ *
3746
+ * @generated from rpc silvana.settlement.v1.SettlementService.UpdateProposalStatus
3747
+ */
3748
+ updateProposalStatus: {
3749
+ methodKind: "unary";
3750
+ input: typeof UpdateProposalStatusRequestSchema;
3751
+ output: typeof UpdateProposalStatusResponseSchema;
3752
+ },
3753
+ /**
3754
+ * Get settlement proposal by ID (for external parties to fetch proposal details)
3755
+ *
3756
+ * @generated from rpc silvana.settlement.v1.SettlementService.GetSettlementProposalById
3757
+ */
3758
+ getSettlementProposalById: {
3759
+ methodKind: "unary";
3760
+ input: typeof GetSettlementProposalByIdRequestSchema;
3761
+ output: typeof GetSettlementProposalByIdResponseSchema;
3762
+ },
2915
3763
  }> = /*@__PURE__*/
2916
3764
  serviceDesc(file_proto_silvana_settlement_v1_settlement, 0);
2917
3765