@silvana-one/orderbook 1.1.26 → 1.1.27

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 (32) hide show
  1. package/dist/node/index.cjs +237 -86
  2. package/dist/node/orderbook.d.ts +2 -0
  3. package/dist/node/orderbook.js +2 -0
  4. package/dist/node/orderbook.js.map +1 -1
  5. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.d.ts +253 -201
  6. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js +53 -66
  7. package/dist/node/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  8. package/dist/node/proto/silvana/settlement/v1/settlement_pb.d.ts +988 -217
  9. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js +470 -43
  10. package/dist/node/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  11. package/dist/node/settlement.d.ts +41 -30
  12. package/dist/node/settlement.js +40 -7
  13. package/dist/node/settlement.js.map +1 -1
  14. package/dist/tsconfig.tsbuildinfo +1 -1
  15. package/dist/tsconfig.web.tsbuildinfo +1 -1
  16. package/dist/web/orderbook.d.ts +2 -0
  17. package/dist/web/orderbook.js +2 -0
  18. package/dist/web/orderbook.js.map +1 -1
  19. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.d.ts +253 -201
  20. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js +53 -66
  21. package/dist/web/proto/silvana/orderbook/v1/orderbook_pb.js.map +1 -1
  22. package/dist/web/proto/silvana/settlement/v1/settlement_pb.d.ts +988 -217
  23. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js +470 -43
  24. package/dist/web/proto/silvana/settlement/v1/settlement_pb.js.map +1 -1
  25. package/dist/web/settlement.d.ts +41 -30
  26. package/dist/web/settlement.js +40 -7
  27. package/dist/web/settlement.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/orderbook.ts +4 -0
  30. package/src/proto/silvana/orderbook/v1/orderbook_pb.ts +297 -247
  31. package/src/proto/silvana/settlement/v1/settlement_pb.ts +1243 -333
  32. package/src/settlement.ts +206 -31
@@ -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("Cixwcm90by9zaWx2YW5hL3NldHRsZW1lbnQvdjEvc2V0dGxlbWVudC5wcm90bxIVc2lsdmFuYS5zZXR0bGVtZW50LnYxIn4KDkNhbnRvbk5vZGVBdXRoEhAKCHBhcnR5X2lkGAEgASgJEhEKCWp3dF90b2tlbhgCIAEoCRIVCg1ub2RlX2luc3RhbmNlGAMgASgJEjAKDGNvbm5lY3RlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiQQoMRXh0ZXJuYWxBdXRoEgsKA2p3dBgBIAEoCRIQCghwYXJ0eV9pZBgCIAEoCRISCgpwdWJsaWNfa2V5GAMgASgJIp4BChRTZXR0bGVtZW50SW5zdHJ1bWVudBIVCg1pbnN0cnVtZW50X2lkGAEgASgJEg4KBnN5bWJvbBgCIAEoCRIQCghyZWdpc3RyeRgDIAEoCRIQCghxdWFudGl0eRgEIAEoCRIuCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUILCglfbWV0YWRhdGEimQUKGVNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIRCgltYXJrZXRfaWQYAyABKAkSEwoLYnV5ZXJfcGFydHkYBCABKAkSFAoMc2VsbGVyX3BhcnR5GAUgASgJEkQKD2Jhc2VfaW5zdHJ1bWVudBgGIAEoCzIrLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50SW5zdHJ1bWVudBJFChBxdW90ZV9pbnN0cnVtZW50GAcgASgLMisuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRJbnN0cnVtZW50EhgKEHNldHRsZW1lbnRfcHJpY2UYCCABKAkSMwoPYWxsb2NhdGVfYmVmb3JlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg1zZXR0bGVfYmVmb3JlGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCghtZXRhZGF0YRgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBARIuCgpjcmVhdGVkX2F0GAwgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIgChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYDSABKAkSIQoZZHZwX3Byb2Nlc3NpbmdfZmVlX3NlbGxlchgOIAEoCRInCh9hbGxvY2F0aW9uX3Byb2Nlc3NpbmdfZmVlX2J1eWVyGA8gASgJEigKIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGBAgASgJQgsKCV9tZXRhZGF0YSKJAgoWUHJlY29uZmlybWF0aW9uUmVxdWVzdBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEkIKCHByb3Bvc2FsGAMgASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRQcm9wb3NhbE1lc3NhZ2USGAoQcmVxdWVzdGluZ19wYXJ0eRgEIAEoCRIuCgpyZXNwb25kX2J5GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgV0ZXJtcxgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAIgBAUIICgZfdGVybXMivwIKF1ByZWNvbmZpcm1hdGlvbkRlY2lzaW9uEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSQAoIcmVzcG9uc2UYAyABKA4yLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVzcG9uc2USHQoQcmVqZWN0aW9uX3JlYXNvbhgEIAEoCUgAiAEBEjAKCmNvbmRpdGlvbnMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESEQoJc2lnbmVkX2J5GAYgASgJEi4KCmRlY2lkZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9yZWplY3Rpb25fcmVhc29uQg0KC19jb25kaXRpb25zItgBChJEdnBDb250cmFjdENyZWF0ZWQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIYChBkdnBfcHJvcG9zYWxfY2lkGAMgASgJEh4KFmR2cF9wcm9wb3NhbF91cGRhdGVfaWQYBCABKAkSFgoOcHJvcG9zZXJfcGFydHkYBSABKAkSFAoMY291bnRlcnBhcnR5GAYgASgJEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIq8BChNEdnBDb250cmFjdEFjY2VwdGVkEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIVCg1kdnBfdXBkYXRlX2lkGAQgASgJEhMKC2FjY2VwdGVkX2J5GAUgASgJEi8KC2FjY2VwdGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLbAgoQQWxsb2NhdGlvblN0YXR1cxITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEjQKCnBhcnR5X3JvbGUYAyABKA4yIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUGFydHlSb2xlEhAKCHBhcnR5X2lkGAQgASgJEhYKDmFsbG9jYXRpb25fY2lkGAUgASgJEhwKFGFsbG9jYXRpb25fdXBkYXRlX2lkGAYgASgJEhUKDWluc3RydW1lbnRfaWQYByABKAkSEAoIcXVhbnRpdHkYCCABKAkSFAoMaXNfYWxsb2NhdGVkGAkgASgIEhoKDWVycm9yX21lc3NhZ2UYCiABKAlIAIgBARIwCgxhbGxvY2F0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9lcnJvcl9tZXNzYWdlIqoCChlTZXR0bGVtZW50RXhlY3V0aW9uU3RhdHVzEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHZHZwX2NpZBgDIAEoCRIXCg9zZXR0bGVkX2R2cF9jaWQYBCABKAkSHAoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAkSJAocc2V0dGxlbWVudF9jb21wbGV0aW9uX29mZnNldBgGIAEoCRIVCg1pc19zdWNjZXNzZnVsGAcgASgIEhoKDWVycm9yX21lc3NhZ2UYCCABKAlIAIgBARIuCgpzZXR0bGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIQCg5fZXJyb3JfbWVzc2FnZSKKAQoPVXNlclNlcnZpY2VJbmZvEhAKCHBhcnR5X2lkGAEgASgJEhgKEHVzZXJfc2VydmljZV9jaWQYAiABKAkSGwoTb3BlcmF0b3JfY29uZmlnX2NpZBgDIAEoCRIuCgpjcmVhdGVkX2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL5AQoTU2V0dGxlbWVudEhhbmRzaGFrZRIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhEKCXBhcnR5X2lkcxgCIAMoCRI9Cg11c2VyX3NlcnZpY2VzGAMgAygLMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVzZXJTZXJ2aWNlSW5mbxIWCg5vcGVyYXRvcl9wYXJ0eRgEIAEoCRIyCgxjYXBhYmlsaXRpZXMYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQFCDwoNX2NhcGFiaWxpdGllcyK4AQoMSGFuZHNoYWtlQWNrEhAKCGFjY2VwdGVkGAEgASgIEh0KEHJlamVjdGlvbl9yZWFzb24YAiABKAlIAIgBARISCgpzZXNzaW9uX2lkGAMgASgJEh0KFXN1cHBvcnRlZF9pbnN0cnVtZW50cxgEIAMoCRIvCgtzZXJ2ZXJfdGltZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEwoRX3JlamVjdGlvbl9yZWFzb24iZwoJSGVhcnRiZWF0EhIKCnNlc3Npb25faWQYASABKAkSLQoJdGltZXN0YW1wGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zZXF1ZW5jZV9udW1iZXIYAyABKAQiZwoVTGlxdWlkaXR5UHJvdmlkZXJQaW5nEh8KF2xpcXVpZGl0eV9wcm92aWRlcl9uYW1lGAEgASgJEi0KCXRpbWVzdGFtcBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiqAEKFUxpcXVpZGl0eVByb3ZpZGVyUG9uZxIfChdsaXF1aWRpdHlfcHJvdmlkZXJfbmFtZRgBIAEoCRIPCgdzdWNjZXNzGAIgASgIEhoKDWVycm9yX21lc3NhZ2UYAyABKAlIAIgBARIvCgtzZXJ2ZXJfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEAoOX2Vycm9yX21lc3NhZ2Ui2wYKFVNlcnZlclRvQ2FudG9uTWVzc2FnZRISCgpzZXNzaW9uX2lkGAEgASgJEhcKD3NlcXVlbmNlX251bWJlchgCIAEoBBI8Cg1oYW5kc2hha2VfYWNrGAMgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkhhbmRzaGFrZUFja0gAEjUKCWhlYXJ0YmVhdBgEIAEoCzIgLnNpbHZhbmEuc2V0dGxlbWVudC52MS5IZWFydGJlYXRIABJECghwcm9wb3NhbBgFIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlSAASUAoXcHJlY29uZmlybWF0aW9uX3JlcXVlc3QYBiABKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUHJlY29uZmlybWF0aW9uUmVxdWVzdEgAEkAKC2R2cF9jcmVhdGVkGAcgASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENvbnRyYWN0Q3JlYXRlZEgAEkIKDGR2cF9hY2NlcHRlZBgIIAEoCzIqLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBDb250cmFjdEFjY2VwdGVkSAASRAoRYWxsb2NhdGlvbl9zdGF0dXMYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblN0YXR1c0gAEk0KEXNldHRsZW1lbnRfc3RhdHVzGAogASgLMjAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRFeGVjdXRpb25TdGF0dXNIABI7Cgdjb21tYW5kGAsgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRDb21tYW5kSAASNwoFcXVlcnkYDCABKAsyJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFF1ZXJ5SAASPwoHbHBfcG9uZxgOIAEoCzIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5MaXF1aWRpdHlQcm92aWRlclBvbmdIABIrCgdzZW50X2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIJCgdtZXNzYWdlIrEGChVDYW50b25Ub1NlcnZlck1lc3NhZ2USEgoKc2Vzc2lvbl9pZBgBIAEoCRIXCg9zZXF1ZW5jZV9udW1iZXIYAiABKAQSPwoJaGFuZHNoYWtlGAMgASgLMiouc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRIYW5kc2hha2VIABI1CgloZWFydGJlYXQYBCABKAsyIC5zaWx2YW5hLnNldHRsZW1lbnQudjEuSGVhcnRiZWF0SAASSQoPcHJlY29uZmlybWF0aW9uGAUgASgLMi4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlByZWNvbmZpcm1hdGlvbkRlY2lzaW9uSAASQAoMZHZwX2NyZWF0aW9uGAYgASgLMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cENyZWF0aW9uUmVwb3J0SAASRAoOZHZwX2FjY2VwdGFuY2UYByABKAsyKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwQWNjZXB0YW5jZVJlcG9ydEgAEj0KCmFsbG9jYXRpb24YCCABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuQWxsb2NhdGlvblJlcG9ydEgAEj0KCnNldHRsZW1lbnQYCSABKAsyJy5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFJlcG9ydEgAEj0KCHJlc3BvbnNlGAogASgLMikuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNldHRsZW1lbnRSZXNwb25zZUgAEjMKBWVycm9yGAsgASgLMiIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkVycm9yUmVwb3J0SAASNQoGc3RhdHVzGAwgASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN0YXR1c1VwZGF0ZUgAEj8KB2xwX3BpbmcYDiABKAsyLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuTGlxdWlkaXR5UHJvdmlkZXJQaW5nSAASKwoHc2VudF9hdBgNIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCQoHbWVzc2FnZSKiAgoRRHZwQ3JlYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRIPCgdzdWNjZXNzGAMgASgIEh0KEGR2cF9wcm9wb3NhbF9jaWQYBCABKAlIAIgBARIjChZkdnBfcHJvcG9zYWxfdXBkYXRlX2lkGAUgASgJSAGIAQESGgoNZXJyb3JfbWVzc2FnZRgGIAEoCUgCiAEBEi4KCmNyZWF0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhMKEV9kdnBfcHJvcG9zYWxfY2lkQhkKF19kdnBfcHJvcG9zYWxfdXBkYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlIoECChNEdnBBY2NlcHRhbmNlUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSDwoHc3VjY2VzcxgDIAEoCBIUCgdkdnBfY2lkGAQgASgJSACIAQESGgoNZHZwX3VwZGF0ZV9pZBgFIAEoCUgBiAEBEhoKDWVycm9yX21lc3NhZ2UYBiABKAlIAogBARIvCgthY2NlcHRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX2R2cF9jaWRCEAoOX2R2cF91cGRhdGVfaWRCEAoOX2Vycm9yX21lc3NhZ2Ui5wIKEEFsbG9jYXRpb25SZXBvcnQSEwoLcHJvcG9zYWxfaWQYASABKAkSFQoNc2V0dGxlbWVudF9pZBgCIAEoCRI0CgpwYXJ0eV9yb2xlGAMgASgOMiAuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlBhcnR5Um9sZRIPCgdzdWNjZXNzGAQgASgIEhsKDmFsbG9jYXRpb25fY2lkGAUgASgJSACIAQESIQoUYWxsb2NhdGlvbl91cGRhdGVfaWQYBiABKAlIAYgBARIUCgxob2xkaW5nX2NpZHMYByADKAkSGgoNZXJyb3JfbWVzc2FnZRgIIAEoCUgCiAEBEjAKDGFsbG9jYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEQoPX2FsbG9jYXRpb25fY2lkQhcKFV9hbGxvY2F0aW9uX3VwZGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZSL+AgoQU2V0dGxlbWVudFJlcG9ydBITCgtwcm9wb3NhbF9pZBgBIAEoCRIVCg1zZXR0bGVtZW50X2lkGAIgASgJEg8KB3N1Y2Nlc3MYAyABKAgSHAoPc2V0dGxlZF9kdnBfY2lkGAQgASgJSACIAQESIQoUc2V0dGxlbWVudF91cGRhdGVfaWQYBSABKAlIAYgBARIpChxzZXR0bGVtZW50X2NvbXBsZXRpb25fb2Zmc2V0GAYgASgJSAKIAQESFQoNYXJjaGl2ZWRfY2lkcxgHIAMoCRIaCg1lcnJvcl9tZXNzYWdlGAggASgJSAOIAQESLgoKc2V0dGxlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX3NldHRsZWRfZHZwX2NpZEIXChVfc2V0dGxlbWVudF91cGRhdGVfaWRCHwodX3NldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXRCEAoOX2Vycm9yX21lc3NhZ2UihwIKC0Vycm9yUmVwb3J0EhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEhIKCmVycm9yX2NvZGUYBCABKAkSFQoNZXJyb3JfbWVzc2FnZRgFIAEoCRItCgdkZXRhaWxzGAYgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAiAEBEi8KC29jY3VycmVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIKCghfZGV0YWlscyKGAgoMU3RhdHVzVXBkYXRlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSPQoNY3VycmVudF9zdGFnZRgDIAEoDjImLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50U3RhZ2USFAoHbWVzc2FnZRgEIAEoCUgAiAEBEi0KB21ldHJpY3MYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SAGIAQESLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCCgoIX21ldHJpY3Mi0gMKEVNldHRsZW1lbnRDb21tYW5kEkoKDGNvbW1hbmRfdHlwZRgBIAEoDjI0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50Q29tbWFuZC5Db21tYW5kVHlwZRITCgtwcm9wb3NhbF9pZBgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJEjAKCnBhcmFtZXRlcnMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SACIAQESLgoKZXhlY3V0ZV9ieRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi0wEKC0NvbW1hbmRUeXBlEhwKGENPTU1BTkRfVFlQRV9VTlNQRUNJRklFRBAAEiQKIENPTU1BTkRfVFlQRV9DUkVBVEVfRFZQX1BST1BPU0FMEAESGwoXQ09NTUFORF9UWVBFX0FDQ0VQVF9EVlAQAhIZChVDT01NQU5EX1RZUEVfQUxMT0NBVEUQAxIXChNDT01NQU5EX1RZUEVfU0VUVExFEAQSFwoTQ09NTUFORF9UWVBFX0NBTkNFTBAFEhYKEkNPTU1BTkRfVFlQRV9SRVRSWRAGQg0KC19wYXJhbWV0ZXJzIt8DCg9TZXR0bGVtZW50UXVlcnkSRAoKcXVlcnlfdHlwZRgBIAEoDjIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UXVlcnkuUXVlcnlUeXBlEhUKCHBhcnR5X2lkGAIgASgJSACIAQESGAoLY29udHJhY3RfaWQYAyABKAlIAYgBARIaCg1pbnN0cnVtZW50X2lkGAQgASgJSAKIAQESMAoKcGFyYW1ldGVycxgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIA4gBASLIAQoJUXVlcnlUeXBlEhoKFlFVRVJZX1RZUEVfVU5TUEVDSUZJRUQQABIbChdRVUVSWV9UWVBFX0dFVF9IT0xESU5HUxABEh8KG1FVRVJZX1RZUEVfR0VUX1VTRVJfU0VSVklDRRACEhsKF1FVRVJZX1RZUEVfR0VUX0NPTlRSQUNUEAMSJAogUVVFUllfVFlQRV9HRVRfQUxMT0NBVElPTl9TVEFUVVMQBBIeChpRVUVSWV9UWVBFX0NIRUNLX0xJUVVJRElUWRAFQgsKCV9wYXJ0eV9pZEIOCgxfY29udHJhY3RfaWRCEAoOX2luc3RydW1lbnRfaWRCDQoLX3BhcmFtZXRlcnMirgEKElNldHRsZW1lbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEhQKB21lc3NhZ2UYAiABKAlIAIgBARIqCgRkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgBiAEBEjAKDHJlc3BvbmRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCCgoIX21lc3NhZ2VCBwoFX2RhdGEigQEKGkdldFBlbmRpbmdQcm9wb3NhbHNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEAoIcGFydHlfaWQYAiABKAkSEgoFbGltaXQYAyABKA1IAIgBAUIICgZfbGltaXQicQobR2V0UGVuZGluZ1Byb3Bvc2Fsc1Jlc3BvbnNlEkMKCXByb3Bvc2FscxgBIAMoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlEg0KBXRvdGFsGAIgASgNImgKGkdldFNldHRsZW1lbnRTdGF0dXNSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSFQoNc2V0dGxlbWVudF9pZBgCIAEoCSKnAwoNRHZwU3RlcFN0YXR1cxIRCglzdGVwX25hbWUYASABKAkSOAoGc3RhdHVzGAIgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXNFbnVtEhgKC2NvbnRyYWN0X2lkGAMgASgJSACIAQESFgoJdXBkYXRlX2lkGAQgASgJSAGIAQESMwoKdXBkYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAogBARIaCg1lcnJvcl9tZXNzYWdlGAYgASgJSAOIAQESGQoMY29uZmlybWVkX2J5GAcgASgJSASIAQESRQoRY29uZmlybWVkX2J5X3JvbGUYCCABKA4yJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkZWRCeVJvbGVIBYgBAUIOCgxfY29udHJhY3RfaWRCDAoKX3VwZGF0ZV9pZEINCgtfdXBkYXRlZF9hdEIQCg5fZXJyb3JfbWVzc2FnZUIPCg1fY29uZmlybWVkX2J5QhQKEl9jb25maXJtZWRfYnlfcm9sZSKSCAobR2V0U2V0dGxlbWVudFN0YXR1c1Jlc3BvbnNlEhMKC3Byb3Bvc2FsX2lkGAEgASgJEhUKDXNldHRsZW1lbnRfaWQYAiABKAkSNQoFc3RhZ2UYAyABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudFN0YWdlEhoKDWVycm9yX21lc3NhZ2UYBCABKAlIAIgBARIuCgp1cGRhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJGChhkdnBfcHJvY2Vzc2luZ19mZWVfYnV5ZXIYCiABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxJHChlkdnBfcHJvY2Vzc2luZ19mZWVfc2VsbGVyGAsgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSTQofYWxsb2NhdGlvbl9wcm9jZXNzaW5nX2ZlZV9idXllchgMIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEk4KIGFsbG9jYXRpb25fcHJvY2Vzc2luZ19mZWVfc2VsbGVyGA0gASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSOQoLZHZwX3JlcXVlc3QYDiABKAsyJC5zaWx2YW5hLnNldHRsZW1lbnQudjEuRHZwU3RlcFN0YXR1cxI4CgpkdnBfYWNjZXB0GA8gASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSPgoQYWxsb2NhdGlvbl9idXllchgQIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEj8KEWFsbG9jYXRpb25fc2VsbGVyGBEgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSOAoKc2V0dGxlbWVudBgSIAEoCzIkLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EdnBTdGVwU3RhdHVzEkgKGnRyYWZmaWNfY29tcGVuc2F0aW9uX2J1eWVyGBMgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSSQobdHJhZmZpY19jb21wZW5zYXRpb25fc2VsbGVyGBQgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXMSPQoPcHJlY29uZmlybWF0aW9uGBUgASgLMiQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkR2cFN0ZXBTdGF0dXNCEAoOX2Vycm9yX21lc3NhZ2UilQEKHFN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBJACghkZWNpc2lvbhgCIAEoCzIuLnNpbHZhbmEuc2V0dGxlbWVudC52MS5QcmVjb25maXJtYXRpb25EZWNpc2lvbiJ5ChhEaXNjbG9zZWRDb250cmFjdE1lc3NhZ2USEwoLY29udHJhY3RfaWQYASABKAkSEwoLdGVtcGxhdGVfaWQYAiABKAkSGgoSY3JlYXRlZF9ldmVudF9ibG9iGAMgASgJEhcKD3N5bmNocm9uaXplcl9pZBgEIAEoCSL+AQocU2F2ZURpc2Nsb3NlZENvbnRyYWN0UmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEkEKCGNvbnRyYWN0GAMgASgLMi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLkRpc2Nsb3NlZENvbnRyYWN0TWVzc2FnZRI/Cg1leHRlcm5hbF9hdXRoGAogASgLMiMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkV4dGVybmFsQXV0aEgAiAEBQhAKDl9leHRlcm5hbF9hdXRoIkEKHVNhdmVEaXNjbG9zZWRDb250cmFjdFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCSKGAQocR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEhIKBW93bmVyGAMgASgJSACIAQFCCAoGX293bmVyImMKHUdldERpc2Nsb3NlZENvbnRyYWN0c1Jlc3BvbnNlEkIKCWNvbnRyYWN0cxgBIAMoCzIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5EaXNjbG9zZWRDb250cmFjdE1lc3NhZ2Ui3AIKF1JlY29yZFNldHRsZW1lbnRSZXF1ZXN0EjMKBGF1dGgYASABKAsyJS5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uTm9kZUF1dGgSEwoLcHJvcG9zYWxfaWQYAiABKAkSFwoPc2V0dGxlZF9kdnBfY2lkGAMgASgJEhwKFHNldHRsZW1lbnRfdXBkYXRlX2lkGAQgASgJEiQKHHNldHRsZW1lbnRfY29tcGxldGlvbl9vZmZzZXQYBSABKAkSFAoHZHZwX2NpZBgGIAEoCUgAiAEBEiEKFGFsbG9jYXRpb25fYnV5ZXJfY2lkGAcgASgJSAGIAQESIgoVYWxsb2NhdGlvbl9zZWxsZXJfY2lkGAggASgJSAKIAQFCCgoIX2R2cF9jaWRCFwoVX2FsbG9jYXRpb25fYnV5ZXJfY2lkQhgKFl9hbGxvY2F0aW9uX3NlbGxlcl9jaWQiUwoYUmVjb3JkU2V0dGxlbWVudFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIVCg1zZXR0bGVtZW50X2lkGAMgASgJIokKChhSZWNvcmRUcmFuc2FjdGlvblJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBI3Cgd0eF90eXBlGAIgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZRIUCgxzZW5kZXJfcGFydHkYAyABKAkSNgoLc2VuZGVyX3R5cGUYBCABKA4yIS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2VuZGVyVHlwZRIWCgl1cGRhdGVfaWQYBSABKAlIAIgBARIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSAGIAQESIwoWc2V0dGxlbWVudF9wcm9wb3NhbF9pZBgHIAEoCUgCiAEBEhYKCW1hcmtldF9pZBgIIAEoCUgDiAEBEhkKDGNvdW50ZXJwYXJ0eRgJIAEoCUgEiAEBEhgKC2NvbnRyYWN0X2lkGAogASgJSAWIAQESGAoLY2hvaWNlX25hbWUYCyABKAlIBogBARITCgZhbW91bnQYDCABKAlIB4gBARIbCg5yZXdhcmRzX2Ftb3VudBgNIAEoCUgIiAEBEhoKDXJld2FyZHNfcm91bmQYDiABKARICYgBARIcCg90cmFmZmljX3JlcXVlc3QYDyABKARICogBARIdChB0cmFmZmljX3Jlc3BvbnNlGBAgASgESAuIAQESGgoNdHJhZmZpY190b3RhbBgRIAEoBEgMiAEBEiQKF2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkGBIgASgESA2IAQESOAoGcmVzdWx0GBMgASgOMiguc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uUmVzdWx0EhoKDWVycm9yX21lc3NhZ2UYFCABKAlIDogBARIuCghtZXRhZGF0YRgVIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RID4gBARIsCgZ1cGRhdGUYFiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBCIAQESGAoQZGFtbF90ZW1wbGF0ZV9pZBgXIAEoCRITCgtkYW1sX2Nob2ljZRgYIAEoCRIyCgxkYW1sX2Nob2ljZXMYGSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SBGIAQESPwoNZXh0ZXJuYWxfYXV0aBgeIAEoCzIjLnNpbHZhbmEuc2V0dGxlbWVudC52MS5FeHRlcm5hbEF1dGhIEogBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXNCEAoOX2V4dGVybmFsX2F1dGgiVQoZUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSFgoOdHJhbnNhY3Rpb25faWQYAyABKAQikQMKHEdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBIZCgxzZW5kZXJfcGFydHkYAiABKAlIAIgBARI8Cgd0eF90eXBlGAMgASgOMiYuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlRyYW5zYWN0aW9uVHlwZUgBiAEBEiMKFnNldHRsZW1lbnRfcHJvcG9zYWxfaWQYBCABKAlIAogBARI9CgZyZXN1bHQYBSABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHRIA4gBARISCgVsaW1pdBgGIAEoDUgEiAEBEhMKBm9mZnNldBgHIAEoDUgFiAEBQg8KDV9zZW5kZXJfcGFydHlCCgoIX3R4X3R5cGVCGQoXX3NldHRsZW1lbnRfcHJvcG9zYWxfaWRCCQoHX3Jlc3VsdEIICgZfbGltaXRCCQoHX29mZnNldCJ0Ch1HZXRUcmFuc2FjdGlvbkhpc3RvcnlSZXNwb25zZRJECgx0cmFuc2FjdGlvbnMYASADKAsyLi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25IaXN0b3J5RW50cnkSDQoFdG90YWwYAiABKA0ivAkKF1RyYW5zYWN0aW9uSGlzdG9yeUVudHJ5EgoKAmlkGAEgASgEEjcKB3R4X3R5cGUYAiABKA4yJi5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25UeXBlEhQKDHNlbmRlcl9wYXJ0eRgDIAEoCRI2CgtzZW5kZXJfdHlwZRgEIAEoDjIhLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZW5kZXJUeXBlEhYKCXVwZGF0ZV9pZBgFIAEoCUgAiAEBEhoKDXN1Ym1pc3Npb25faWQYBiABKAlIAYgBARIjChZzZXR0bGVtZW50X3Byb3Bvc2FsX2lkGAcgASgJSAKIAQESFgoJbWFya2V0X2lkGAggASgJSAOIAQESGQoMY291bnRlcnBhcnR5GAkgASgJSASIAQESGAoLY29udHJhY3RfaWQYCiABKAlIBYgBARIYCgtjaG9pY2VfbmFtZRgLIAEoCUgGiAEBEhMKBmFtb3VudBgMIAEoCUgHiAEBEhsKDnJld2FyZHNfYW1vdW50GA0gASgJSAiIAQESGgoNcmV3YXJkc19yb3VuZBgOIAEoBEgJiAEBEhwKD3RyYWZmaWNfcmVxdWVzdBgPIAEoBEgKiAEBEh0KEHRyYWZmaWNfcmVzcG9uc2UYECABKARIC4gBARIaCg10cmFmZmljX3RvdGFsGBEgASgESAyIAQESJAoXYWN0aXZpdHlfbWFya2VyX2NyZWF0ZWQYEiABKARIDYgBARI4CgZyZXN1bHQYEyABKA4yKC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVHJhbnNhY3Rpb25SZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgUIAEoCUgOiAEBEi4KCG1ldGFkYXRhGBUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgPiAEBEi4KCmNyZWF0ZWRfYXQYFiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKBnVwZGF0ZRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEIgBARIYChBkYW1sX3RlbXBsYXRlX2lkGBggASgJEhMKC2RhbWxfY2hvaWNlGBkgASgJEjIKDGRhbWxfY2hvaWNlcxgaIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIEYgBAUIMCgpfdXBkYXRlX2lkQhAKDl9zdWJtaXNzaW9uX2lkQhkKF19zZXR0bGVtZW50X3Byb3Bvc2FsX2lkQgwKCl9tYXJrZXRfaWRCDwoNX2NvdW50ZXJwYXJ0eUIOCgxfY29udHJhY3RfaWRCDgoMX2Nob2ljZV9uYW1lQgkKB19hbW91bnRCEQoPX3Jld2FyZHNfYW1vdW50QhAKDl9yZXdhcmRzX3JvdW5kQhIKEF90cmFmZmljX3JlcXVlc3RCEwoRX3RyYWZmaWNfcmVzcG9uc2VCEAoOX3RyYWZmaWNfdG90YWxCGgoYX2FjdGl2aXR5X21hcmtlcl9jcmVhdGVkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIJCgdfdXBkYXRlQg8KDV9kYW1sX2Nob2ljZXMiogUKHFJlY29yZFNldHRsZW1lbnRFdmVudFJlcXVlc3QSMwoEYXV0aBgBIAEoCzIlLnNpbHZhbmEuc2V0dGxlbWVudC52MS5DYW50b25Ob2RlQXV0aBITCgtwcm9wb3NhbF9pZBgCIAEoCRITCgtyZWNvcmRlZF9ieRgDIAEoCRI/ChByZWNvcmRlZF9ieV9yb2xlGAQgASgOMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZGVkQnlSb2xlEj4KCmV2ZW50X3R5cGUYBSABKA4yKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50VHlwZRIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSACIAQESFgoJdXBkYXRlX2lkGAcgASgJSAGIAQESGAoLY29udHJhY3RfaWQYCCABKAlIAogBARIYCgt0ZW1wbGF0ZV9pZBgJIAEoCUgDiAEBEjwKBnJlc3VsdBgKIAEoDjIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRSZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgLIAEoCUgEiAEBEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEj8KDWV4dGVybmFsX2F1dGgYFCABKAsyIy5zaWx2YW5hLnNldHRsZW1lbnQudjEuRXh0ZXJuYWxBdXRoSAaIAQFCEAoOX3N1Ym1pc3Npb25faWRCDAoKX3VwZGF0ZV9pZEIOCgxfY29udHJhY3RfaWRCDgoMX3RlbXBsYXRlX2lkQhAKDl9lcnJvcl9tZXNzYWdlQgsKCV9tZXRhZGF0YUIQCg5fZXh0ZXJuYWxfYXV0aCJTCh1SZWNvcmRTZXR0bGVtZW50RXZlbnRSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkSEAoIZXZlbnRfaWQYAyABKAQixwIKG0dldFNldHRsZW1lbnRIaXN0b3J5UmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJEkMKCmV2ZW50X3R5cGUYAyABKA4yKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50VHlwZUgAiAEBEkEKBnJlc3VsdBgEIAEoDjIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRSZXN1bHRIAYgBARISCgVsaW1pdBgFIAEoDUgCiAEBEhMKBm9mZnNldBgGIAEoDUgDiAEBQg0KC19ldmVudF90eXBlQgkKB19yZXN1bHRCCAoGX2xpbWl0QgkKB19vZmZzZXQibAocR2V0U2V0dGxlbWVudEhpc3RvcnlSZXNwb25zZRI9CgZldmVudHMYASADKAsyLS5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEhpc3RvcnlFbnRyeRINCgV0b3RhbBgCIAEoDSLQBAoWU2V0dGxlbWVudEhpc3RvcnlFbnRyeRIKCgJpZBgBIAEoBBITCgtwcm9wb3NhbF9pZBgCIAEoCRITCgtyZWNvcmRlZF9ieRgDIAEoCRI/ChByZWNvcmRlZF9ieV9yb2xlGAQgASgOMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZGVkQnlSb2xlEj4KCmV2ZW50X3R5cGUYBSABKA4yKi5zaWx2YW5hLnNldHRsZW1lbnQudjEuU2V0dGxlbWVudEV2ZW50VHlwZRIaCg1zdWJtaXNzaW9uX2lkGAYgASgJSACIAQESFgoJdXBkYXRlX2lkGAcgASgJSAGIAQESGAoLY29udHJhY3RfaWQYCCABKAlIAogBARIYCgt0ZW1wbGF0ZV9pZBgJIAEoCUgDiAEBEjwKBnJlc3VsdBgKIAEoDjIsLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50RXZlbnRSZXN1bHQSGgoNZXJyb3JfbWVzc2FnZRgLIAEoCUgEiAEBEi4KCG1ldGFkYXRhGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgFiAEBEi4KCmNyZWF0ZWRfYXQYDSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQhAKDl9zdWJtaXNzaW9uX2lkQgwKCl91cGRhdGVfaWRCDgoMX2NvbnRyYWN0X2lkQg4KDF90ZW1wbGF0ZV9pZEIQCg5fZXJyb3JfbWVzc2FnZUILCglfbWV0YWRhdGEi2QIKG1VwZGF0ZVByb3Bvc2FsU3RhdHVzUmVxdWVzdBIzCgRhdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoEhMKC3Byb3Bvc2FsX2lkGAIgASgJElAKCm5ld19zdGF0dXMYAyABKA4yPC5zaWx2YW5hLnNldHRsZW1lbnQudjEuVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXF1ZXN0Lk5ld1N0YXR1cxIaCg1lcnJvcl9tZXNzYWdlGAQgASgJSACIAQEicAoJTmV3U3RhdHVzEhoKFk5FV19TVEFUVVNfVU5TUEVDSUZJRUQQABIWChJORVdfU1RBVFVTX1NFVFRMRUQQARIYChRORVdfU1RBVFVTX0NBTkNFTExFRBACEhUKEU5FV19TVEFUVVNfRkFJTEVEEANCEAoOX2Vycm9yX21lc3NhZ2UiQAocVXBkYXRlUHJvcG9zYWxTdGF0dXNSZXNwb25zZRIPCgdzdWNjZXNzGAEgASgIEg8KB21lc3NhZ2UYAiABKAkiuwEKIEdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXF1ZXN0EjwKC2NhbnRvbl9hdXRoGAEgASgLMiUuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkNhbnRvbk5vZGVBdXRoSAASPAoNZXh0ZXJuYWxfYXV0aBgCIAEoCzIjLnNpbHZhbmEuc2V0dGxlbWVudC52MS5FeHRlcm5hbEF1dGhIABITCgtwcm9wb3NhbF9pZBgDIAEoCUIGCgRhdXRoInYKIUdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXNwb25zZRINCgVmb3VuZBgBIAEoCBJCCghwcm9wb3NhbBgCIAEoCzIwLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TZXR0bGVtZW50UHJvcG9zYWxNZXNzYWdlKoUECg9TZXR0bGVtZW50U3RhZ2USIAocU0VUVExFTUVOVF9TVEFHRV9VTlNQRUNJRklFRBAAEiYKIlNFVFRMRU1FTlRfU1RBR0VfUFJPUE9TQUxfUkVDRUlWRUQQARIsCihTRVRUTEVNRU5UX1NUQUdFX1BSRUNPTkZJUk1BVElPTl9QRU5ESU5HEAISIQodU0VUVExFTUVOVF9TVEFHRV9QUkVDT05GSVJNRUQQAxIqCiZTRVRUTEVNRU5UX1NUQUdFX0RWUF9QUk9QT1NBTF9DUkVBVElORxAEEikKJVNFVFRMRU1FTlRfU1RBR0VfRFZQX1BST1BPU0FMX0NSRUFURUQQBRIiCh5TRVRUTEVNRU5UX1NUQUdFX0RWUF9BQ0NFUFRJTkcQBhIhCh1TRVRUTEVNRU5UX1NUQUdFX0RWUF9BQ0NFUFRFRBAHEh8KG1NFVFRMRU1FTlRfU1RBR0VfQUxMT0NBVElORxAIEh4KGlNFVFRMRU1FTlRfU1RBR0VfQUxMT0NBVEVEEAkSHQoZU0VUVExFTUVOVF9TVEFHRV9TRVRUTElORxAKEhwKGFNFVFRMRU1FTlRfU1RBR0VfU0VUVExFRBALEhsKF1NFVFRMRU1FTlRfU1RBR0VfRkFJTEVEEAwSHgoaU0VUVExFTUVOVF9TVEFHRV9DQU5DRUxMRUQQDSqNAQoXUHJlY29uZmlybWF0aW9uUmVzcG9uc2USKAokUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX1VOU1BFQ0lGSUVEEAASIwofUFJFQ09ORklSTUFUSU9OX1JFU1BPTlNFX0FDQ0VQVBABEiMKH1BSRUNPTkZJUk1BVElPTl9SRVNQT05TRV9SRUpFQ1QQAiptCglQYXJ0eVJvbGUSGgoWUEFSVFlfUk9MRV9VTlNQRUNJRklFRBAAEhQKEFBBUlRZX1JPTEVfQlVZRVIQARIVChFQQVJUWV9ST0xFX1NFTExFUhACEhcKE1BBUlRZX1JPTEVfT1BFUkFUT1IQAyr8AwoPVHJhbnNhY3Rpb25UeXBlEiAKHFRSQU5TQUNUSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIpCiVUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9SRVFVRVNUEAESMAosVFJBTlNBQ1RJT05fVFlQRV9VU0VSX1NFUlZJQ0VfUkVRVUVTVF9BQ0NFUFQQAhIoCiRUUkFOU0FDVElPTl9UWVBFX1VTRVJfU0VSVklDRV9DQU5DRUwQAxIgChxUUkFOU0FDVElPTl9UWVBFX0RWUF9QUk9QT1NFEAQSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfQUNDRVBUEAUSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfQ0FOQ0VMEAYSHwobVFJBTlNBQ1RJT05fVFlQRV9EVlBfU0VUVExFEAcSHQoZVFJBTlNBQ1RJT05fVFlQRV9BTExPQ0FURRAIEiQKIFRSQU5TQUNUSU9OX1RZUEVfQUxMT0NBVEVfQ0FOQ0VMEAkSIQodVFJBTlNBQ1RJT05fVFlQRV9GRUVfVFJBTlNGRVIQChIaChZUUkFOU0FDVElPTl9UWVBFX01FUkdFEAsSGwoXVFJBTlNBQ1RJT05fVFlQRV9VTkxPQ0sQDBIaChZUUkFOU0FDVElPTl9UWVBFX09USEVSEA0qiAEKClNlbmRlclR5cGUSGwoXU0VOREVSX1RZUEVfVU5TUEVDSUZJRUQQABIYChRTRU5ERVJfVFlQRV9PUEVSQVRPUhABEhQKEFNFTkRFUl9UWVBFX1VTRVIQAhIVChFTRU5ERVJfVFlQRV9CVVlFUhADEhYKElNFTkRFUl9UWVBFX1NFTExFUhAEKpYBChFUcmFuc2FjdGlvblJlc3VsdBIiCh5UUkFOU0FDVElPTl9SRVNVTFRfVU5TUEVDSUZJRUQQABIeChpUUkFOU0FDVElPTl9SRVNVTFRfUEVORElORxABEh4KGlRSQU5TQUNUSU9OX1JFU1VMVF9TVUNDRVNTEAISHQoZVFJBTlNBQ1RJT05fUkVTVUxUX0ZBSUxFRBADKvMTChNTZXR0bGVtZW50RXZlbnRUeXBlEiUKIVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9VTlNQRUNJRklFRBAAEjwKOFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfQlVZRVJfU1VCTUlUVEVEEAESPAo4U0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9QUk9DRVNTSU5HX0ZFRV9CVVlFUl9DT01QTEVURUQQAhI7CjdTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1BST0NFU1NJTkdfRkVFX0JVWUVSX1JFQ0VJVkVEEAMSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX1NVQk1JVFRFRBAEEi8KK1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUkVRVUVTVF9DT01QTEVURUQQBRIvCitTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFUVVFU1RfV0lUTkVTU0VEEAYSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX1JFSkVDVEVEEAcSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9SRVFVRVNUX0NBTkNFTExFRBAIEj0KOVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfU0VMTEVSX1NVQk1JVFRFRBAJEj0KOVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfU0VMTEVSX0NPTVBMRVRFRBAKEjwKOFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9EVlBfUFJPQ0VTU0lOR19GRUVfU0VMTEVSX1JFQ0VJVkVEEAsSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9BQ0NFUFRfU1VCTUlUVEVEEAwSLgoqU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9BQ0NFUFRfQ09NUExFVEVEEA0SMAosU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9BQ0NFUFRFRF9XSVRORVNTRUQQDhImCiJTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX1JFSkVDVEVEEA8SJwojU0VUVExFTUVOVF9FVkVOVF9UWVBFX0RWUF9XSVRIRFJBV04QEBInCiNTRVRUTEVNRU5UX0VWRU5UX1RZUEVfRFZQX0NBTkNFTExFRBAREkMKP1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX0JVWUVSX1NVQk1JVFRFRBASEkMKP1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX0JVWUVSX0NPTVBMRVRFRBATEkIKPlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX0JVWUVSX1JFQ0VJVkVEEBQSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfU1VCTUlUVEVEEBUSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfQ09NUExFVEVEEBYSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfV0lUTkVTU0VEEBcSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfV0lUSERSQVdOEBgSNAowU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fQlVZRVJfQ0FOQ0VMTEVEEBkSRApAU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fUFJPQ0VTU0lOR19GRUVfU0VMTEVSX1NVQk1JVFRFRBAaEkQKQFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1BST0NFU1NJTkdfRkVFX1NFTExFUl9DT01QTEVURUQQGxJDCj9TRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9QUk9DRVNTSU5HX0ZFRV9TRUxMRVJfUkVDRUlWRUQQHBI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfU1VCTUlUVEVEEB0SNQoxU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fU0VMTEVSX0NPTVBMRVRFRBAeEjUKMVNFVFRMRU1FTlRfRVZFTlRfVFlQRV9BTExPQ0FUSU9OX1NFTExFUl9XSVRORVNTRUQQHxI1CjFTRVRUTEVNRU5UX0VWRU5UX1RZUEVfQUxMT0NBVElPTl9TRUxMRVJfV0lUSERSQVdOECASNQoxU0VUVExFTUVOVF9FVkVOVF9UWVBFX0FMTE9DQVRJT05fU0VMTEVSX0NBTkNFTExFRBAhEi4KKlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9TRVRUTEVNRU5UX1NVQk1JVFRFRBAiEi4KKlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9TRVRUTEVNRU5UX0NPTVBMRVRFRBAjEi4KKlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9TRVRUTEVNRU5UX1dJVE5FU1NFRBAkEj4KOlNFVFRMRU1FTlRfRVZFTlRfVFlQRV9UUkFGRklDX0NPTVBFTlNBVElPTl9CVVlFUl9TVUJNSVRURUQQJRI+CjpTRVRUTEVNRU5UX0VWRU5UX1RZUEVfVFJBRkZJQ19DT01QRU5TQVRJT05fQlVZRVJfQ09NUExFVEVEECYSPwo7U0VUVExFTUVOVF9FVkVOVF9UWVBFX1RSQUZGSUNfQ09NUEVOU0FUSU9OX1NFTExFUl9TVUJNSVRURUQQJxI/CjtTRVRUTEVNRU5UX0VWRU5UX1RZUEVfVFJBRkZJQ19DT01QRU5TQVRJT05fU0VMTEVSX0NPTVBMRVRFRBAoEjMKL1NFVFRMRU1FTlRfRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fUkVRVUVTVEVEECkSLworU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9CVVlFUhAqEjAKLFNFVFRMRU1FTlRfRVZFTlRfVFlQRV9QUkVDT05GSVJNQVRJT05fU0VMTEVSECsSMwovU0VUVExFTUVOVF9FVkVOVF9UWVBFX1BSRUNPTkZJUk1BVElPTl9DQU5DRUxMRUQQLBIhCh1TRVRUTEVNRU5UX0VWRU5UX1RZUEVfVElNRU9VVBAtKqcBCg5SZWNvcmRlZEJ5Um9sZRIgChxSRUNPUkRFRF9CWV9ST0xFX1VOU1BFQ0lGSUVEEAASGgoWUkVDT1JERURfQllfUk9MRV9CVVlFUhABEhsKF1JFQ09SREVEX0JZX1JPTEVfU0VMTEVSEAISHQoZUkVDT1JERURfQllfUk9MRV9PUEVSQVRPUhADEhsKF1JFQ09SREVEX0JZX1JPTEVfU1lTVEVNEAQq0wEKFVNldHRsZW1lbnRFdmVudFJlc3VsdBInCiNTRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9VTlNQRUNJRklFRBAAEiMKH1NFVFRMRU1FTlRfRVZFTlRfUkVTVUxUX1BFTkRJTkcQARIjCh9TRVRUTEVNRU5UX0VWRU5UX1JFU1VMVF9TVUNDRVNTEAISIgoeU0VUVExFTUVOVF9FVkVOVF9SRVNVTFRfRkFJTEVEEAMSIwofU0VUVExFTUVOVF9FVkVOVF9SRVNVTFRfVElNRU9VVBAEKsMCChFEdnBTdGVwU3RhdHVzRW51bRIfChtEVlBfU1RFUF9TVEFUVVNfVU5TUEVDSUZJRUQQABIbChdEVlBfU1RFUF9TVEFUVVNfUEVORElORxABEh0KGURWUF9TVEVQX1NUQVRVU19TVUJNSVRURUQQAhIdChlEVlBfU1RFUF9TVEFUVVNfQ09NUExFVEVEEAMSHQoZRFZQX1NURVBfU1RBVFVTX0NPTkZJUk1FRBAEEhoKFkRWUF9TVEVQX1NUQVRVU19GQUlMRUQQBRIcChhEVlBfU1RFUF9TVEFUVVNfUkVKRUNURUQQBhIdChlEVlBfU1RFUF9TVEFUVVNfV0lUSERSQVdOEAcSHQoZRFZQX1NURVBfU1RBVFVTX0NBTkNFTExFRBAIEhsKF0RWUF9TVEVQX1NUQVRVU19USU1FT1VUEAky/QwKEVNldHRsZW1lbnRTZXJ2aWNlEnIKEFNldHRsZW1lbnRTdHJlYW0SLC5zaWx2YW5hLnNldHRsZW1lbnQudjEuQ2FudG9uVG9TZXJ2ZXJNZXNzYWdlGiwuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNlcnZlclRvQ2FudG9uTWVzc2FnZSgBMAESfAoTR2V0UGVuZGluZ1Byb3Bvc2FscxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRQZW5kaW5nUHJvcG9zYWxzUmVzcG9uc2USfAoTR2V0U2V0dGxlbWVudFN0YXR1cxIxLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVxdWVzdBoyLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50U3RhdHVzUmVzcG9uc2USZAoVU3VibWl0UHJlY29uZmlybWF0aW9uEjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlN1Ym1pdFByZWNvbmZpcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSggEKFVNhdmVEaXNjbG9zZWRDb250cmFjdBIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5TYXZlRGlzY2xvc2VkQ29udHJhY3RSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlNhdmVEaXNjbG9zZWRDb250cmFjdFJlc3BvbnNlEoIBChVHZXREaXNjbG9zZWRDb250cmFjdHMSMy5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0RGlzY2xvc2VkQ29udHJhY3RzUmVxdWVzdBo0LnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXREaXNjbG9zZWRDb250cmFjdHNSZXNwb25zZRJzChBSZWNvcmRTZXR0bGVtZW50Ei4uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRSZXF1ZXN0Gi8uc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRSZXNwb25zZRJ2ChFSZWNvcmRUcmFuc2FjdGlvbhIvLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRUcmFuc2FjdGlvblJlcXVlc3QaMC5zaWx2YW5hLnNldHRsZW1lbnQudjEuUmVjb3JkVHJhbnNhY3Rpb25SZXNwb25zZRKCAQoVR2V0VHJhbnNhY3Rpb25IaXN0b3J5EjMuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFRyYW5zYWN0aW9uSGlzdG9yeVJlcXVlc3QaNC5zaWx2YW5hLnNldHRsZW1lbnQudjEuR2V0VHJhbnNhY3Rpb25IaXN0b3J5UmVzcG9uc2USggEKFVJlY29yZFNldHRsZW1lbnRFdmVudBIzLnNpbHZhbmEuc2V0dGxlbWVudC52MS5SZWNvcmRTZXR0bGVtZW50RXZlbnRSZXF1ZXN0GjQuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlJlY29yZFNldHRsZW1lbnRFdmVudFJlc3BvbnNlEn8KFEdldFNldHRsZW1lbnRIaXN0b3J5EjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRIaXN0b3J5UmVxdWVzdBozLnNpbHZhbmEuc2V0dGxlbWVudC52MS5HZXRTZXR0bGVtZW50SGlzdG9yeVJlc3BvbnNlEn8KFFVwZGF0ZVByb3Bvc2FsU3RhdHVzEjIuc2lsdmFuYS5zZXR0bGVtZW50LnYxLlVwZGF0ZVByb3Bvc2FsU3RhdHVzUmVxdWVzdBozLnNpbHZhbmEuc2V0dGxlbWVudC52MS5VcGRhdGVQcm9wb3NhbFN0YXR1c1Jlc3BvbnNlEo4BChlHZXRTZXR0bGVtZW50UHJvcG9zYWxCeUlkEjcuc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXF1ZXN0Gjguc2lsdmFuYS5zZXR0bGVtZW50LnYxLkdldFNldHRsZW1lbnRQcm9wb3NhbEJ5SWRSZXNwb25zZUI1WjNnaXRodWIuY29tL1NpbHZhbmFPbmUvY2FudG9uLWFnZW50L3Byb3RvO3NldHRsZW1lbnRiBnByb3RvMw", [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)
@@ -54,6 +54,45 @@ export type CantonNodeAuth = Message<"silvana.settlement.v1.CantonNodeAuth"> & {
54
54
  export const CantonNodeAuthSchema: GenMessage<CantonNodeAuth> = /*@__PURE__*/
55
55
  messageDesc(file_proto_silvana_settlement_v1_settlement, 0);
56
56
 
57
+ /**
58
+ * External account authentication (using Ed25519 signed JWT)
59
+ * For external parties that sign JWTs with their own private keys
60
+ * Public key is verified against party_id fingerprint:
61
+ * fingerprint = SHA256(0x0000000C || public_key_bytes)
62
+ * party_id format: "identifier::1220{fingerprint}"
63
+ *
64
+ * @generated from message silvana.settlement.v1.ExternalAuth
65
+ */
66
+ export type ExternalAuth = Message<"silvana.settlement.v1.ExternalAuth"> & {
67
+ /**
68
+ * JWT signed with external account's Ed25519 private key
69
+ *
70
+ * @generated from field: string jwt = 1;
71
+ */
72
+ jwt: string;
73
+
74
+ /**
75
+ * Canton party ID of the external account
76
+ *
77
+ * @generated from field: string party_id = 2;
78
+ */
79
+ partyId: string;
80
+
81
+ /**
82
+ * Ed25519 public key (hex) - verified against party_id fingerprint
83
+ *
84
+ * @generated from field: string public_key = 3;
85
+ */
86
+ publicKey: string;
87
+ };
88
+
89
+ /**
90
+ * Describes the message silvana.settlement.v1.ExternalAuth.
91
+ * Use `create(ExternalAuthSchema)` to create a new message.
92
+ */
93
+ export const ExternalAuthSchema: GenMessage<ExternalAuth> = /*@__PURE__*/
94
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 1);
95
+
57
96
  /**
58
97
  * Instrument details for settlement
59
98
  *
@@ -95,7 +134,7 @@ export type SettlementInstrument = Message<"silvana.settlement.v1.SettlementInst
95
134
  * Use `create(SettlementInstrumentSchema)` to create a new message.
96
135
  */
97
136
  export const SettlementInstrumentSchema: GenMessage<SettlementInstrument> = /*@__PURE__*/
98
- messageDesc(file_proto_silvana_settlement_v1_settlement, 1);
137
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 2);
99
138
 
100
139
  /**
101
140
  * Settlement proposal from orderbook
@@ -176,6 +215,28 @@ export type SettlementProposalMessage = Message<"silvana.settlement.v1.Settlemen
176
215
  * @generated from field: google.protobuf.Timestamp created_at = 12;
177
216
  */
178
217
  createdAt?: Timestamp;
218
+
219
+ /**
220
+ * Processing fees (DECIMAL as string)
221
+ *
222
+ * @generated from field: string dvp_processing_fee_buyer = 13;
223
+ */
224
+ dvpProcessingFeeBuyer: string;
225
+
226
+ /**
227
+ * @generated from field: string dvp_processing_fee_seller = 14;
228
+ */
229
+ dvpProcessingFeeSeller: string;
230
+
231
+ /**
232
+ * @generated from field: string allocation_processing_fee_buyer = 15;
233
+ */
234
+ allocationProcessingFeeBuyer: string;
235
+
236
+ /**
237
+ * @generated from field: string allocation_processing_fee_seller = 16;
238
+ */
239
+ allocationProcessingFeeSeller: string;
179
240
  };
180
241
 
181
242
  /**
@@ -183,7 +244,7 @@ export type SettlementProposalMessage = Message<"silvana.settlement.v1.Settlemen
183
244
  * Use `create(SettlementProposalMessageSchema)` to create a new message.
184
245
  */
185
246
  export const SettlementProposalMessageSchema: GenMessage<SettlementProposalMessage> = /*@__PURE__*/
186
- messageDesc(file_proto_silvana_settlement_v1_settlement, 2);
247
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 3);
187
248
 
188
249
  /**
189
250
  * Preconfirmation request
@@ -235,7 +296,7 @@ export type PreconfirmationRequest = Message<"silvana.settlement.v1.Preconfirmat
235
296
  * Use `create(PreconfirmationRequestSchema)` to create a new message.
236
297
  */
237
298
  export const PreconfirmationRequestSchema: GenMessage<PreconfirmationRequest> = /*@__PURE__*/
238
- messageDesc(file_proto_silvana_settlement_v1_settlement, 3);
299
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 4);
239
300
 
240
301
  /**
241
302
  * Preconfirmation decision from Canton node
@@ -290,7 +351,7 @@ export type PreconfirmationDecision = Message<"silvana.settlement.v1.Preconfirma
290
351
  * Use `create(PreconfirmationDecisionSchema)` to create a new message.
291
352
  */
292
353
  export const PreconfirmationDecisionSchema: GenMessage<PreconfirmationDecision> = /*@__PURE__*/
293
- messageDesc(file_proto_silvana_settlement_v1_settlement, 4);
354
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 5);
294
355
 
295
356
  /**
296
357
  * DVP contract creation notification
@@ -349,7 +410,7 @@ export type DvpContractCreated = Message<"silvana.settlement.v1.DvpContractCreat
349
410
  * Use `create(DvpContractCreatedSchema)` to create a new message.
350
411
  */
351
412
  export const DvpContractCreatedSchema: GenMessage<DvpContractCreated> = /*@__PURE__*/
352
- messageDesc(file_proto_silvana_settlement_v1_settlement, 5);
413
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 6);
353
414
 
354
415
  /**
355
416
  * DVP acceptance notification
@@ -401,7 +462,7 @@ export type DvpContractAccepted = Message<"silvana.settlement.v1.DvpContractAcce
401
462
  * Use `create(DvpContractAcceptedSchema)` to create a new message.
402
463
  */
403
464
  export const DvpContractAcceptedSchema: GenMessage<DvpContractAccepted> = /*@__PURE__*/
404
- messageDesc(file_proto_silvana_settlement_v1_settlement, 6);
465
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 7);
405
466
 
406
467
  /**
407
468
  * Allocation status update
@@ -478,7 +539,7 @@ export type AllocationStatus = Message<"silvana.settlement.v1.AllocationStatus">
478
539
  * Use `create(AllocationStatusSchema)` to create a new message.
479
540
  */
480
541
  export const AllocationStatusSchema: GenMessage<AllocationStatus> = /*@__PURE__*/
481
- messageDesc(file_proto_silvana_settlement_v1_settlement, 7);
542
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 8);
482
543
 
483
544
  /**
484
545
  * Settlement execution status
@@ -545,7 +606,7 @@ export type SettlementExecutionStatus = Message<"silvana.settlement.v1.Settlemen
545
606
  * Use `create(SettlementExecutionStatusSchema)` to create a new message.
546
607
  */
547
608
  export const SettlementExecutionStatusSchema: GenMessage<SettlementExecutionStatus> = /*@__PURE__*/
548
- messageDesc(file_proto_silvana_settlement_v1_settlement, 8);
609
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 9);
549
610
 
550
611
  /**
551
612
  * User service contract info (for DVP operations)
@@ -583,7 +644,7 @@ export type UserServiceInfo = Message<"silvana.settlement.v1.UserServiceInfo"> &
583
644
  * Use `create(UserServiceInfoSchema)` to create a new message.
584
645
  */
585
646
  export const UserServiceInfoSchema: GenMessage<UserServiceInfo> = /*@__PURE__*/
586
- messageDesc(file_proto_silvana_settlement_v1_settlement, 9);
647
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 10);
587
648
 
588
649
  /**
589
650
  * Initial handshake from Canton node to server
@@ -630,7 +691,7 @@ export type SettlementHandshake = Message<"silvana.settlement.v1.SettlementHands
630
691
  * Use `create(SettlementHandshakeSchema)` to create a new message.
631
692
  */
632
693
  export const SettlementHandshakeSchema: GenMessage<SettlementHandshake> = /*@__PURE__*/
633
- messageDesc(file_proto_silvana_settlement_v1_settlement, 10);
694
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 11);
634
695
 
635
696
  /**
636
697
  * Handshake acknowledgment from server
@@ -671,7 +732,7 @@ export type HandshakeAck = Message<"silvana.settlement.v1.HandshakeAck"> & {
671
732
  * Use `create(HandshakeAckSchema)` to create a new message.
672
733
  */
673
734
  export const HandshakeAckSchema: GenMessage<HandshakeAck> = /*@__PURE__*/
674
- messageDesc(file_proto_silvana_settlement_v1_settlement, 11);
735
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 12);
675
736
 
676
737
  /**
677
738
  * Heartbeat message (bidirectional)
@@ -700,7 +761,7 @@ export type Heartbeat = Message<"silvana.settlement.v1.Heartbeat"> & {
700
761
  * Use `create(HeartbeatSchema)` to create a new message.
701
762
  */
702
763
  export const HeartbeatSchema: GenMessage<Heartbeat> = /*@__PURE__*/
703
- messageDesc(file_proto_silvana_settlement_v1_settlement, 12);
764
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 13);
704
765
 
705
766
  /**
706
767
  * Liquidity provider ping message (Canton node to server)
@@ -727,7 +788,7 @@ export type LiquidityProviderPing = Message<"silvana.settlement.v1.LiquidityProv
727
788
  * Use `create(LiquidityProviderPingSchema)` to create a new message.
728
789
  */
729
790
  export const LiquidityProviderPingSchema: GenMessage<LiquidityProviderPing> = /*@__PURE__*/
730
- messageDesc(file_proto_silvana_settlement_v1_settlement, 13);
791
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 14);
731
792
 
732
793
  /**
733
794
  * Liquidity provider pong message (server to Canton node)
@@ -768,7 +829,7 @@ export type LiquidityProviderPong = Message<"silvana.settlement.v1.LiquidityProv
768
829
  * Use `create(LiquidityProviderPongSchema)` to create a new message.
769
830
  */
770
831
  export const LiquidityProviderPongSchema: GenMessage<LiquidityProviderPong> = /*@__PURE__*/
771
- messageDesc(file_proto_silvana_settlement_v1_settlement, 14);
832
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 15);
772
833
 
773
834
  /**
774
835
  * Stream message from server to Canton node
@@ -870,7 +931,7 @@ export type ServerToCantonMessage = Message<"silvana.settlement.v1.ServerToCanto
870
931
  * Use `create(ServerToCantonMessageSchema)` to create a new message.
871
932
  */
872
933
  export const ServerToCantonMessageSchema: GenMessage<ServerToCantonMessage> = /*@__PURE__*/
873
- messageDesc(file_proto_silvana_settlement_v1_settlement, 15);
934
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 16);
874
935
 
875
936
  /**
876
937
  * Stream message from Canton node to server
@@ -972,7 +1033,7 @@ export type CantonToServerMessage = Message<"silvana.settlement.v1.CantonToServe
972
1033
  * Use `create(CantonToServerMessageSchema)` to create a new message.
973
1034
  */
974
1035
  export const CantonToServerMessageSchema: GenMessage<CantonToServerMessage> = /*@__PURE__*/
975
- messageDesc(file_proto_silvana_settlement_v1_settlement, 16);
1036
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 17);
976
1037
 
977
1038
  /**
978
1039
  * Report DVP proposal creation
@@ -1023,7 +1084,7 @@ export type DvpCreationReport = Message<"silvana.settlement.v1.DvpCreationReport
1023
1084
  * Use `create(DvpCreationReportSchema)` to create a new message.
1024
1085
  */
1025
1086
  export const DvpCreationReportSchema: GenMessage<DvpCreationReport> = /*@__PURE__*/
1026
- messageDesc(file_proto_silvana_settlement_v1_settlement, 17);
1087
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 18);
1027
1088
 
1028
1089
  /**
1029
1090
  * Report DVP acceptance
@@ -1074,7 +1135,7 @@ export type DvpAcceptanceReport = Message<"silvana.settlement.v1.DvpAcceptanceRe
1074
1135
  * Use `create(DvpAcceptanceReportSchema)` to create a new message.
1075
1136
  */
1076
1137
  export const DvpAcceptanceReportSchema: GenMessage<DvpAcceptanceReport> = /*@__PURE__*/
1077
- messageDesc(file_proto_silvana_settlement_v1_settlement, 18);
1138
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 19);
1078
1139
 
1079
1140
  /**
1080
1141
  * Report allocation completion
@@ -1137,7 +1198,7 @@ export type AllocationReport = Message<"silvana.settlement.v1.AllocationReport">
1137
1198
  * Use `create(AllocationReportSchema)` to create a new message.
1138
1199
  */
1139
1200
  export const AllocationReportSchema: GenMessage<AllocationReport> = /*@__PURE__*/
1140
- messageDesc(file_proto_silvana_settlement_v1_settlement, 19);
1201
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 20);
1141
1202
 
1142
1203
  /**
1143
1204
  * Report settlement completion
@@ -1200,7 +1261,7 @@ export type SettlementReport = Message<"silvana.settlement.v1.SettlementReport">
1200
1261
  * Use `create(SettlementReportSchema)` to create a new message.
1201
1262
  */
1202
1263
  export const SettlementReportSchema: GenMessage<SettlementReport> = /*@__PURE__*/
1203
- messageDesc(file_proto_silvana_settlement_v1_settlement, 20);
1264
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 21);
1204
1265
 
1205
1266
  /**
1206
1267
  * Error report
@@ -1251,7 +1312,7 @@ export type ErrorReport = Message<"silvana.settlement.v1.ErrorReport"> & {
1251
1312
  * Use `create(ErrorReportSchema)` to create a new message.
1252
1313
  */
1253
1314
  export const ErrorReportSchema: GenMessage<ErrorReport> = /*@__PURE__*/
1254
- messageDesc(file_proto_silvana_settlement_v1_settlement, 21);
1315
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 22);
1255
1316
 
1256
1317
  /**
1257
1318
  * Status update
@@ -1299,7 +1360,7 @@ export type StatusUpdate = Message<"silvana.settlement.v1.StatusUpdate"> & {
1299
1360
  * Use `create(StatusUpdateSchema)` to create a new message.
1300
1361
  */
1301
1362
  export const StatusUpdateSchema: GenMessage<StatusUpdate> = /*@__PURE__*/
1302
- messageDesc(file_proto_silvana_settlement_v1_settlement, 22);
1363
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 23);
1303
1364
 
1304
1365
  /**
1305
1366
  * Command to Canton node
@@ -1342,7 +1403,7 @@ export type SettlementCommand = Message<"silvana.settlement.v1.SettlementCommand
1342
1403
  * Use `create(SettlementCommandSchema)` to create a new message.
1343
1404
  */
1344
1405
  export const SettlementCommandSchema: GenMessage<SettlementCommand> = /*@__PURE__*/
1345
- messageDesc(file_proto_silvana_settlement_v1_settlement, 23);
1406
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 24);
1346
1407
 
1347
1408
  /**
1348
1409
  * @generated from enum silvana.settlement.v1.SettlementCommand.CommandType
@@ -1388,7 +1449,7 @@ export enum SettlementCommand_CommandType {
1388
1449
  * Describes the enum silvana.settlement.v1.SettlementCommand.CommandType.
1389
1450
  */
1390
1451
  export const SettlementCommand_CommandTypeSchema: GenEnum<SettlementCommand_CommandType> = /*@__PURE__*/
1391
- enumDesc(file_proto_silvana_settlement_v1_settlement, 23, 0);
1452
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 24, 0);
1392
1453
 
1393
1454
  /**
1394
1455
  * Query to Canton node
@@ -1427,7 +1488,7 @@ export type SettlementQuery = Message<"silvana.settlement.v1.SettlementQuery"> &
1427
1488
  * Use `create(SettlementQuerySchema)` to create a new message.
1428
1489
  */
1429
1490
  export const SettlementQuerySchema: GenMessage<SettlementQuery> = /*@__PURE__*/
1430
- messageDesc(file_proto_silvana_settlement_v1_settlement, 24);
1491
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 25);
1431
1492
 
1432
1493
  /**
1433
1494
  * @generated from enum silvana.settlement.v1.SettlementQuery.QueryType
@@ -1468,7 +1529,7 @@ export enum SettlementQuery_QueryType {
1468
1529
  * Describes the enum silvana.settlement.v1.SettlementQuery.QueryType.
1469
1530
  */
1470
1531
  export const SettlementQuery_QueryTypeSchema: GenEnum<SettlementQuery_QueryType> = /*@__PURE__*/
1471
- enumDesc(file_proto_silvana_settlement_v1_settlement, 24, 0);
1532
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 25, 0);
1472
1533
 
1473
1534
  /**
1474
1535
  * Response to command or query
@@ -1502,7 +1563,7 @@ export type SettlementResponse = Message<"silvana.settlement.v1.SettlementRespon
1502
1563
  * Use `create(SettlementResponseSchema)` to create a new message.
1503
1564
  */
1504
1565
  export const SettlementResponseSchema: GenMessage<SettlementResponse> = /*@__PURE__*/
1505
- messageDesc(file_proto_silvana_settlement_v1_settlement, 25);
1566
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 26);
1506
1567
 
1507
1568
  /**
1508
1569
  * @generated from message silvana.settlement.v1.GetPendingProposalsRequest
@@ -1529,7 +1590,7 @@ export type GetPendingProposalsRequest = Message<"silvana.settlement.v1.GetPendi
1529
1590
  * Use `create(GetPendingProposalsRequestSchema)` to create a new message.
1530
1591
  */
1531
1592
  export const GetPendingProposalsRequestSchema: GenMessage<GetPendingProposalsRequest> = /*@__PURE__*/
1532
- messageDesc(file_proto_silvana_settlement_v1_settlement, 26);
1593
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 27);
1533
1594
 
1534
1595
  /**
1535
1596
  * @generated from message silvana.settlement.v1.GetPendingProposalsResponse
@@ -1551,7 +1612,7 @@ export type GetPendingProposalsResponse = Message<"silvana.settlement.v1.GetPend
1551
1612
  * Use `create(GetPendingProposalsResponseSchema)` to create a new message.
1552
1613
  */
1553
1614
  export const GetPendingProposalsResponseSchema: GenMessage<GetPendingProposalsResponse> = /*@__PURE__*/
1554
- messageDesc(file_proto_silvana_settlement_v1_settlement, 27);
1615
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1555
1616
 
1556
1617
  /**
1557
1618
  * @generated from message silvana.settlement.v1.GetSettlementStatusRequest
@@ -1573,275 +1634,217 @@ export type GetSettlementStatusRequest = Message<"silvana.settlement.v1.GetSettl
1573
1634
  * Use `create(GetSettlementStatusRequestSchema)` to create a new message.
1574
1635
  */
1575
1636
  export const GetSettlementStatusRequestSchema: GenMessage<GetSettlementStatusRequest> = /*@__PURE__*/
1576
- messageDesc(file_proto_silvana_settlement_v1_settlement, 28);
1637
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 29);
1577
1638
 
1578
1639
  /**
1579
- * @generated from message silvana.settlement.v1.GetSettlementStatusResponse
1640
+ * Status of a single step in the DVP flow with details
1641
+ *
1642
+ * @generated from message silvana.settlement.v1.DvpStepStatus
1580
1643
  */
1581
- export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSettlementStatusResponse"> & {
1644
+ export type DvpStepStatus = Message<"silvana.settlement.v1.DvpStepStatus"> & {
1582
1645
  /**
1583
- * UUID v7
1646
+ * Step name (e.g., "dvp_processing_fee_buyer", "dvp_request", etc.)
1584
1647
  *
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;
1648
+ * @generated from field: string step_name = 1;
1601
1649
  */
1602
- dvpProposalCid?: string;
1650
+ stepName: string;
1603
1651
 
1604
1652
  /**
1605
- * @generated from field: optional string dvp_cid = 5;
1653
+ * Current status
1654
+ *
1655
+ * @generated from field: silvana.settlement.v1.DvpStepStatusEnum status = 2;
1606
1656
  */
1607
- dvpCid?: string;
1657
+ status: DvpStepStatusEnum;
1608
1658
 
1609
1659
  /**
1610
- * @generated from field: optional string allocation_buyer_cid = 6;
1660
+ * Contract ID (if created)
1661
+ *
1662
+ * @generated from field: optional string contract_id = 3;
1611
1663
  */
1612
- allocationBuyerCid?: string;
1664
+ contractId?: string;
1613
1665
 
1614
1666
  /**
1615
- * @generated from field: optional string allocation_seller_cid = 7;
1667
+ * Update ID (Canton ledger update)
1668
+ *
1669
+ * @generated from field: optional string update_id = 4;
1616
1670
  */
1617
- allocationSellerCid?: string;
1671
+ updateId?: string;
1618
1672
 
1619
1673
  /**
1620
- * @generated from field: optional string settled_dvp_cid = 8;
1674
+ * Latest event timestamp
1675
+ *
1676
+ * @generated from field: optional google.protobuf.Timestamp updated_at = 5;
1621
1677
  */
1622
- settledDvpCid?: string;
1678
+ updatedAt?: Timestamp;
1623
1679
 
1624
1680
  /**
1625
- * @generated from field: optional string error_message = 9;
1681
+ * Error message (if failed)
1682
+ *
1683
+ * @generated from field: optional string error_message = 6;
1626
1684
  */
1627
1685
  errorMessage?: string;
1628
1686
 
1629
1687
  /**
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;
1688
+ * Who confirmed this step (party ID)
1689
+ *
1690
+ * @generated from field: optional string confirmed_by = 7;
1648
1691
  */
1649
- auth?: CantonNodeAuth;
1692
+ confirmedBy?: string;
1650
1693
 
1651
1694
  /**
1652
- * @generated from field: silvana.settlement.v1.PreconfirmationDecision decision = 2;
1695
+ * Role of who confirmed (buyer/seller/operator)
1696
+ *
1697
+ * @generated from field: optional silvana.settlement.v1.RecordedByRole confirmed_by_role = 8;
1653
1698
  */
1654
- decision?: PreconfirmationDecision;
1699
+ confirmedByRole?: RecordedByRole;
1655
1700
  };
1656
1701
 
1657
1702
  /**
1658
- * Describes the message silvana.settlement.v1.SubmitPreconfirmationRequest.
1659
- * Use `create(SubmitPreconfirmationRequestSchema)` to create a new message.
1703
+ * Describes the message silvana.settlement.v1.DvpStepStatus.
1704
+ * Use `create(DvpStepStatusSchema)` to create a new message.
1660
1705
  */
1661
- export const SubmitPreconfirmationRequestSchema: GenMessage<SubmitPreconfirmationRequest> = /*@__PURE__*/
1706
+ export const DvpStepStatusSchema: GenMessage<DvpStepStatus> = /*@__PURE__*/
1662
1707
  messageDesc(file_proto_silvana_settlement_v1_settlement, 30);
1663
1708
 
1664
1709
  /**
1665
- * Update settlement proposal request with optimistic locking
1710
+ * Enhanced GetSettlementStatusResponse with detailed DVP flow progress
1666
1711
  *
1667
- * @generated from message silvana.settlement.v1.UpdateSettlementProposalRequest
1712
+ * @generated from message silvana.settlement.v1.GetSettlementStatusResponse
1668
1713
  */
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
-
1714
+ export type GetSettlementStatusResponse = Message<"silvana.settlement.v1.GetSettlementStatusResponse"> & {
1675
1715
  /**
1676
1716
  * UUID v7
1677
1717
  *
1678
- * @generated from field: string proposal_id = 2;
1718
+ * @generated from field: string proposal_id = 1;
1679
1719
  */
1680
1720
  proposalId: string;
1681
1721
 
1682
1722
  /**
1683
- * For optimistic locking - must match current version
1684
- *
1685
- * @generated from field: uint64 expected_version = 3;
1723
+ * @generated from field: string settlement_id = 2;
1686
1724
  */
1687
- expectedVersion: bigint;
1725
+ settlementId: string;
1688
1726
 
1689
1727
  /**
1690
- * Fields that can be updated (all optional - only set fields will be updated)
1728
+ * Overall settlement stage
1691
1729
  *
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;
1730
+ * @generated from field: silvana.settlement.v1.SettlementStage stage = 3;
1713
1731
  */
1714
- allocationBuyerCid?: string;
1732
+ stage: SettlementStage;
1715
1733
 
1716
1734
  /**
1717
- * @generated from field: optional string allocation_buyer_update_id = 9;
1735
+ * Overall error message (if failed)
1736
+ *
1737
+ * @generated from field: optional string error_message = 4;
1718
1738
  */
1719
- allocationBuyerUpdateId?: string;
1739
+ errorMessage?: string;
1720
1740
 
1721
1741
  /**
1722
- * @generated from field: optional string allocation_seller_cid = 10;
1742
+ * Last updated timestamp
1743
+ *
1744
+ * @generated from field: google.protobuf.Timestamp updated_at = 5;
1723
1745
  */
1724
- allocationSellerCid?: string;
1746
+ updatedAt?: Timestamp;
1725
1747
 
1726
1748
  /**
1727
- * @generated from field: optional string allocation_seller_update_id = 11;
1749
+ * Fee payment steps
1750
+ *
1751
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_processing_fee_buyer = 10;
1728
1752
  */
1729
- allocationSellerUpdateId?: string;
1753
+ dvpProcessingFeeBuyer?: DvpStepStatus;
1730
1754
 
1731
1755
  /**
1732
- * @generated from field: optional string settled_dvp_cid = 12;
1756
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_processing_fee_seller = 11;
1733
1757
  */
1734
- settledDvpCid?: string;
1758
+ dvpProcessingFeeSeller?: DvpStepStatus;
1735
1759
 
1736
1760
  /**
1737
- * @generated from field: optional string settlement_update_id = 13;
1761
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_processing_fee_buyer = 12;
1738
1762
  */
1739
- settlementUpdateId?: string;
1763
+ allocationProcessingFeeBuyer?: DvpStepStatus;
1740
1764
 
1741
1765
  /**
1742
- * @generated from field: optional string settlement_completion_offset = 14;
1766
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_processing_fee_seller = 13;
1743
1767
  */
1744
- settlementCompletionOffset?: string;
1768
+ allocationProcessingFeeSeller?: DvpStepStatus;
1745
1769
 
1746
1770
  /**
1747
- * Move to a new stage
1771
+ * DVP contract steps
1748
1772
  *
1749
- * @generated from field: optional silvana.settlement.v1.SettlementStage new_stage = 15;
1773
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_request = 14;
1750
1774
  */
1751
- newStage?: SettlementStage;
1752
-
1753
- /**
1754
- * @generated from field: optional string error_message = 16;
1755
- */
1756
- errorMessage?: string;
1775
+ dvpRequest?: DvpStepStatus;
1757
1776
 
1758
1777
  /**
1759
- * @generated from field: optional google.protobuf.Struct metadata = 17;
1778
+ * @generated from field: silvana.settlement.v1.DvpStepStatus dvp_accept = 15;
1760
1779
  */
1761
- metadata?: JsonObject;
1780
+ dvpAccept?: DvpStepStatus;
1762
1781
 
1763
1782
  /**
1764
- * Set buyer fee transfer initiated
1783
+ * Allocation steps
1765
1784
  *
1766
- * @generated from field: optional bool buyer_fee_sent = 18;
1785
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_buyer = 16;
1767
1786
  */
1768
- buyerFeeSent?: boolean;
1787
+ allocationBuyer?: DvpStepStatus;
1769
1788
 
1770
1789
  /**
1771
- * Set seller fee transfer initiated
1772
- *
1773
- * @generated from field: optional bool seller_fee_sent = 19;
1790
+ * @generated from field: silvana.settlement.v1.DvpStepStatus allocation_seller = 17;
1774
1791
  */
1775
- sellerFeeSent?: boolean;
1792
+ allocationSeller?: DvpStepStatus;
1776
1793
 
1777
1794
  /**
1778
- * Canton update ID for buyer fee transfer
1795
+ * Settlement step
1779
1796
  *
1780
- * @generated from field: optional string buyer_fee_update_id = 20;
1797
+ * @generated from field: silvana.settlement.v1.DvpStepStatus settlement = 18;
1781
1798
  */
1782
- buyerFeeUpdateId?: string;
1799
+ settlement?: DvpStepStatus;
1783
1800
 
1784
1801
  /**
1785
- * Canton update ID for seller fee transfer
1802
+ * Traffic compensation steps
1786
1803
  *
1787
- * @generated from field: optional string seller_fee_update_id = 21;
1804
+ * @generated from field: silvana.settlement.v1.DvpStepStatus traffic_compensation_buyer = 19;
1788
1805
  */
1789
- sellerFeeUpdateId?: string;
1806
+ trafficCompensationBuyer?: DvpStepStatus;
1790
1807
 
1791
1808
  /**
1792
- * When buyer fee was paid
1793
- *
1794
- * @generated from field: optional google.protobuf.Timestamp buyer_fee_paid_at = 22;
1809
+ * @generated from field: silvana.settlement.v1.DvpStepStatus traffic_compensation_seller = 20;
1795
1810
  */
1796
- buyerFeePaidAt?: Timestamp;
1811
+ trafficCompensationSeller?: DvpStepStatus;
1797
1812
 
1798
1813
  /**
1799
- * When seller fee was paid
1814
+ * Preconfirmation step (optional)
1800
1815
  *
1801
- * @generated from field: optional google.protobuf.Timestamp seller_fee_paid_at = 23;
1816
+ * @generated from field: silvana.settlement.v1.DvpStepStatus preconfirmation = 21;
1802
1817
  */
1803
- sellerFeePaidAt?: Timestamp;
1818
+ preconfirmation?: DvpStepStatus;
1804
1819
  };
1805
1820
 
1806
1821
  /**
1807
- * Describes the message silvana.settlement.v1.UpdateSettlementProposalRequest.
1808
- * Use `create(UpdateSettlementProposalRequestSchema)` to create a new message.
1822
+ * Describes the message silvana.settlement.v1.GetSettlementStatusResponse.
1823
+ * Use `create(GetSettlementStatusResponseSchema)` to create a new message.
1809
1824
  */
1810
- export const UpdateSettlementProposalRequestSchema: GenMessage<UpdateSettlementProposalRequest> = /*@__PURE__*/
1825
+ export const GetSettlementStatusResponseSchema: GenMessage<GetSettlementStatusResponse> = /*@__PURE__*/
1811
1826
  messageDesc(file_proto_silvana_settlement_v1_settlement, 31);
1812
1827
 
1813
1828
  /**
1814
- * @generated from message silvana.settlement.v1.UpdateSettlementProposalResponse
1829
+ * @generated from message silvana.settlement.v1.SubmitPreconfirmationRequest
1815
1830
  */
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
-
1831
+ export type SubmitPreconfirmationRequest = Message<"silvana.settlement.v1.SubmitPreconfirmationRequest"> & {
1827
1832
  /**
1828
- * New version after update
1829
- *
1830
- * @generated from field: uint64 new_version = 3;
1833
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
1831
1834
  */
1832
- newVersion: bigint;
1835
+ auth?: CantonNodeAuth;
1833
1836
 
1834
1837
  /**
1835
- * @generated from field: silvana.settlement.v1.SettlementStage current_stage = 4;
1838
+ * @generated from field: silvana.settlement.v1.PreconfirmationDecision decision = 2;
1836
1839
  */
1837
- currentStage: SettlementStage;
1840
+ decision?: PreconfirmationDecision;
1838
1841
  };
1839
1842
 
1840
1843
  /**
1841
- * Describes the message silvana.settlement.v1.UpdateSettlementProposalResponse.
1842
- * Use `create(UpdateSettlementProposalResponseSchema)` to create a new message.
1844
+ * Describes the message silvana.settlement.v1.SubmitPreconfirmationRequest.
1845
+ * Use `create(SubmitPreconfirmationRequestSchema)` to create a new message.
1843
1846
  */
1844
- export const UpdateSettlementProposalResponseSchema: GenMessage<UpdateSettlementProposalResponse> = /*@__PURE__*/
1847
+ export const SubmitPreconfirmationRequestSchema: GenMessage<SubmitPreconfirmationRequest> = /*@__PURE__*/
1845
1848
  messageDesc(file_proto_silvana_settlement_v1_settlement, 32);
1846
1849
 
1847
1850
  /**
@@ -1909,6 +1912,13 @@ export type SaveDisclosedContractRequest = Message<"silvana.settlement.v1.SaveDi
1909
1912
  * @generated from field: silvana.settlement.v1.DisclosedContractMessage contract = 3;
1910
1913
  */
1911
1914
  contract?: DisclosedContractMessage;
1915
+
1916
+ /**
1917
+ * Alternative auth for external parties
1918
+ *
1919
+ * @generated from field: optional silvana.settlement.v1.ExternalAuth external_auth = 10;
1920
+ */
1921
+ externalAuth?: ExternalAuth;
1912
1922
  };
1913
1923
 
1914
1924
  /**
@@ -2248,6 +2258,13 @@ export type RecordTransactionRequest = Message<"silvana.settlement.v1.RecordTran
2248
2258
  * @generated from field: optional google.protobuf.Struct daml_choices = 25;
2249
2259
  */
2250
2260
  damlChoices?: JsonObject;
2261
+
2262
+ /**
2263
+ * Alternative auth for external parties
2264
+ *
2265
+ * @generated from field: optional silvana.settlement.v1.ExternalAuth external_auth = 30;
2266
+ */
2267
+ externalAuth?: ExternalAuth;
2251
2268
  };
2252
2269
 
2253
2270
  /**
@@ -2510,302 +2527,1164 @@ export const TransactionHistoryEntrySchema: GenMessage<TransactionHistoryEntry>
2510
2527
  messageDesc(file_proto_silvana_settlement_v1_settlement, 44);
2511
2528
 
2512
2529
  /**
2513
- * DVP settlement stage enumeration
2530
+ * Record a settlement event (any party can record for their settlements)
2514
2531
  *
2515
- * @generated from enum silvana.settlement.v1.SettlementStage
2532
+ * @generated from message silvana.settlement.v1.RecordSettlementEventRequest
2516
2533
  */
2517
- export enum SettlementStage {
2534
+ export type RecordSettlementEventRequest = Message<"silvana.settlement.v1.RecordSettlementEventRequest"> & {
2518
2535
  /**
2519
- * @generated from enum value: SETTLEMENT_STAGE_UNSPECIFIED = 0;
2536
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
2520
2537
  */
2521
- UNSPECIFIED = 0,
2538
+ auth?: CantonNodeAuth;
2522
2539
 
2523
2540
  /**
2524
- * @generated from enum value: SETTLEMENT_STAGE_PROPOSAL_RECEIVED = 1;
2541
+ * UUID v7
2542
+ *
2543
+ * @generated from field: string proposal_id = 2;
2525
2544
  */
2526
- PROPOSAL_RECEIVED = 1,
2545
+ proposalId: string;
2527
2546
 
2528
2547
  /**
2529
- * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMATION_PENDING = 2;
2548
+ * Party ID who is recording
2549
+ *
2550
+ * @generated from field: string recorded_by = 3;
2530
2551
  */
2531
- PRECONFIRMATION_PENDING = 2,
2552
+ recordedBy: string;
2532
2553
 
2533
2554
  /**
2534
- * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMED = 3;
2555
+ * @generated from field: silvana.settlement.v1.RecordedByRole recorded_by_role = 4;
2535
2556
  */
2536
- PRECONFIRMED = 3,
2557
+ recordedByRole: RecordedByRole;
2537
2558
 
2538
2559
  /**
2539
- * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATING = 4;
2560
+ * @generated from field: silvana.settlement.v1.SettlementEventType event_type = 5;
2540
2561
  */
2541
- DVP_PROPOSAL_CREATING = 4,
2562
+ eventType: SettlementEventType;
2542
2563
 
2543
2564
  /**
2544
- * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATED = 5;
2565
+ * Canton transaction tracking (two-phase)
2566
+ *
2567
+ * Phase 1: received on tx submit
2568
+ *
2569
+ * @generated from field: optional string submission_id = 6;
2570
+ */
2571
+ submissionId?: string;
2572
+
2573
+ /**
2574
+ * Phase 2: received after ledger poll
2575
+ *
2576
+ * @generated from field: optional string update_id = 7;
2577
+ */
2578
+ updateId?: string;
2579
+
2580
+ /**
2581
+ * Canton contract ID
2582
+ *
2583
+ * @generated from field: optional string contract_id = 8;
2584
+ */
2585
+ contractId?: string;
2586
+
2587
+ /**
2588
+ * Daml template ID
2589
+ *
2590
+ * @generated from field: optional string template_id = 9;
2591
+ */
2592
+ templateId?: string;
2593
+
2594
+ /**
2595
+ * Result
2596
+ *
2597
+ * @generated from field: silvana.settlement.v1.SettlementEventResult result = 10;
2598
+ */
2599
+ result: SettlementEventResult;
2600
+
2601
+ /**
2602
+ * @generated from field: optional string error_message = 11;
2603
+ */
2604
+ errorMessage?: string;
2605
+
2606
+ /**
2607
+ * @generated from field: optional google.protobuf.Struct metadata = 12;
2608
+ */
2609
+ metadata?: JsonObject;
2610
+
2611
+ /**
2612
+ * Alternative auth for external parties
2613
+ *
2614
+ * @generated from field: optional silvana.settlement.v1.ExternalAuth external_auth = 20;
2615
+ */
2616
+ externalAuth?: ExternalAuth;
2617
+ };
2618
+
2619
+ /**
2620
+ * Describes the message silvana.settlement.v1.RecordSettlementEventRequest.
2621
+ * Use `create(RecordSettlementEventRequestSchema)` to create a new message.
2622
+ */
2623
+ export const RecordSettlementEventRequestSchema: GenMessage<RecordSettlementEventRequest> = /*@__PURE__*/
2624
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 45);
2625
+
2626
+ /**
2627
+ * @generated from message silvana.settlement.v1.RecordSettlementEventResponse
2628
+ */
2629
+ export type RecordSettlementEventResponse = Message<"silvana.settlement.v1.RecordSettlementEventResponse"> & {
2630
+ /**
2631
+ * @generated from field: bool success = 1;
2632
+ */
2633
+ success: boolean;
2634
+
2635
+ /**
2636
+ * @generated from field: string message = 2;
2637
+ */
2638
+ message: string;
2639
+
2640
+ /**
2641
+ * Auto-generated history entry ID
2642
+ *
2643
+ * @generated from field: uint64 event_id = 3;
2644
+ */
2645
+ eventId: bigint;
2646
+ };
2647
+
2648
+ /**
2649
+ * Describes the message silvana.settlement.v1.RecordSettlementEventResponse.
2650
+ * Use `create(RecordSettlementEventResponseSchema)` to create a new message.
2651
+ */
2652
+ export const RecordSettlementEventResponseSchema: GenMessage<RecordSettlementEventResponse> = /*@__PURE__*/
2653
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 46);
2654
+
2655
+ /**
2656
+ * Get settlement history (parties can only see their own settlements)
2657
+ *
2658
+ * @generated from message silvana.settlement.v1.GetSettlementHistoryRequest
2659
+ */
2660
+ export type GetSettlementHistoryRequest = Message<"silvana.settlement.v1.GetSettlementHistoryRequest"> & {
2661
+ /**
2662
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
2663
+ */
2664
+ auth?: CantonNodeAuth;
2665
+
2666
+ /**
2667
+ * UUID v7
2668
+ *
2669
+ * @generated from field: string proposal_id = 2;
2670
+ */
2671
+ proposalId: string;
2672
+
2673
+ /**
2674
+ * Filter by event type
2675
+ *
2676
+ * @generated from field: optional silvana.settlement.v1.SettlementEventType event_type = 3;
2677
+ */
2678
+ eventType?: SettlementEventType;
2679
+
2680
+ /**
2681
+ * Filter by result
2682
+ *
2683
+ * @generated from field: optional silvana.settlement.v1.SettlementEventResult result = 4;
2684
+ */
2685
+ result?: SettlementEventResult;
2686
+
2687
+ /**
2688
+ * @generated from field: optional uint32 limit = 5;
2689
+ */
2690
+ limit?: number;
2691
+
2692
+ /**
2693
+ * @generated from field: optional uint32 offset = 6;
2694
+ */
2695
+ offset?: number;
2696
+ };
2697
+
2698
+ /**
2699
+ * Describes the message silvana.settlement.v1.GetSettlementHistoryRequest.
2700
+ * Use `create(GetSettlementHistoryRequestSchema)` to create a new message.
2701
+ */
2702
+ export const GetSettlementHistoryRequestSchema: GenMessage<GetSettlementHistoryRequest> = /*@__PURE__*/
2703
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 47);
2704
+
2705
+ /**
2706
+ * @generated from message silvana.settlement.v1.GetSettlementHistoryResponse
2707
+ */
2708
+ export type GetSettlementHistoryResponse = Message<"silvana.settlement.v1.GetSettlementHistoryResponse"> & {
2709
+ /**
2710
+ * @generated from field: repeated silvana.settlement.v1.SettlementHistoryEntry events = 1;
2711
+ */
2712
+ events: SettlementHistoryEntry[];
2713
+
2714
+ /**
2715
+ * @generated from field: uint32 total = 2;
2716
+ */
2717
+ total: number;
2718
+ };
2719
+
2720
+ /**
2721
+ * Describes the message silvana.settlement.v1.GetSettlementHistoryResponse.
2722
+ * Use `create(GetSettlementHistoryResponseSchema)` to create a new message.
2723
+ */
2724
+ export const GetSettlementHistoryResponseSchema: GenMessage<GetSettlementHistoryResponse> = /*@__PURE__*/
2725
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 48);
2726
+
2727
+ /**
2728
+ * Settlement history entry (matches settlement_proposal_history table)
2729
+ *
2730
+ * @generated from message silvana.settlement.v1.SettlementHistoryEntry
2731
+ */
2732
+ export type SettlementHistoryEntry = Message<"silvana.settlement.v1.SettlementHistoryEntry"> & {
2733
+ /**
2734
+ * @generated from field: uint64 id = 1;
2735
+ */
2736
+ id: bigint;
2737
+
2738
+ /**
2739
+ * @generated from field: string proposal_id = 2;
2740
+ */
2741
+ proposalId: string;
2742
+
2743
+ /**
2744
+ * @generated from field: string recorded_by = 3;
2745
+ */
2746
+ recordedBy: string;
2747
+
2748
+ /**
2749
+ * @generated from field: silvana.settlement.v1.RecordedByRole recorded_by_role = 4;
2750
+ */
2751
+ recordedByRole: RecordedByRole;
2752
+
2753
+ /**
2754
+ * @generated from field: silvana.settlement.v1.SettlementEventType event_type = 5;
2755
+ */
2756
+ eventType: SettlementEventType;
2757
+
2758
+ /**
2759
+ * Canton transaction tracking
2760
+ *
2761
+ * @generated from field: optional string submission_id = 6;
2762
+ */
2763
+ submissionId?: string;
2764
+
2765
+ /**
2766
+ * @generated from field: optional string update_id = 7;
2767
+ */
2768
+ updateId?: string;
2769
+
2770
+ /**
2771
+ * @generated from field: optional string contract_id = 8;
2772
+ */
2773
+ contractId?: string;
2774
+
2775
+ /**
2776
+ * @generated from field: optional string template_id = 9;
2777
+ */
2778
+ templateId?: string;
2779
+
2780
+ /**
2781
+ * Result
2782
+ *
2783
+ * @generated from field: silvana.settlement.v1.SettlementEventResult result = 10;
2784
+ */
2785
+ result: SettlementEventResult;
2786
+
2787
+ /**
2788
+ * @generated from field: optional string error_message = 11;
2789
+ */
2790
+ errorMessage?: string;
2791
+
2792
+ /**
2793
+ * @generated from field: optional google.protobuf.Struct metadata = 12;
2794
+ */
2795
+ metadata?: JsonObject;
2796
+
2797
+ /**
2798
+ * @generated from field: google.protobuf.Timestamp created_at = 13;
2799
+ */
2800
+ createdAt?: Timestamp;
2801
+ };
2802
+
2803
+ /**
2804
+ * Describes the message silvana.settlement.v1.SettlementHistoryEntry.
2805
+ * Use `create(SettlementHistoryEntrySchema)` to create a new message.
2806
+ */
2807
+ export const SettlementHistoryEntrySchema: GenMessage<SettlementHistoryEntry> = /*@__PURE__*/
2808
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 49);
2809
+
2810
+ /**
2811
+ * Update proposal status (operator only)
2812
+ *
2813
+ * @generated from message silvana.settlement.v1.UpdateProposalStatusRequest
2814
+ */
2815
+ export type UpdateProposalStatusRequest = Message<"silvana.settlement.v1.UpdateProposalStatusRequest"> & {
2816
+ /**
2817
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth auth = 1;
2818
+ */
2819
+ auth?: CantonNodeAuth;
2820
+
2821
+ /**
2822
+ * UUID v7
2823
+ *
2824
+ * @generated from field: string proposal_id = 2;
2825
+ */
2826
+ proposalId: string;
2827
+
2828
+ /**
2829
+ * Only pending → settled/cancelled/failed allowed
2830
+ *
2831
+ * @generated from field: silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus new_status = 3;
2832
+ */
2833
+ newStatus: UpdateProposalStatusRequest_NewStatus;
2834
+
2835
+ /**
2836
+ * Required if failed
2837
+ *
2838
+ * @generated from field: optional string error_message = 4;
2839
+ */
2840
+ errorMessage?: string;
2841
+ };
2842
+
2843
+ /**
2844
+ * Describes the message silvana.settlement.v1.UpdateProposalStatusRequest.
2845
+ * Use `create(UpdateProposalStatusRequestSchema)` to create a new message.
2846
+ */
2847
+ export const UpdateProposalStatusRequestSchema: GenMessage<UpdateProposalStatusRequest> = /*@__PURE__*/
2848
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 50);
2849
+
2850
+ /**
2851
+ * @generated from enum silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus
2852
+ */
2853
+ export enum UpdateProposalStatusRequest_NewStatus {
2854
+ /**
2855
+ * @generated from enum value: NEW_STATUS_UNSPECIFIED = 0;
2856
+ */
2857
+ UNSPECIFIED = 0,
2858
+
2859
+ /**
2860
+ * @generated from enum value: NEW_STATUS_SETTLED = 1;
2861
+ */
2862
+ SETTLED = 1,
2863
+
2864
+ /**
2865
+ * @generated from enum value: NEW_STATUS_CANCELLED = 2;
2866
+ */
2867
+ CANCELLED = 2,
2868
+
2869
+ /**
2870
+ * @generated from enum value: NEW_STATUS_FAILED = 3;
2871
+ */
2872
+ FAILED = 3,
2873
+ }
2874
+
2875
+ /**
2876
+ * Describes the enum silvana.settlement.v1.UpdateProposalStatusRequest.NewStatus.
2877
+ */
2878
+ export const UpdateProposalStatusRequest_NewStatusSchema: GenEnum<UpdateProposalStatusRequest_NewStatus> = /*@__PURE__*/
2879
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 50, 0);
2880
+
2881
+ /**
2882
+ * @generated from message silvana.settlement.v1.UpdateProposalStatusResponse
2883
+ */
2884
+ export type UpdateProposalStatusResponse = Message<"silvana.settlement.v1.UpdateProposalStatusResponse"> & {
2885
+ /**
2886
+ * @generated from field: bool success = 1;
2887
+ */
2888
+ success: boolean;
2889
+
2890
+ /**
2891
+ * @generated from field: string message = 2;
2892
+ */
2893
+ message: string;
2894
+ };
2895
+
2896
+ /**
2897
+ * Describes the message silvana.settlement.v1.UpdateProposalStatusResponse.
2898
+ * Use `create(UpdateProposalStatusResponseSchema)` to create a new message.
2899
+ */
2900
+ export const UpdateProposalStatusResponseSchema: GenMessage<UpdateProposalStatusResponse> = /*@__PURE__*/
2901
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 51);
2902
+
2903
+ /**
2904
+ * Get settlement proposal by ID request
2905
+ *
2906
+ * @generated from message silvana.settlement.v1.GetSettlementProposalByIdRequest
2907
+ */
2908
+ export type GetSettlementProposalByIdRequest = Message<"silvana.settlement.v1.GetSettlementProposalByIdRequest"> & {
2909
+ /**
2910
+ * @generated from oneof silvana.settlement.v1.GetSettlementProposalByIdRequest.auth
2911
+ */
2912
+ auth: {
2913
+ /**
2914
+ * @generated from field: silvana.settlement.v1.CantonNodeAuth canton_auth = 1;
2915
+ */
2916
+ value: CantonNodeAuth;
2917
+ case: "cantonAuth";
2918
+ } | {
2919
+ /**
2920
+ * @generated from field: silvana.settlement.v1.ExternalAuth external_auth = 2;
2921
+ */
2922
+ value: ExternalAuth;
2923
+ case: "externalAuth";
2924
+ } | { case: undefined; value?: undefined };
2925
+
2926
+ /**
2927
+ * UUID v7
2928
+ *
2929
+ * @generated from field: string proposal_id = 3;
2930
+ */
2931
+ proposalId: string;
2932
+ };
2933
+
2934
+ /**
2935
+ * Describes the message silvana.settlement.v1.GetSettlementProposalByIdRequest.
2936
+ * Use `create(GetSettlementProposalByIdRequestSchema)` to create a new message.
2937
+ */
2938
+ export const GetSettlementProposalByIdRequestSchema: GenMessage<GetSettlementProposalByIdRequest> = /*@__PURE__*/
2939
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 52);
2940
+
2941
+ /**
2942
+ * Get settlement proposal by ID response
2943
+ *
2944
+ * @generated from message silvana.settlement.v1.GetSettlementProposalByIdResponse
2945
+ */
2946
+ export type GetSettlementProposalByIdResponse = Message<"silvana.settlement.v1.GetSettlementProposalByIdResponse"> & {
2947
+ /**
2948
+ * @generated from field: bool found = 1;
2949
+ */
2950
+ found: boolean;
2951
+
2952
+ /**
2953
+ * @generated from field: silvana.settlement.v1.SettlementProposalMessage proposal = 2;
2954
+ */
2955
+ proposal?: SettlementProposalMessage;
2956
+ };
2957
+
2958
+ /**
2959
+ * Describes the message silvana.settlement.v1.GetSettlementProposalByIdResponse.
2960
+ * Use `create(GetSettlementProposalByIdResponseSchema)` to create a new message.
2961
+ */
2962
+ export const GetSettlementProposalByIdResponseSchema: GenMessage<GetSettlementProposalByIdResponse> = /*@__PURE__*/
2963
+ messageDesc(file_proto_silvana_settlement_v1_settlement, 53);
2964
+
2965
+ /**
2966
+ * DVP settlement stage enumeration
2967
+ *
2968
+ * @generated from enum silvana.settlement.v1.SettlementStage
2969
+ */
2970
+ export enum SettlementStage {
2971
+ /**
2972
+ * @generated from enum value: SETTLEMENT_STAGE_UNSPECIFIED = 0;
2973
+ */
2974
+ UNSPECIFIED = 0,
2975
+
2976
+ /**
2977
+ * @generated from enum value: SETTLEMENT_STAGE_PROPOSAL_RECEIVED = 1;
2978
+ */
2979
+ PROPOSAL_RECEIVED = 1,
2980
+
2981
+ /**
2982
+ * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMATION_PENDING = 2;
2983
+ */
2984
+ PRECONFIRMATION_PENDING = 2,
2985
+
2986
+ /**
2987
+ * @generated from enum value: SETTLEMENT_STAGE_PRECONFIRMED = 3;
2988
+ */
2989
+ PRECONFIRMED = 3,
2990
+
2991
+ /**
2992
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATING = 4;
2993
+ */
2994
+ DVP_PROPOSAL_CREATING = 4,
2995
+
2996
+ /**
2997
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_PROPOSAL_CREATED = 5;
2998
+ */
2999
+ DVP_PROPOSAL_CREATED = 5,
3000
+
3001
+ /**
3002
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTING = 6;
3003
+ */
3004
+ DVP_ACCEPTING = 6,
3005
+
3006
+ /**
3007
+ * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTED = 7;
3008
+ */
3009
+ DVP_ACCEPTED = 7,
3010
+
3011
+ /**
3012
+ * @generated from enum value: SETTLEMENT_STAGE_ALLOCATING = 8;
3013
+ */
3014
+ ALLOCATING = 8,
3015
+
3016
+ /**
3017
+ * @generated from enum value: SETTLEMENT_STAGE_ALLOCATED = 9;
3018
+ */
3019
+ ALLOCATED = 9,
3020
+
3021
+ /**
3022
+ * @generated from enum value: SETTLEMENT_STAGE_SETTLING = 10;
3023
+ */
3024
+ SETTLING = 10,
3025
+
3026
+ /**
3027
+ * @generated from enum value: SETTLEMENT_STAGE_SETTLED = 11;
3028
+ */
3029
+ SETTLED = 11,
3030
+
3031
+ /**
3032
+ * @generated from enum value: SETTLEMENT_STAGE_FAILED = 12;
3033
+ */
3034
+ FAILED = 12,
3035
+
3036
+ /**
3037
+ * @generated from enum value: SETTLEMENT_STAGE_CANCELLED = 13;
3038
+ */
3039
+ CANCELLED = 13,
3040
+ }
3041
+
3042
+ /**
3043
+ * Describes the enum silvana.settlement.v1.SettlementStage.
3044
+ */
3045
+ export const SettlementStageSchema: GenEnum<SettlementStage> = /*@__PURE__*/
3046
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 0);
3047
+
3048
+ /**
3049
+ * Preconfirmation response type
3050
+ *
3051
+ * @generated from enum silvana.settlement.v1.PreconfirmationResponse
3052
+ */
3053
+ export enum PreconfirmationResponse {
3054
+ /**
3055
+ * @generated from enum value: PRECONFIRMATION_RESPONSE_UNSPECIFIED = 0;
3056
+ */
3057
+ UNSPECIFIED = 0,
3058
+
3059
+ /**
3060
+ * @generated from enum value: PRECONFIRMATION_RESPONSE_ACCEPT = 1;
3061
+ */
3062
+ ACCEPT = 1,
3063
+
3064
+ /**
3065
+ * @generated from enum value: PRECONFIRMATION_RESPONSE_REJECT = 2;
3066
+ */
3067
+ REJECT = 2,
3068
+ }
3069
+
3070
+ /**
3071
+ * Describes the enum silvana.settlement.v1.PreconfirmationResponse.
3072
+ */
3073
+ export const PreconfirmationResponseSchema: GenEnum<PreconfirmationResponse> = /*@__PURE__*/
3074
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 1);
3075
+
3076
+ /**
3077
+ * Party role in settlement
3078
+ *
3079
+ * @generated from enum silvana.settlement.v1.PartyRole
3080
+ */
3081
+ export enum PartyRole {
3082
+ /**
3083
+ * @generated from enum value: PARTY_ROLE_UNSPECIFIED = 0;
3084
+ */
3085
+ UNSPECIFIED = 0,
3086
+
3087
+ /**
3088
+ * @generated from enum value: PARTY_ROLE_BUYER = 1;
3089
+ */
3090
+ BUYER = 1,
3091
+
3092
+ /**
3093
+ * @generated from enum value: PARTY_ROLE_SELLER = 2;
3094
+ */
3095
+ SELLER = 2,
3096
+
3097
+ /**
3098
+ * @generated from enum value: PARTY_ROLE_OPERATOR = 3;
3099
+ */
3100
+ OPERATOR = 3,
3101
+ }
3102
+
3103
+ /**
3104
+ * Describes the enum silvana.settlement.v1.PartyRole.
3105
+ */
3106
+ export const PartyRoleSchema: GenEnum<PartyRole> = /*@__PURE__*/
3107
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 2);
3108
+
3109
+ /**
3110
+ * Transaction type for history tracking
3111
+ *
3112
+ * @generated from enum silvana.settlement.v1.TransactionType
3113
+ */
3114
+ export enum TransactionType {
3115
+ /**
3116
+ * @generated from enum value: TRANSACTION_TYPE_UNSPECIFIED = 0;
3117
+ */
3118
+ UNSPECIFIED = 0,
3119
+
3120
+ /**
3121
+ * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST = 1;
3122
+ */
3123
+ USER_SERVICE_REQUEST = 1,
3124
+
3125
+ /**
3126
+ * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST_ACCEPT = 2;
3127
+ */
3128
+ USER_SERVICE_REQUEST_ACCEPT = 2,
3129
+
3130
+ /**
3131
+ * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_CANCEL = 3;
3132
+ */
3133
+ USER_SERVICE_CANCEL = 3,
3134
+
3135
+ /**
3136
+ * @generated from enum value: TRANSACTION_TYPE_DVP_PROPOSE = 4;
3137
+ */
3138
+ DVP_PROPOSE = 4,
3139
+
3140
+ /**
3141
+ * @generated from enum value: TRANSACTION_TYPE_DVP_ACCEPT = 5;
3142
+ */
3143
+ DVP_ACCEPT = 5,
3144
+
3145
+ /**
3146
+ * @generated from enum value: TRANSACTION_TYPE_DVP_CANCEL = 6;
3147
+ */
3148
+ DVP_CANCEL = 6,
3149
+
3150
+ /**
3151
+ * @generated from enum value: TRANSACTION_TYPE_DVP_SETTLE = 7;
3152
+ */
3153
+ DVP_SETTLE = 7,
3154
+
3155
+ /**
3156
+ * @generated from enum value: TRANSACTION_TYPE_ALLOCATE = 8;
3157
+ */
3158
+ ALLOCATE = 8,
3159
+
3160
+ /**
3161
+ * @generated from enum value: TRANSACTION_TYPE_ALLOCATE_CANCEL = 9;
3162
+ */
3163
+ ALLOCATE_CANCEL = 9,
3164
+
3165
+ /**
3166
+ * @generated from enum value: TRANSACTION_TYPE_FEE_TRANSFER = 10;
3167
+ */
3168
+ FEE_TRANSFER = 10,
3169
+
3170
+ /**
3171
+ * @generated from enum value: TRANSACTION_TYPE_MERGE = 11;
3172
+ */
3173
+ MERGE = 11,
3174
+
3175
+ /**
3176
+ * @generated from enum value: TRANSACTION_TYPE_UNLOCK = 12;
3177
+ */
3178
+ UNLOCK = 12,
3179
+
3180
+ /**
3181
+ * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
3182
+ */
3183
+ OTHER = 13,
3184
+ }
3185
+
3186
+ /**
3187
+ * Describes the enum silvana.settlement.v1.TransactionType.
3188
+ */
3189
+ export const TransactionTypeSchema: GenEnum<TransactionType> = /*@__PURE__*/
3190
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 3);
3191
+
3192
+ /**
3193
+ * Sender type for transaction history
3194
+ *
3195
+ * @generated from enum silvana.settlement.v1.SenderType
3196
+ */
3197
+ export enum SenderType {
3198
+ /**
3199
+ * @generated from enum value: SENDER_TYPE_UNSPECIFIED = 0;
3200
+ */
3201
+ UNSPECIFIED = 0,
3202
+
3203
+ /**
3204
+ * @generated from enum value: SENDER_TYPE_OPERATOR = 1;
3205
+ */
3206
+ OPERATOR = 1,
3207
+
3208
+ /**
3209
+ * @generated from enum value: SENDER_TYPE_USER = 2;
3210
+ */
3211
+ USER = 2,
3212
+
3213
+ /**
3214
+ * @generated from enum value: SENDER_TYPE_BUYER = 3;
3215
+ */
3216
+ BUYER = 3,
3217
+
3218
+ /**
3219
+ * @generated from enum value: SENDER_TYPE_SELLER = 4;
3220
+ */
3221
+ SELLER = 4,
3222
+ }
3223
+
3224
+ /**
3225
+ * Describes the enum silvana.settlement.v1.SenderType.
3226
+ */
3227
+ export const SenderTypeSchema: GenEnum<SenderType> = /*@__PURE__*/
3228
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 4);
3229
+
3230
+ /**
3231
+ * Transaction result
3232
+ *
3233
+ * @generated from enum silvana.settlement.v1.TransactionResult
3234
+ */
3235
+ export enum TransactionResult {
3236
+ /**
3237
+ * @generated from enum value: TRANSACTION_RESULT_UNSPECIFIED = 0;
3238
+ */
3239
+ UNSPECIFIED = 0,
3240
+
3241
+ /**
3242
+ * @generated from enum value: TRANSACTION_RESULT_PENDING = 1;
3243
+ */
3244
+ PENDING = 1,
3245
+
3246
+ /**
3247
+ * @generated from enum value: TRANSACTION_RESULT_SUCCESS = 2;
3248
+ */
3249
+ SUCCESS = 2,
3250
+
3251
+ /**
3252
+ * @generated from enum value: TRANSACTION_RESULT_FAILED = 3;
3253
+ */
3254
+ FAILED = 3,
3255
+ }
3256
+
3257
+ /**
3258
+ * Describes the enum silvana.settlement.v1.TransactionResult.
3259
+ */
3260
+ export const TransactionResultSchema: GenEnum<TransactionResult> = /*@__PURE__*/
3261
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 5);
3262
+
3263
+ /**
3264
+ * Event types for settlement proposal history (all 11 DVP transactions + contract lifecycle)
3265
+ *
3266
+ * @generated from enum silvana.settlement.v1.SettlementEventType
3267
+ */
3268
+ export enum SettlementEventType {
3269
+ /**
3270
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_UNSPECIFIED = 0;
3271
+ */
3272
+ UNSPECIFIED = 0,
3273
+
3274
+ /**
3275
+ * Step 1: DVP Processing Fee (buyer pays)
3276
+ *
3277
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_BUYER_SUBMITTED = 1;
2545
3278
  */
2546
- DVP_PROPOSAL_CREATED = 5,
3279
+ DVP_PROCESSING_FEE_BUYER_SUBMITTED = 1,
2547
3280
 
2548
3281
  /**
2549
- * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTING = 6;
3282
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_BUYER_COMPLETED = 2;
2550
3283
  */
2551
- DVP_ACCEPTING = 6,
3284
+ DVP_PROCESSING_FEE_BUYER_COMPLETED = 2,
2552
3285
 
2553
3286
  /**
2554
- * @generated from enum value: SETTLEMENT_STAGE_DVP_ACCEPTED = 7;
3287
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_BUYER_RECEIVED = 3;
2555
3288
  */
2556
- DVP_ACCEPTED = 7,
3289
+ DVP_PROCESSING_FEE_BUYER_RECEIVED = 3,
2557
3290
 
2558
3291
  /**
2559
- * @generated from enum value: SETTLEMENT_STAGE_ALLOCATING = 8;
3292
+ * Step 2: DVP Request (buyer creates DvpProposal)
3293
+ *
3294
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_SUBMITTED = 4;
2560
3295
  */
2561
- ALLOCATING = 8,
3296
+ DVP_REQUEST_SUBMITTED = 4,
2562
3297
 
2563
3298
  /**
2564
- * @generated from enum value: SETTLEMENT_STAGE_ALLOCATED = 9;
3299
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_COMPLETED = 5;
2565
3300
  */
2566
- ALLOCATED = 9,
3301
+ DVP_REQUEST_COMPLETED = 5,
2567
3302
 
2568
3303
  /**
2569
- * @generated from enum value: SETTLEMENT_STAGE_SETTLING = 10;
3304
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_WITNESSED = 6;
2570
3305
  */
2571
- SETTLING = 10,
3306
+ DVP_REQUEST_WITNESSED = 6,
2572
3307
 
2573
3308
  /**
2574
- * @generated from enum value: SETTLEMENT_STAGE_SETTLED = 11;
3309
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_REJECTED = 7;
2575
3310
  */
2576
- SETTLED = 11,
3311
+ DVP_REQUEST_REJECTED = 7,
2577
3312
 
2578
3313
  /**
2579
- * @generated from enum value: SETTLEMENT_STAGE_FAILED = 12;
3314
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REQUEST_CANCELLED = 8;
2580
3315
  */
2581
- FAILED = 12,
3316
+ DVP_REQUEST_CANCELLED = 8,
2582
3317
 
2583
3318
  /**
2584
- * @generated from enum value: SETTLEMENT_STAGE_CANCELLED = 13;
3319
+ * Step 3: DVP Processing Fee (seller pays)
3320
+ *
3321
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_SELLER_SUBMITTED = 9;
2585
3322
  */
2586
- CANCELLED = 13,
2587
- }
3323
+ DVP_PROCESSING_FEE_SELLER_SUBMITTED = 9,
2588
3324
 
2589
- /**
2590
- * Describes the enum silvana.settlement.v1.SettlementStage.
2591
- */
2592
- export const SettlementStageSchema: GenEnum<SettlementStage> = /*@__PURE__*/
2593
- enumDesc(file_proto_silvana_settlement_v1_settlement, 0);
3325
+ /**
3326
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_SELLER_COMPLETED = 10;
3327
+ */
3328
+ DVP_PROCESSING_FEE_SELLER_COMPLETED = 10,
2594
3329
 
2595
- /**
2596
- * Preconfirmation response type
2597
- *
2598
- * @generated from enum silvana.settlement.v1.PreconfirmationResponse
2599
- */
2600
- export enum PreconfirmationResponse {
2601
3330
  /**
2602
- * @generated from enum value: PRECONFIRMATION_RESPONSE_UNSPECIFIED = 0;
3331
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_PROCESSING_FEE_SELLER_RECEIVED = 11;
2603
3332
  */
2604
- UNSPECIFIED = 0,
3333
+ DVP_PROCESSING_FEE_SELLER_RECEIVED = 11,
2605
3334
 
2606
3335
  /**
2607
- * @generated from enum value: PRECONFIRMATION_RESPONSE_ACCEPT = 1;
3336
+ * Step 4: Accept DVP (seller accepts, creates Dvp contract)
3337
+ *
3338
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_ACCEPT_SUBMITTED = 12;
2608
3339
  */
2609
- ACCEPT = 1,
3340
+ DVP_ACCEPT_SUBMITTED = 12,
2610
3341
 
2611
3342
  /**
2612
- * @generated from enum value: PRECONFIRMATION_RESPONSE_REJECT = 2;
3343
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_ACCEPT_COMPLETED = 13;
2613
3344
  */
2614
- REJECT = 2,
2615
- }
3345
+ DVP_ACCEPT_COMPLETED = 13,
2616
3346
 
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);
3347
+ /**
3348
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_ACCEPTED_WITNESSED = 14;
3349
+ */
3350
+ DVP_ACCEPTED_WITNESSED = 14,
2622
3351
 
2623
- /**
2624
- * Party role in settlement
2625
- *
2626
- * @generated from enum silvana.settlement.v1.PartyRole
2627
- */
2628
- export enum PartyRole {
2629
3352
  /**
2630
- * @generated from enum value: PARTY_ROLE_UNSPECIFIED = 0;
3353
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_REJECTED = 15;
2631
3354
  */
2632
- UNSPECIFIED = 0,
3355
+ DVP_REJECTED = 15,
2633
3356
 
2634
3357
  /**
2635
- * @generated from enum value: PARTY_ROLE_BUYER = 1;
3358
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_WITHDRAWN = 16;
2636
3359
  */
2637
- BUYER = 1,
3360
+ DVP_WITHDRAWN = 16,
2638
3361
 
2639
3362
  /**
2640
- * @generated from enum value: PARTY_ROLE_SELLER = 2;
3363
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_DVP_CANCELLED = 17;
2641
3364
  */
2642
- SELLER = 2,
3365
+ DVP_CANCELLED = 17,
2643
3366
 
2644
3367
  /**
2645
- * @generated from enum value: PARTY_ROLE_OPERATOR = 3;
3368
+ * Step 5: Allocation Processing Fee (buyer pays)
3369
+ *
3370
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_BUYER_SUBMITTED = 18;
2646
3371
  */
2647
- OPERATOR = 3,
2648
- }
3372
+ ALLOCATION_PROCESSING_FEE_BUYER_SUBMITTED = 18,
2649
3373
 
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);
3374
+ /**
3375
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_BUYER_COMPLETED = 19;
3376
+ */
3377
+ ALLOCATION_PROCESSING_FEE_BUYER_COMPLETED = 19,
2655
3378
 
2656
- /**
2657
- * Transaction type for history tracking
2658
- *
2659
- * @generated from enum silvana.settlement.v1.TransactionType
2660
- */
2661
- export enum TransactionType {
2662
3379
  /**
2663
- * @generated from enum value: TRANSACTION_TYPE_UNSPECIFIED = 0;
3380
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_BUYER_RECEIVED = 20;
2664
3381
  */
2665
- UNSPECIFIED = 0,
3382
+ ALLOCATION_PROCESSING_FEE_BUYER_RECEIVED = 20,
2666
3383
 
2667
3384
  /**
2668
- * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST = 1;
3385
+ * Step 6: Allocate CC (buyer allocates base instrument)
3386
+ *
3387
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_SUBMITTED = 21;
2669
3388
  */
2670
- USER_SERVICE_REQUEST = 1,
3389
+ ALLOCATION_BUYER_SUBMITTED = 21,
2671
3390
 
2672
3391
  /**
2673
- * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_REQUEST_ACCEPT = 2;
3392
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_COMPLETED = 22;
2674
3393
  */
2675
- USER_SERVICE_REQUEST_ACCEPT = 2,
3394
+ ALLOCATION_BUYER_COMPLETED = 22,
2676
3395
 
2677
3396
  /**
2678
- * @generated from enum value: TRANSACTION_TYPE_USER_SERVICE_CANCEL = 3;
3397
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_WITNESSED = 23;
2679
3398
  */
2680
- USER_SERVICE_CANCEL = 3,
3399
+ ALLOCATION_BUYER_WITNESSED = 23,
2681
3400
 
2682
3401
  /**
2683
- * @generated from enum value: TRANSACTION_TYPE_DVP_PROPOSE = 4;
3402
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_WITHDRAWN = 24;
2684
3403
  */
2685
- DVP_PROPOSE = 4,
3404
+ ALLOCATION_BUYER_WITHDRAWN = 24,
2686
3405
 
2687
3406
  /**
2688
- * @generated from enum value: TRANSACTION_TYPE_DVP_ACCEPT = 5;
3407
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_BUYER_CANCELLED = 25;
2689
3408
  */
2690
- DVP_ACCEPT = 5,
3409
+ ALLOCATION_BUYER_CANCELLED = 25,
2691
3410
 
2692
3411
  /**
2693
- * @generated from enum value: TRANSACTION_TYPE_DVP_CANCEL = 6;
3412
+ * Step 7: Allocation Processing Fee (seller pays)
3413
+ *
3414
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_SELLER_SUBMITTED = 26;
2694
3415
  */
2695
- DVP_CANCEL = 6,
3416
+ ALLOCATION_PROCESSING_FEE_SELLER_SUBMITTED = 26,
2696
3417
 
2697
3418
  /**
2698
- * @generated from enum value: TRANSACTION_TYPE_DVP_SETTLE = 7;
3419
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_SELLER_COMPLETED = 27;
2699
3420
  */
2700
- DVP_SETTLE = 7,
3421
+ ALLOCATION_PROCESSING_FEE_SELLER_COMPLETED = 27,
2701
3422
 
2702
3423
  /**
2703
- * @generated from enum value: TRANSACTION_TYPE_ALLOCATE = 8;
3424
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_PROCESSING_FEE_SELLER_RECEIVED = 28;
2704
3425
  */
2705
- ALLOCATE = 8,
3426
+ ALLOCATION_PROCESSING_FEE_SELLER_RECEIVED = 28,
2706
3427
 
2707
3428
  /**
2708
- * @generated from enum value: TRANSACTION_TYPE_ALLOCATE_CANCEL = 9;
3429
+ * Step 8: Allocate USDC (seller allocates quote instrument)
3430
+ *
3431
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_SUBMITTED = 29;
2709
3432
  */
2710
- ALLOCATE_CANCEL = 9,
3433
+ ALLOCATION_SELLER_SUBMITTED = 29,
2711
3434
 
2712
3435
  /**
2713
- * @generated from enum value: TRANSACTION_TYPE_FEE_TRANSFER = 10;
3436
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_COMPLETED = 30;
2714
3437
  */
2715
- FEE_TRANSFER = 10,
3438
+ ALLOCATION_SELLER_COMPLETED = 30,
2716
3439
 
2717
3440
  /**
2718
- * @generated from enum value: TRANSACTION_TYPE_MERGE = 11;
3441
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_WITNESSED = 31;
2719
3442
  */
2720
- MERGE = 11,
3443
+ ALLOCATION_SELLER_WITNESSED = 31,
2721
3444
 
2722
3445
  /**
2723
- * @generated from enum value: TRANSACTION_TYPE_UNLOCK = 12;
3446
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_WITHDRAWN = 32;
2724
3447
  */
2725
- UNLOCK = 12,
3448
+ ALLOCATION_SELLER_WITHDRAWN = 32,
2726
3449
 
2727
3450
  /**
2728
- * @generated from enum value: TRANSACTION_TYPE_OTHER = 13;
3451
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_ALLOCATION_SELLER_CANCELLED = 33;
2729
3452
  */
2730
- OTHER = 13,
3453
+ ALLOCATION_SELLER_CANCELLED = 33,
3454
+
3455
+ /**
3456
+ * Step 9: DVP Settlement (operator executes atomic swap)
3457
+ *
3458
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_SETTLEMENT_SUBMITTED = 34;
3459
+ */
3460
+ SETTLEMENT_SUBMITTED = 34,
3461
+
3462
+ /**
3463
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_SETTLEMENT_COMPLETED = 35;
3464
+ */
3465
+ SETTLEMENT_COMPLETED = 35,
3466
+
3467
+ /**
3468
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_SETTLEMENT_WITNESSED = 36;
3469
+ */
3470
+ SETTLEMENT_WITNESSED = 36,
3471
+
3472
+ /**
3473
+ * Step 10: Traffic Compensation to Buyer
3474
+ *
3475
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_BUYER_SUBMITTED = 37;
3476
+ */
3477
+ TRAFFIC_COMPENSATION_BUYER_SUBMITTED = 37,
3478
+
3479
+ /**
3480
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_BUYER_COMPLETED = 38;
3481
+ */
3482
+ TRAFFIC_COMPENSATION_BUYER_COMPLETED = 38,
3483
+
3484
+ /**
3485
+ * Step 11: Traffic Compensation to Seller
3486
+ *
3487
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_SELLER_SUBMITTED = 39;
3488
+ */
3489
+ TRAFFIC_COMPENSATION_SELLER_SUBMITTED = 39,
3490
+
3491
+ /**
3492
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TRAFFIC_COMPENSATION_SELLER_COMPLETED = 40;
3493
+ */
3494
+ TRAFFIC_COMPENSATION_SELLER_COMPLETED = 40,
3495
+
3496
+ /**
3497
+ * Preconfirmation (optional off-chain flow)
3498
+ *
3499
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_REQUESTED = 41;
3500
+ */
3501
+ PRECONFIRMATION_REQUESTED = 41,
3502
+
3503
+ /**
3504
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_BUYER = 42;
3505
+ */
3506
+ PRECONFIRMATION_BUYER = 42,
3507
+
3508
+ /**
3509
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_SELLER = 43;
3510
+ */
3511
+ PRECONFIRMATION_SELLER = 43,
3512
+
3513
+ /**
3514
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_PRECONFIRMATION_CANCELLED = 44;
3515
+ */
3516
+ PRECONFIRMATION_CANCELLED = 44,
3517
+
3518
+ /**
3519
+ * Timeout (for expired proposals)
3520
+ *
3521
+ * @generated from enum value: SETTLEMENT_EVENT_TYPE_TIMEOUT = 45;
3522
+ */
3523
+ TIMEOUT = 45,
2731
3524
  }
2732
3525
 
2733
3526
  /**
2734
- * Describes the enum silvana.settlement.v1.TransactionType.
3527
+ * Describes the enum silvana.settlement.v1.SettlementEventType.
2735
3528
  */
2736
- export const TransactionTypeSchema: GenEnum<TransactionType> = /*@__PURE__*/
2737
- enumDesc(file_proto_silvana_settlement_v1_settlement, 3);
3529
+ export const SettlementEventTypeSchema: GenEnum<SettlementEventType> = /*@__PURE__*/
3530
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 6);
2738
3531
 
2739
3532
  /**
2740
- * Sender type for transaction history
3533
+ * Role of the party recording the event
2741
3534
  *
2742
- * @generated from enum silvana.settlement.v1.SenderType
3535
+ * @generated from enum silvana.settlement.v1.RecordedByRole
2743
3536
  */
2744
- export enum SenderType {
3537
+ export enum RecordedByRole {
2745
3538
  /**
2746
- * @generated from enum value: SENDER_TYPE_UNSPECIFIED = 0;
3539
+ * @generated from enum value: RECORDED_BY_ROLE_UNSPECIFIED = 0;
2747
3540
  */
2748
3541
  UNSPECIFIED = 0,
2749
3542
 
2750
3543
  /**
2751
- * @generated from enum value: SENDER_TYPE_OPERATOR = 1;
3544
+ * @generated from enum value: RECORDED_BY_ROLE_BUYER = 1;
2752
3545
  */
2753
- OPERATOR = 1,
3546
+ BUYER = 1,
2754
3547
 
2755
3548
  /**
2756
- * @generated from enum value: SENDER_TYPE_USER = 2;
3549
+ * @generated from enum value: RECORDED_BY_ROLE_SELLER = 2;
2757
3550
  */
2758
- USER = 2,
3551
+ SELLER = 2,
2759
3552
 
2760
3553
  /**
2761
- * @generated from enum value: SENDER_TYPE_BUYER = 3;
3554
+ * @generated from enum value: RECORDED_BY_ROLE_OPERATOR = 3;
2762
3555
  */
2763
- BUYER = 3,
3556
+ OPERATOR = 3,
2764
3557
 
2765
3558
  /**
2766
- * @generated from enum value: SENDER_TYPE_SELLER = 4;
3559
+ * @generated from enum value: RECORDED_BY_ROLE_SYSTEM = 4;
2767
3560
  */
2768
- SELLER = 4,
3561
+ SYSTEM = 4,
2769
3562
  }
2770
3563
 
2771
3564
  /**
2772
- * Describes the enum silvana.settlement.v1.SenderType.
3565
+ * Describes the enum silvana.settlement.v1.RecordedByRole.
2773
3566
  */
2774
- export const SenderTypeSchema: GenEnum<SenderType> = /*@__PURE__*/
2775
- enumDesc(file_proto_silvana_settlement_v1_settlement, 4);
3567
+ export const RecordedByRoleSchema: GenEnum<RecordedByRole> = /*@__PURE__*/
3568
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 7);
2776
3569
 
2777
3570
  /**
2778
- * Transaction result
3571
+ * Result of a settlement event
2779
3572
  *
2780
- * @generated from enum silvana.settlement.v1.TransactionResult
3573
+ * @generated from enum silvana.settlement.v1.SettlementEventResult
2781
3574
  */
2782
- export enum TransactionResult {
3575
+ export enum SettlementEventResult {
2783
3576
  /**
2784
- * @generated from enum value: TRANSACTION_RESULT_UNSPECIFIED = 0;
3577
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_UNSPECIFIED = 0;
2785
3578
  */
2786
3579
  UNSPECIFIED = 0,
2787
3580
 
2788
3581
  /**
2789
- * @generated from enum value: TRANSACTION_RESULT_PENDING = 1;
3582
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_PENDING = 1;
2790
3583
  */
2791
3584
  PENDING = 1,
2792
3585
 
2793
3586
  /**
2794
- * @generated from enum value: TRANSACTION_RESULT_SUCCESS = 2;
3587
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_SUCCESS = 2;
2795
3588
  */
2796
3589
  SUCCESS = 2,
2797
3590
 
2798
3591
  /**
2799
- * @generated from enum value: TRANSACTION_RESULT_FAILED = 3;
3592
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_FAILED = 3;
2800
3593
  */
2801
3594
  FAILED = 3,
3595
+
3596
+ /**
3597
+ * @generated from enum value: SETTLEMENT_EVENT_RESULT_TIMEOUT = 4;
3598
+ */
3599
+ TIMEOUT = 4,
2802
3600
  }
2803
3601
 
2804
3602
  /**
2805
- * Describes the enum silvana.settlement.v1.TransactionResult.
3603
+ * Describes the enum silvana.settlement.v1.SettlementEventResult.
2806
3604
  */
2807
- export const TransactionResultSchema: GenEnum<TransactionResult> = /*@__PURE__*/
2808
- enumDesc(file_proto_silvana_settlement_v1_settlement, 5);
3605
+ export const SettlementEventResultSchema: GenEnum<SettlementEventResult> = /*@__PURE__*/
3606
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 8);
3607
+
3608
+ /**
3609
+ * Status of a single step in the DVP flow
3610
+ *
3611
+ * @generated from enum silvana.settlement.v1.DvpStepStatusEnum
3612
+ */
3613
+ export enum DvpStepStatusEnum {
3614
+ /**
3615
+ * @generated from enum value: DVP_STEP_STATUS_UNSPECIFIED = 0;
3616
+ */
3617
+ DVP_STEP_STATUS_UNSPECIFIED = 0,
3618
+
3619
+ /**
3620
+ * Not started
3621
+ *
3622
+ * @generated from enum value: DVP_STEP_STATUS_PENDING = 1;
3623
+ */
3624
+ DVP_STEP_STATUS_PENDING = 1,
3625
+
3626
+ /**
3627
+ * Transaction submitted
3628
+ *
3629
+ * @generated from enum value: DVP_STEP_STATUS_SUBMITTED = 2;
3630
+ */
3631
+ DVP_STEP_STATUS_SUBMITTED = 2,
3632
+
3633
+ /**
3634
+ * Transaction completed
3635
+ *
3636
+ * @generated from enum value: DVP_STEP_STATUS_COMPLETED = 3;
3637
+ */
3638
+ DVP_STEP_STATUS_COMPLETED = 3,
3639
+
3640
+ /**
3641
+ * Confirmed by operator (or witnessed on-chain)
3642
+ *
3643
+ * @generated from enum value: DVP_STEP_STATUS_CONFIRMED = 4;
3644
+ */
3645
+ DVP_STEP_STATUS_CONFIRMED = 4,
3646
+
3647
+ /**
3648
+ * Failed
3649
+ *
3650
+ * @generated from enum value: DVP_STEP_STATUS_FAILED = 5;
3651
+ */
3652
+ DVP_STEP_STATUS_FAILED = 5,
3653
+
3654
+ /**
3655
+ * Rejected by counterparty
3656
+ *
3657
+ * @generated from enum value: DVP_STEP_STATUS_REJECTED = 6;
3658
+ */
3659
+ DVP_STEP_STATUS_REJECTED = 6,
3660
+
3661
+ /**
3662
+ * Withdrawn
3663
+ *
3664
+ * @generated from enum value: DVP_STEP_STATUS_WITHDRAWN = 7;
3665
+ */
3666
+ DVP_STEP_STATUS_WITHDRAWN = 7,
3667
+
3668
+ /**
3669
+ * Cancelled
3670
+ *
3671
+ * @generated from enum value: DVP_STEP_STATUS_CANCELLED = 8;
3672
+ */
3673
+ DVP_STEP_STATUS_CANCELLED = 8,
3674
+
3675
+ /**
3676
+ * Timed out
3677
+ *
3678
+ * @generated from enum value: DVP_STEP_STATUS_TIMEOUT = 9;
3679
+ */
3680
+ DVP_STEP_STATUS_TIMEOUT = 9,
3681
+ }
3682
+
3683
+ /**
3684
+ * Describes the enum silvana.settlement.v1.DvpStepStatusEnum.
3685
+ */
3686
+ export const DvpStepStatusEnumSchema: GenEnum<DvpStepStatusEnum> = /*@__PURE__*/
3687
+ enumDesc(file_proto_silvana_settlement_v1_settlement, 9);
2809
3688
 
2810
3689
  /**
2811
3690
  * @generated from service silvana.settlement.v1.SettlementService
@@ -2852,16 +3731,6 @@ export const SettlementService: GenService<{
2852
3731
  input: typeof SubmitPreconfirmationRequestSchema;
2853
3732
  output: typeof EmptySchema;
2854
3733
  },
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
3734
  /**
2866
3735
  * Save a disclosed contract (buyer/seller saves during allocation)
2867
3736
  *
@@ -2912,6 +3781,47 @@ export const SettlementService: GenService<{
2912
3781
  input: typeof GetTransactionHistoryRequestSchema;
2913
3782
  output: typeof GetTransactionHistoryResponseSchema;
2914
3783
  },
3784
+ /**
3785
+ * Settlement proposal history (append-only event log)
3786
+ * Record a settlement event (any party can record for their settlements)
3787
+ *
3788
+ * @generated from rpc silvana.settlement.v1.SettlementService.RecordSettlementEvent
3789
+ */
3790
+ recordSettlementEvent: {
3791
+ methodKind: "unary";
3792
+ input: typeof RecordSettlementEventRequestSchema;
3793
+ output: typeof RecordSettlementEventResponseSchema;
3794
+ },
3795
+ /**
3796
+ * Get settlement history for a proposal
3797
+ *
3798
+ * @generated from rpc silvana.settlement.v1.SettlementService.GetSettlementHistory
3799
+ */
3800
+ getSettlementHistory: {
3801
+ methodKind: "unary";
3802
+ input: typeof GetSettlementHistoryRequestSchema;
3803
+ output: typeof GetSettlementHistoryResponseSchema;
3804
+ },
3805
+ /**
3806
+ * Update proposal status (operator only: pending → settled/cancelled/failed)
3807
+ *
3808
+ * @generated from rpc silvana.settlement.v1.SettlementService.UpdateProposalStatus
3809
+ */
3810
+ updateProposalStatus: {
3811
+ methodKind: "unary";
3812
+ input: typeof UpdateProposalStatusRequestSchema;
3813
+ output: typeof UpdateProposalStatusResponseSchema;
3814
+ },
3815
+ /**
3816
+ * Get settlement proposal by ID (for external parties to fetch proposal details)
3817
+ *
3818
+ * @generated from rpc silvana.settlement.v1.SettlementService.GetSettlementProposalById
3819
+ */
3820
+ getSettlementProposalById: {
3821
+ methodKind: "unary";
3822
+ input: typeof GetSettlementProposalByIdRequestSchema;
3823
+ output: typeof GetSettlementProposalByIdResponseSchema;
3824
+ },
2915
3825
  }> = /*@__PURE__*/
2916
3826
  serviceDesc(file_proto_silvana_settlement_v1_settlement, 0);
2917
3827