@alphauspkgs/blue-sdk-ts 1.0.50 → 1.0.52

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.
@@ -49,7 +49,7 @@ import type { Message } from "@bufbuild/protobuf";
49
49
  * Describes the file cost/v1/cost.proto.
50
50
  */
51
51
  export const file_cost_v1_cost: GenFile = /*@__PURE__*/
52
- fileDesc("ChJjb3N0L3YxL2Nvc3QucHJvdG8SD2JsdWVhcGkuY29zdC52MSJaChhMaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIjQKFkdldFBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJIsACChRQYXllckFjY291bnRFeHRlbmRlZBIoCgVwYXllchgBIAEoCzIZLmJsdWVhcGkuYXBpLnJpcHBsZS5QYXllchIOCgZ0YXJnZXQYAiABKAkSDwoHcm9sZUFybhgDIAEoCRISCgpleHRlcm5hbElkGAQgASgJEg8KB3N0YWNrSWQYBSABKAkSEwoLc3RhY2tSZWdpb24YBiABKAkSEwoLdGVtcGxhdGVVcmwYByABKAkSDgoGc3RhdHVzGAggASgJEhMKC2xhc3RVcGRhdGVkGAkgASgJEhIKCmJ1Y2tldE5hbWUYCiABKAkSDgoGcHJlZml4GAsgASgJEhIKCnJlcG9ydE5hbWUYDCABKAkSIAoYZGVmYXVsdENvc3RBY2Nlc3NSb2xlQXJuGA0gASgJEg8KB2N1clR5cGUYDiABKAkiUAojR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEg0KBW1vbnRoGAMgASgJIlUKJEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnlSZXNwb25zZRIKCgJpZBgBIAEoCRINCgVtb250aBgCIAEoCRISCgp0aW1lc3RhbXBzGAMgAygJIjwKHkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiVAofR2V0UGF5ZXJQcm9mb3JtYVJlcG9ydHNSZXNwb25zZRIxCgdyZXBvcnRzGAEgAygLMiAuYmx1ZWFwaS5jb3N0LnYxLlByb2Zvcm1hUmVwb3J0cyKbAQoPUHJvZm9ybWFSZXBvcnRzEgoKAmlkGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEgoKYnVja2V0TmFtZRgEIAEoCRIOCgZwcmVmaXgYBSABKAkSEgoKcmVwb3J0TmFtZRgGIAEoCRIPCgdyb2xlQXJuGAcgASgJIogBCiNDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhIKCmJ1Y2tldE5hbWUYAyABKAkSDgoGcHJlZml4GAQgASgJEhIKCnJlcG9ydE5hbWUYBSABKAkSDwoHcm9sZUFybhgGIAEoCSJ1ChlDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJICgphd3NPcHRpb25zGAIgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZVBheWVyQWNjb3VudFJlcXVlc3RBd3NPcHRpb25zIjcKGURlbGV0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJImYKE0xpc3RBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSLgoKZmllbGRfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siXwoRR2V0QWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIj0KHkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJIloKHkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJEhsKE21hbmFnZW1lbnRCaWxsaW5nSWQYAiABKAki2gEKFENyZWF0ZUFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEg4KBnBhcmVudBgEIAEoCRJDCgphd3NPcHRpb25zGAUgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxJDCgpnY3BPcHRpb25zGAYgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucyJAChRVcGRhdGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCSIyChREZWxldGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiYgoPTGlzdFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIkUKJExpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAki0gEKJUxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2USVQoDYXdzGAEgASgLMkguYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UuQXdzUnVubmluZ0FjY291bnQaUgoRQXdzUnVubmluZ0FjY291bnQSDQoFbW9udGgYASABKAkSDwoHYWNjb3VudBgCIAEoCRIMCgRkYXRlGAMgASgJEg8KB3N0YXJ0ZWQYBCABKAkiLAoaR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIk0KG0dldENhbGN1bGF0b3JDb25maWdSZXNwb25zZRIuCgNhd3MYASABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQ2FsY3VsYXRvckNvbmZpZyKpBgogQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSEQoJYWNjb3VudElkGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSDwoHcGF5ZXJJZBgDIAEoCRJPCgpxdWFsaWZpZXJzGAQgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zLlF1YWxpZmllchJMCghtb2RpZmllchgFIAEoCzI6LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllchINCgVhZnRlchgGIAEoCRIUCgxjcmVhdGVOZXdSb3cYByABKAgaigEKCVF1YWxpZmllchJRCgNhbmQYASADKAsyRC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa/gIKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSawoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJOLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllci5EZXNjcmlwdGlvbk1vZGlmaWVyGvMBChNEZXNjcmlwdGlvbk1vZGlmaWVyEg4KBnByZWZpeBgBIAEoCRIOCgZzdWZmaXgYAiABKAkSDwoHcmVwbGFjZRgDIAEoCRJ2CgxyZXBsYWNlTWF0Y2gYBCADKAsyYC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuTW9kaWZpZXIuRGVzY3JpcHRpb25Nb2RpZmllci5SZXBsYWNlTWF0Y2hFbnRyeRozChFSZXBsYWNlTWF0Y2hFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIp8FCiJDYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zEg8KB2dyb3VwSWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRISCgpjdXN0b21lcklkGAMgASgJEhYKDnN1YnNjcmlwdGlvbklkGAQgASgJEhUKDWVudGl0bGVtZW50SWQYBSABKAkSUQoKcXVhbGlmaWVycxgGIAMoCzI9LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLlF1YWxpZmllchJOCghtb2RpZmllchgHIAEoCzI8LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyEg0KBWFmdGVyGAggASgJGowBCglRdWFsaWZpZXISUwoDYW5kGAEgAygLMkYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa0gEKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSbQoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJQLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyLkRlc2NyaXB0aW9uTW9kaWZpZXIaRgoTRGVzY3JpcHRpb25Nb2RpZmllchIOCgZwcmVmaXgYASABKAkSDgoGc3VmZml4GAIgASgJEg8KB3JlcGxhY2UYAyABKAki3gEKFkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISCgoCaWQYASABKAkSEgoKY3JlYXRlVGltZRgCIAEoCRISCgp1cGRhdGVUaW1lGAMgASgJEkUKCmF3c09wdGlvbnMYBCABKAsyMS5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSSQoMYXp1cmVPcHRpb25zGAUgASgLMjMuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMiNAoiTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkixwEKI0NyZWF0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJFCgphd3NPcHRpb25zGAIgASgLMjEuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zEkkKDGF6dXJlT3B0aW9ucxgDIAEoCzIzLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zIpQBCiRDcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2USNAoDYXdzGAEgAygLMicuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISNgoFYXp1cmUYAiADKAsyJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciJBCiNEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiNgoVSW1wb3J0Q3VyRmlsZXNSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEg4KBmZpbHRlchgCIAEoCSJ6CghDb3N0SXRlbRIiCgNhd3MYASABKAsyFS5ibHVlYXBpLmFwaS5hd3MuQ29zdBIiCgNnY3AYAiABKAsyFS5ibHVlYXBpLmFwaS5nY3AuQ29zdBImCgVhenVyZRgDIAEoCzIXLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3QiWAofQ2FsY3VsYXRlQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxINCgVmb3JjZRgBIAEoCBIUCgxhY2NvdW50c09ubHkYAiABKAgSEAoIdGFnc09ubHkYAyABKAgijQEKFUNhbGN1bGF0ZUNvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRINCgVtb250aBgDIAEoCRJECgphd3NPcHRpb25zGAQgASgLMjAuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdEF3c09wdGlvbnMiUwoeTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIMCgRhc09mGAIgASgJEhMKC2V4Y2x1ZGVEb25lGAMgASgIIksKIkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5QXdzUmVzcG9uc2USJQoKb3BlcmF0aW9ucxgBIAMoCzIRLnByb3Rvcy5PcGVyYXRpb24iYwofTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXNwb25zZRJACgNhd3MYASABKAsyMy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlBd3NSZXNwb25zZSK9AQoUQ2FsY3VsYXRpb25zU2NoZWR1bGUSCgoCaWQYASABKAkSEAoIc2NoZWR1bGUYAiABKAkSFQoNc2NoZWR1bGVNYWNybxgIIAEoCRITCgt0YXJnZXRNb250aBgJIAEoCRIPCgduZXh0UnVuGAMgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYBCABKAkSDQoFZm9yY2UYBSABKAgSDgoGZHJ5UnVuGAYgASgIEg4KBnN0YXR1cxgHIAEoCSIyCiBMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiXQohTGlzdENhbGN1bGF0aW9uc1NjaGVkdWxlc1Jlc3BvbnNlEjgKCXNjaGVkdWxlcxgBIAMoCzIlLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvbnNTY2hlZHVsZSKtAQohQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghzY2hlZHVsZRgCIAEoCRIVCg1zY2hlZHVsZU1hY3JvGAYgASgJEhMKC3RhcmdldE1vbnRoGAcgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYAyABKAkSDQoFZm9yY2UYBCABKAgSDgoGZHJ5UnVuGAUgASgIIj8KIURlbGV0ZUNhbGN1bGF0aW9uc1NjaGVkdWxlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiggMKGVJlYWRDb3N0QXR0cmlidXRlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkkKCmF3c09wdGlvbnMYBiABKAsyNS5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RBdHRyaWJ1dGVzUmVxdWVzdC5Bd3NPcHRpb25zEk0KDGF6dXJlT3B0aW9ucxgHIAEoCzI3LmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0LkF6dXJlT3B0aW9ucxogCgpBd3NPcHRpb25zEhIKCmRpbWVuc2lvbnMYASABKAkaUQoMQXp1cmVPcHRpb25zEhIKCmN1c3RvbWVySWQYASABKAkSFgoOc3Vic2NyaXB0aW9uSWQYAiABKAkSFQoNZW50aXRsZW1lbnRJZBgDIAEoCSJxChFDb3N0QXR0cmlidXRlSXRlbRIrCgNhd3MYASABKAsyHi5ibHVlYXBpLmFwaS5hd3MuQ29zdEF0dHJpYnV0ZRIvCgVhenVyZRgCIAEoCzIgLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3RBdHRyaWJ1dGUibwoYR2V0Q29zdEF0dHJpYnV0ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdncm91cElkGAMgASgJEhEKCWFjY291bnRJZBgEIAEoCRIQCghjYXRlZ29yeRgFIAEoCSJKChlHZXRDb3N0QXR0cmlidXRlc1Jlc3BvbnNlEi0KBWl0ZW1zGAEgAygLMh4uYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGUiPwoNQ29zdEF0dHJpYnV0ZRIOCgZ2ZW5kb3IYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSDAoEZGF0YRgDIAMoCSKuAQohUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzElYKCmFuZEZpbHRlcnMYASADKAsyQi5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxBAoaUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYCCABKAgSFQoNZ3JvdXBCeVRhZ0tleRgMIAEoCRJDCgdmaWx0ZXJzGAMgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJKCgp0YWdGaWx0ZXJzGAkgAygLMjYuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBCABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAUgASgIEhIKCnRvQ3VycmVuY3kYBiABKAkSEwoLZm9yY2VMYXRlc3QYByABKAgSDwoHbm9DYWNoZRgKIAEoCBIaChJpbmNsdWRlQWRqdXN0bWVudHMYCyABKAgamwEKClRhZ0ZpbHRlcnMSWgoKYW5kRmlsdGVycxgBIAMoCzJGLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxAgoQUmVhZENvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxI/CgpnY3BPcHRpb25zGAcgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zEkMKDGF6dXJlT3B0aW9ucxgIIAEoCzItLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXp1cmVPcHRpb25zIjYKIFJlYWRBZGp1c3RtZW50c1JlcXVlc3RBd3NPcHRpb25zEhIKCnRvQ3VycmVuY3kYASABKAkitwEKFlJlYWRBZGp1c3RtZW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkUKCmF3c09wdGlvbnMYBiABKAsyMS5ibHVlYXBpLmNvc3QudjEuUmVhZEFkanVzdG1lbnRzUmVxdWVzdEF3c09wdGlvbnMijwQKHVJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zEg0KBXRhZ0lkGAEgASgJEhYKDmdyb3VwQnlDb2x1bW5zGAIgASgJEhQKDGdyb3VwQnlNb250aBgDIAEoCBJDCgdmaWx0ZXJzGAQgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJNCgp0YWdGaWx0ZXJzGAUgAygLMjkuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBiABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAcgASgIEhIKCnRvQ3VycmVuY3kYCCABKAkSEwoLZm9yY2VMYXRlc3QYCSABKAgSDwoHbm9DYWNoZRgKIAEoCBIOCgZ0YWdJZHMYCyADKAkangEKClRhZ0ZpbHRlcnMSXQoKYW5kRmlsdGVycxgBIAMoCzJJLmJsdWVhcGkuY29zdC52MS5SZWFkVGFnQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK/AQoTUmVhZFRhZ0Nvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFQoNZ3JvdXBCeU1vbnRocxgFIAEoCBJCCgphd3NPcHRpb25zGAYgASgLMi4uYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zIn4KFlJlYWROb25UYWdDb3N0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCXN0YXJ0VGltZRgDIAEoCRIPCgdlbmRUaW1lGAQgASgJEhUKDWdyb3VwQnlNb250aHMYBSABKAgihAEKE0dldEZvcmVjYXN0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCWZyZXF1ZW5jeRgDIAEoCRINCgVsZXZlbBgEIAEoCRIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkiRwoUR2V0Rm9yZWNhc3RzUmVzcG9uc2USLwoEZGF0YRgBIAEoCzIhLmJsdWVhcGkuYXBpLkJpbGxpbmdHcm91cEZvcmVjYXN0ImwKHUdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkibwoeR2V0TW9udGhseUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEi4KBGRhdGEYAiADKAsyIC5ibHVlYXBpLmFwaS5Nb250aGx5Q29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgDIAEoCSJdCiJHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIMCgRkYXRlGAQgASgJInkKI0dldE1vbnRoT25Nb250aENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEjMKBGRhdGEYAiADKAsyJS5ibHVlYXBpLmFwaS5Nb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSEQoJdGltZXN0YW1wGAMgASgJIlwKIUdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEZGF0ZRgEIAEoCSKHAQoiR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIOCgZidWRnZXQYAiABKAESMgoEZGF0YRgDIAMoCzIkLmJsdWVhcGkuYXBpLk1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgEIAEoCSJSChdHZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEeWVhchgEIAEoCSI9ChhHZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2USIQoEZGF0YRgBIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCJqChpDcmVhdGVBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSIQoEZGF0YRgEIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCIvChtDcmVhdGVBY2NvdW50QnVkZ2V0UmVzcG9uc2USEAoIYnVkZ2V0SWQYASABKAkiYQoaVXBkYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJEiEKBGRhdGEYAyABKAsyEy5ibHVlYXBpLmFwaS5CdWRnZXQiPgoaRGVsZXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJIosCCiNHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0QXdzT3B0aW9ucxIaChJyZWNvbW1lbmRhdGlvblR5cGUYASABKAkSDAoEdHlwZRgCIAEoCRISCgpyaVNlcnZpY2VzGAMgAygJEhIKCnNwU2VydmljZXMYBCADKAkSHgoWcHVyY2hhc2VFQzJTYXZpbmdzUGxhbhgFIAEoCBIaChJlYzJTcFByb2R1Y3RGYW1pbHkYBiABKAkSDAoEdGVybRgHIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAggASgJEhUKDXBheW1lbnRPcHRpb24YCSABKAkSGgoSY292ZXJhZ2VQZXJjZW50YWdlGAogASgBIqsBChlHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIQCghhY2NvdW50cxgDIAMoCRITCgtjb3N0R3JvdXBJZBgEIAEoCRJICgphd3NPcHRpb25zGAUgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1JlcXVlc3RBd3NPcHRpb25zImwKGkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj8KEmF3c1JlY29tbWVuZGF0aW9ucxgCIAEoCzIjLmJsdWVhcGkuYXBpLmF3cy5Bd3NSZWNvbW1lbmRhdGlvbnMiggIKF0dldENvc3RSZWR1Y3Rpb25SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIYChByZWR1Y3Rpb25EaXNwbGF5GAMgASgJEhYKDmluY2x1ZGVEZXRhaWxzGAQgASgIEhAKCGZyb21EYXRlGAUgASgJEg4KBnRvRGF0ZRgGIAEoCRIPCgdwYXllcklkGAcgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAggASgJEg8KB2dyb3VwSWQYCSABKAkSEwoLY29zdEdyb3VwSWQYCiABKAkSEAoIYWNjb3VudHMYCyADKAkSEAoIc2VydmljZXMYDCADKAkiaAoYR2V0Q29zdFJlZHVjdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEWF3c0Nvc3RSZWR1Y3Rpb25zGAIgASgLMiIuYmx1ZWFwaS5hcGkuYXdzLkF3c0Nvc3RSZWR1Y3Rpb25zIlQKFEdldEV4cG9ydFJJU1BSZXF1ZXN0EgwKBHR5cGUYASABKAkSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESFgoOaW5jbHVkZUV4cGlyZWQYAyABKAgiLQoVR2V0RXhwb3J0UklTUFJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSKaAQoTRXhwb3J0UmVwb3J0UmVxdWVzdBINCgVtb250aBgCIAEoCRIOCgZ2ZW5kb3IYASABKAkSJgoYbm90aWZpY2F0aW9uX2NoYW5uZWxfaWRzGAQgAygJQgTiQQEBEjwKC2F3c19vcHRpb25zGAogASgLMicuYmx1ZWFwaS5jb3N0LnYxLkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMi0QIKFkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMSFwoPaW5jbHVkZV9leHBpcmVkGAEgASgIEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhUKB3F1ZXJpZXMYAyADKAlCBOJBAQISFQoHY29sdW1ucxgEIAMoCUIE4kEBARJVChBjb2x1bW5zX2J5X3F1ZXJ5GAUgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMuQ29sdW1uc0J5UXVlcnlFbnRyeRoZCgdDb2x1bW5zEg4KBnZhbHVlcxgBIAMoCRpmChNDb2x1bW5zQnlRdWVyeUVudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLmJsdWVhcGkuY29zdC52MS5Bd3NFeHBvcnRSZXBvcnRPcHRpb25zLkNvbHVtbnM6AjgBIrgBChVHZXRVdGlsaXphdGlvblJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBHR5cGUYAyABKAkSEAoIZnJvbURhdGUYBCABKAkSDgoGdG9EYXRlGAUgASgJEg8KB3BheWVySWQYBiABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYByABKAkSDwoHZ3JvdXBJZBgIIAEoCRITCgtjb3N0R3JvdXBJZBgJIAEoCSJeChZHZXRVdGlsaXphdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjUKD3V0aWxpemF0aW9uRGF0YRgCIAMoCzIcLmJsdWVhcGkuYXBpLlV0aWxpemF0aW9uRGF0YSL0AQoZR2V0Q292ZXJhZ2VPcHRpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGcGVyaW9kGAMgASgJEhAKCGZyb21EYXRlGAQgASgJEg4KBnRvRGF0ZRgFIAEoCRIPCgdwYXllcklkGAYgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAcgASgJEg8KB2dyb3VwSWQYCCABKAkSEwoLY29zdEdyb3VwSWQYCSABKAkSEAoIYWNjb3VudHMYCiADKAkSEAoIc2VydmljZXMYCyADKAkSEAoIY3VycmVuY3kYDCABKAkiWgoaR2V0Q292ZXJhZ2VPcHRpb25zUmVzcG9uc2USDQoFb3JnSWQYASABKAkSLQoLb3B0aW9uc0RhdGEYAiADKAsyGC5ibHVlYXBpLmFwaS5PcHRpb25zRGF0YSLjAQoaR2V0Q292ZXJhZ2VPbmRlbWFuZFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnBlcmlvZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkSDwoHcGF5ZXJJZBgGIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgHIAEoCRIPCgdncm91cElkGAggASgJEhMKC2Nvc3RHcm91cElkGAkgASgJEhAKCGFjY291bnRzGAogAygJEhAKCHNlcnZpY2VzGAsgAygJIl0KG0dldENvdmVyYWdlT25kZW1hbmRSZXNwb25zZRINCgVvcmdJZBgBIAEoCRIvCgxvbmRlbWFuZERhdGEYAiADKAsyGS5ibHVlYXBpLmFwaS5PbmRlbWFuZERhdGEiVAoYR2V0QnJlYWtldmVuUG9pbnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIMCgR0eXBlGAMgASgJEgsKA2FybhgEIAEoCSJnChlHZXRCcmVha2V2ZW5Qb2ludFJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjsKEGF3c0Nvc3RCcmVha2V2ZW4YAiABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQXdzQ29zdEJyZWFrZXZlbiIoChZMaXN0Q29zdEZpbHRlcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJQChdMaXN0Q29zdEZpbHRlcnNSZXNwb25zZRI1Cgtjb3N0RmlsdGVycxgBIAMoCzIgLmJsdWVhcGkuY29zdC52MS5MaXN0Q29zdEZpbHRlcnMirAEKD0xpc3RDb3N0RmlsdGVycxIQCghmaWx0ZXJJZBgBIAEoCRISCgpmaWx0ZXJOYW1lGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdncm91cElkGAQgASgJEhEKCWFjY291bnRJZBgFIAEoCRI/Cgphd3NPcHRpb25zGAYgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zIqMBChhDcmVhdGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhIKCmZpbHRlck5hbWUYAiABKAkSDwoHZ3JvdXBJZBgDIAEoCRIRCglhY2NvdW50SWQYBCABKAkSPwoKYXdzT3B0aW9ucxgFIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyItChlDcmVhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlEhAKCGZpbHRlcklkGAEgASgJIrUBChhVcGRhdGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJEhIKCmZpbHRlck5hbWUYAyABKAkSDwoHZ3JvdXBJZBgEIAEoCRIRCglhY2NvdW50SWQYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyItChlVcGRhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlEhAKCGZpbHRlcklkGAEgASgJIjwKGERlbGV0ZUNvc3RGaWx0ZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEAoIZmlsdGVySWQYAiABKAkixwEKHEV4cG9ydENvc3RGaWx0ZXJzRmlsZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJEh4KFm5vdGlmaWNhdGlvbkNoYW5uZWxJZHMYCCADKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFAoMZ3JvdXBCeU1vbnRoGAUgASgIEhYKDmdyb3VwQnlDb2x1bW5zGAYgASgJEhMKC2luY2x1ZGVUYWdzGAcgASgIIiwKHUV4cG9ydENvc3RGaWx0ZXJzRmlsZVJlc3BvbnNlEgsKA3VybBgBIAEoCSKSAgoaUmVhZENvc3RzUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYAyABKAgSQwoHZmlsdGVycxgEIAMoCzIyLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0R2NwT3B0aW9uc0ZpbHRlcnMSGwoTaW5jbHVkZUludm9pY2VNb250aBgGIAEoCBIWCg5pbmNsdWRlQ3JlZGl0cxgHIAEoCBIQCghyb3VuZGluZxgIIAEoCBIPCgdub0NhY2hlGAUgASgIEhIKCnRvQ3VycmVuY3kYCSABKAkirgEKIVJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zRmlsdGVycxJWCgphbmRGaWx0ZXJzGAEgAygLMkIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwodR2V0QWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJInIKIENyZWF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIyCgtidWRnZXRBbGVydBgDIAEoCzIdLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQicgogVXBkYXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEjIKC2J1ZGdldEFsZXJ0GAMgASgLMh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCI+CiBEZWxldGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiiAEKHFJlYWRDb3N0c1JlcXVlc3RBenVyZU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEg8KB25vQ2FjaGUYAyABKAgSEgoKdG9DdXJyZW5jeRgEIAEoCRIVCg1yZXNvdXJjZUdyb3VwGAUgASgJIqgDCgxCdWRnZXRBbGVydHMSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEiYKCGFjY291bnRzGAMgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudBJACgxub3RpZmljYXRpb24YBCABKAsyKi5ibHVlYXBpLmFwaS5CdWRnZXRBbGVydE5vdGlmaWNhdGlvbkRldGFpbBIsCgVkYWlseRgFIAEoCzIdLmJsdWVhcGkuYXBpLkRhaWx5QnVkZ2V0QWxlcnQSPAoJZGFpbHlSYXRlGAcgASgLMikuYmx1ZWFwaS5hcGkuRGFpbHlSYXRlSW5jcmVhc2VCdWRnZXRBbGVydBIwCgdtb250aGx5GAYgASgLMh8uYmx1ZWFwaS5hcGkuTW9udGhseUJ1ZGdldEFsZXJ0EjoKDGN1c3RvbVBlcmlvZBgIIAEoCzIkLmJsdWVhcGkuYXBpLkN1c3RvbVBlcmlvZEJ1ZGdldEFsZXJ0EjgKC2N1c3RvbU1vbnRoGAkgASgLMiMuYmx1ZWFwaS5hcGkuQ3VzdG9tTW9udGhCdWRnZXRBbGVydCJJChdSZWFkQnVkZ2V0QWxlcnRzUmVxdWVzdBIuCgpmaWVsZF9tYXNrGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayIkChZHZXRCdWRnZXRBbGVydHNSZXF1ZXN0EgoKAmlkGAEgASgJIo0DChlDcmVhdGVCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghhY2NvdW50cxgCIAMoCRI6Cgxub3RpZmljYXRpb24YAyABKAsyJC5ibHVlYXBpLmFwaS5CdWRnZXRBbGVydE5vdGlmaWNhdGlvbhIsCgVkYWlseRgEIAEoCzIdLmJsdWVhcGkuYXBpLkRhaWx5QnVkZ2V0QWxlcnQSPAoJZGFpbHlSYXRlGAYgASgLMikuYmx1ZWFwaS5hcGkuRGFpbHlSYXRlSW5jcmVhc2VCdWRnZXRBbGVydBIwCgdtb250aGx5GAUgASgLMh8uYmx1ZWFwaS5hcGkuTW9udGhseUJ1ZGdldEFsZXJ0EjoKDGN1c3RvbVBlcmlvZBgHIAEoCzIkLmJsdWVhcGkuYXBpLkN1c3RvbVBlcmlvZEJ1ZGdldEFsZXJ0EjgKC2N1c3RvbU1vbnRoGAggASgLMiMuYmx1ZWFwaS5hcGkuQ3VzdG9tTW9udGhCdWRnZXRBbGVydCKZAwoZVXBkYXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIYWNjb3VudHMYAyADKAkSOgoMbm90aWZpY2F0aW9uGAQgASgLMiQuYmx1ZWFwaS5hcGkuQnVkZ2V0QWxlcnROb3RpZmljYXRpb24SLAoFZGFpbHkYBSABKAsyHS5ibHVlYXBpLmFwaS5EYWlseUJ1ZGdldEFsZXJ0EjwKCWRhaWx5UmF0ZRgHIAEoCzIpLmJsdWVhcGkuYXBpLkRhaWx5UmF0ZUluY3JlYXNlQnVkZ2V0QWxlcnQSMAoHbW9udGhseRgGIAEoCzIfLmJsdWVhcGkuYXBpLk1vbnRobHlCdWRnZXRBbGVydBI6CgxjdXN0b21QZXJpb2QYCCABKAsyJC5ibHVlYXBpLmFwaS5DdXN0b21QZXJpb2RCdWRnZXRBbGVydBI4CgtjdXN0b21Nb250aBgJIAEoCzIjLmJsdWVhcGkuYXBpLkN1c3RvbU1vbnRoQnVkZ2V0QWxlcnQiJwoZRGVsZXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCSI6ChRDaGVja0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEgoKYWNjb3VudElkcxgCIAMoCSKKAQoVQ2hlY2tBY2NvdW50c1Jlc3BvbnNlEkIKBmV4aXN0cxgBIAMoCzIyLmJsdWVhcGkuY29zdC52MS5DaGVja0FjY291bnRzUmVzcG9uc2UuRXhpc3RzRW50cnkaLQoLRXhpc3RzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgIOgI4ASI2ChVSZWFkSW52b2ljZUlkc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJIiQKFlJlYWRJbnZvaWNlSWRzUmVzcG9uc2USCgoCaWQYASABKAkisAEKC1BlcmlvZFJhbmdlEi8KBHVuaXQYASABKA4yIS5ibHVlYXBpLmNvc3QudjEuUGVyaW9kUmFuZ2UuVW5pdBIMCgR5ZWFyGAIgASgNEhAKCHN0YXJ0aW5nGAMgASgNEhAKCGR1cmF0aW9uGAQgASgNIj4KBFVuaXQSFAoQVU5JVF9VTlNQRUNJRklFRBAAEgkKBU1PTlRIEAESCwoHUVVBUlRFUhACEggKBFlFQVIQAyKgAQobUmVhZEludm9pY2VPdmVydmlld3NSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhYKDnVzZVBlcmlvZFJhbmdlGAQgASgIEjEKC3BlcmlvZFJhbmdlGAUgASgLMhwuYmx1ZWFwaS5jb3N0LnYxLlBlcmlvZFJhbmdlEhIKCnRvQ3VycmVuY3kYAyABKAkiUQoXUmVhZEludm9pY2VDb3N0c1JlcXVlc3QSEQoJc3RhcnRUaW1lGAEgASgJEg8KB2VuZFRpbWUYAiABKAkSEgoKdG9DdXJyZW5jeRgDIAEoCSJlChxSZWFkSW52b2ljZUdyb3VwQ29zdHNSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhIKCnRvQ3VycmVuY3kYAyABKAkSDQoFbGltaXQYBCABKAUiNQojUmVhZEFjY291bnRPcmlnaW5hbFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIlgKG1JlZ2lzdGVyUGF5ZXJBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjdXJUeXBlGAQgASgJIlYKGVVwZGF0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY3VyVHlwZRgEIAEoCSJECiNMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkilQEKF0NhbGN1bGF0aW9uUHJlcmVxdWlzaXRlEhIKCmludm9pY2VfaWQYASABKAkSEAoIcGF5ZXJfaWQYAiABKAkSFQoNZXhjaGFuZ2VfcmF0ZRgDIAEoARIdChV1bmJsZW5kZWRfY29zdF9pbl9jdXIYBCABKAESDAoEbmFtZRgFIAEoCRIQCghjdXJfdHlwZRgGIAEoCSJnCiRMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVzcG9uc2USPwoNcHJlcmVxdWlzaXRlcxgBIAMoCzIoLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvblByZXJlcXVpc2l0ZSKwAQonU2V0dXBQYXllckFjY291bnRCaWxsaW5nVHJhbnNmZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRINCgVtb250aBgDIAEoCRIRCglzM19idWNrZXQYBCABKAkSEwoLcmVwb3J0X25hbWUYBSABKAkSEAoIcm9sZV9hcm4YBiABKAkSEAoIY3VyX3R5cGUYByABKAkSDgoGcHJlZml4GAggASgJMt1TCgRDb3N0EnMKEUxpc3RQYXllckFjY291bnRzEikuYmx1ZWFwaS5jb3N0LnYxLkxpc3RQYXllckFjY291bnRzUmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiG4LT5JMCFRITL3YxL3t2ZW5kb3J9L3BheWVyczABEncKD0dldFBheWVyQWNjb3VudBInLmJsdWVhcGkuY29zdC52MS5HZXRQYXllckFjY291bnRSZXF1ZXN0GhkuYmx1ZWFwaS5hcGkucmlwcGxlLlBheWVyIiCC0+STAhoSGC92MS97dmVuZG9yfS9wYXllcnMve2lkfRKUAQoZTGlzdFBheWVyQWNjb3VudHNFeHRlbmRlZBIpLmJsdWVhcGkuY29zdC52MS5MaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuUGF5ZXJBY2NvdW50RXh0ZW5kZWQiI4LT5JMCHRIbL3YxL3t2ZW5kb3J9L3BheWVyc2V4dGVuZGVkMAESkwEKF0dldFBheWVyQWNjb3VudEV4dGVuZGVkEicuYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyQWNjb3VudFJlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuUGF5ZXJBY2NvdW50RXh0ZW5kZWQiKILT5JMCIhIgL3YxL3t2ZW5kb3J9L3BheWVyc2V4dGVuZGVkL3tpZH0SvQEKHEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnkSNC5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QaNS5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlc3BvbnNlIi6C0+STAigSJi92MS97dmVuZG9yfS9wYXllcnMve2lkfS9pbXBvcnRoaXN0b3J5MAESpwEKF0dldFBheWVyUHJvZm9ybWFSZXBvcnRzEi8uYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBowLmJsdWVhcGkuY29zdC52MS5HZXRQYXllclByb2Zvcm1hUmVwb3J0c1Jlc3BvbnNlIimC0+STAiMSIS92MS97dmVuZG9yfS9wYXllcnMve2lkfS9wcm9mb3JtYRJ2ChJDcmVhdGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiHoLT5JMCGDoBKiITL3YxL3t2ZW5kb3J9L3BheWVycxKJAQoUUmVnaXN0ZXJQYXllckFjY291bnQSLC5ibHVlYXBpLmNvc3QudjEuUmVnaXN0ZXJQYXllckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS9wYXllcnMvYmFzaWNkZXRhaWxzEooBChJVcGRhdGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuVXBkYXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqOgEqGiUvdjEve3ZlbmRvcn0vcGF5ZXJzL2Jhc2ljZGV0YWlscy97aWR9EnoKEkRlbGV0ZVBheWVyQWNjb3VudBIqLmJsdWVhcGkuY29zdC52MS5EZWxldGVQYXllckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiCC0+STAhoqGC92MS97dmVuZG9yfS9wYXllcnMve2lkfRKVAQoMTGlzdEFjY291bnRzEiQuYmx1ZWFwaS5jb3N0LnYxLkxpc3RBY2NvdW50c1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IkeC0+STAkFaKBImL3YxL3t2ZW5kb3J9L2FjY291bnRzL2dyb3Vwcy97Z3JvdXBJZH0SFS92MS97dmVuZG9yfS9hY2NvdW50czABEmoKCkdldEFjY291bnQSIi5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IiKC0+STAhwSGi92MS97dmVuZG9yfS9hY2NvdW50cy97aWR9Em4KDUNyZWF0ZUFjY291bnQSJS5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IiCC0+STAho6ASoiFS92MS97dmVuZG9yfS9hY2NvdW50cxJzCg1VcGRhdGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQWNjb3VudCIlgtPkkwIfOgEqGhovdjEve3ZlbmRvcn0vYWNjb3VudHMve2lkfRJyCg1EZWxldGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi92MS97dmVuZG9yfS9hY2NvdW50cy97aWR9Ep8BChxSZWFkQWNjb3VudE9yaWdpbmFsUmVzb3VyY2VzEjQuYmx1ZWFwaS5jb3N0LnYxLlJlYWRBY2NvdW50T3JpZ2luYWxSZXNvdXJjZXNSZXF1ZXN0GiQuYmx1ZWFwaS5hcGkuQWNjb3VudE9yaWdpbmFsUmVzb3VyY2UiIYLT5JMCGzoBKiIWL3YxL3t2ZW5kb3J9L2FvcnM6cmVhZDABEoUBCghMaXN0VGFncxIgLmJsdWVhcGkuY29zdC52MS5MaXN0VGFnc1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5Db3N0VGFnIj+C0+STAjlaJBIiL3YxL3t2ZW5kb3J9L3RhZ3MvZ3JvdXBzL3tncm91cElkfRIRL3YxL3t2ZW5kb3J9L3RhZ3MwARLBAQodTGlzdENhbGN1bGF0b3JSdW5uaW5nQWNjb3VudHMSNS5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0b3JSdW5uaW5nQWNjb3VudHNSZXF1ZXN0GjYuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvcnVubmluZzpyZWFkMAESmAEKE0dldENhbGN1bGF0b3JDb25maWcSKy5ibHVlYXBpLmNvc3QudjEuR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0Q2FsY3VsYXRvckNvbmZpZ1Jlc3BvbnNlIiaC0+STAiASHi92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZxKuAQobTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzEjMuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yQ29zdE1vZGlmaWVyc1JlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciIvgtPkkwIpEicvdjEve3ZlbmRvcn0vY2FsY3VsYXRvci9jb25maWcvY29zdG1vZHMwARK/AQocQ3JlYXRlQ2FsY3VsYXRvckNvc3RNb2RpZmllchI0LmJsdWVhcGkuY29zdC52MS5DcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBo1LmJsdWVhcGkuY29zdC52MS5DcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2UiMoLT5JMCLDoBKiInL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvY29uZmlnL2Nvc3Rtb2RzEqIBChxEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyEjQuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjSC0+STAi4qLC92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZy9jb3N0bW9kcy97aWR9EmoKDkltcG9ydEN1ckZpbGVzEiYuYmx1ZWFwaS5jb3N0LnYxLkltcG9ydEN1ckZpbGVzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iHYLT5JMCFzoBKiISL3YxL2F3cy9jdXI6aW1wb3J0EnQKDkNhbGN1bGF0ZUNvc3RzEiYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L2Nvc3RzOmNhbGN1bGF0ZRKnAQoXTGlzdENhbGN1bGF0aW9uc0hpc3RvcnkSLy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0GjAuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5UmVzcG9uc2UiKYLT5JMCIxIhL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9oaXN0b3J5Eq8BChlMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzEjEuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNTY2hlZHVsZXNSZXF1ZXN0GjIuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNTY2hlZHVsZXNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vY2FsY3VsYXRpb25zL3NjaGVkdWxlcxKnAQoaQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGUSMi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0aW9uc1NjaGVkdWxlIi6C0+STAig6ASoiIy92MS97dmVuZG9yfS9jYWxjdWxhdGlvbnMvc2NoZWR1bGVzEpoBChpEZWxldGVDYWxjdWxhdGlvbnNTY2hlZHVsZRIyLmJsdWVhcGkuY29zdC52MS5EZWxldGVDYWxjdWxhdGlvbnNTY2hlZHVsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKiooL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9zY2hlZHVsZXMve2lkfRKGAQoPTGlzdENvc3RGaWx0ZXJzEicuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDb3N0RmlsdGVyc1JlcXVlc3QaKC5ibHVlYXBpLmNvc3QudjEuTGlzdENvc3RGaWx0ZXJzUmVzcG9uc2UiIILT5JMCGhIYL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzEo8BChFDcmVhdGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5DcmVhdGVDb3N0RmlsdGVyc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ29zdEZpbHRlcnNSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMSmgEKEVVwZGF0ZUNvc3RGaWx0ZXJzEikuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUNvc3RGaWx0ZXJzUmVxdWVzdBoqLmJsdWVhcGkuY29zdC52MS5VcGRhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlIi6C0+STAig6ASoaIy92MS97dmVuZG9yfS9jb3N0ZmlsdGVycy97ZmlsdGVySWR9EoMBChFEZWxldGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5EZWxldGVDb3N0RmlsdGVyc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiK4LT5JMCJSojL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzL3tmaWx0ZXJJZH0SkAEKFUV4cG9ydENvc3RGaWx0ZXJzRmlsZRItLmJsdWVhcGkuY29zdC52MS5FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiI1gtPkkwIvOgEqIiovdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfTpleHBvcnQStwEKGUV4cG9ydENvc3RGaWx0ZXJzRmlsZVN5bmMSLS5ibHVlYXBpLmNvc3QudjEuRXhwb3J0Q29zdEZpbHRlcnNGaWxlUmVxdWVzdBouLmJsdWVhcGkuY29zdC52MS5FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXNwb25zZSI7gtPkkwI1OgEqIjAvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfTpleHBvcnRkaXJlY3QSjgEKElJlYWRDb3N0QXR0cmlidXRlcxIqLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0GiIuYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGVJdGVtIiaC0+STAiA6ASoiGy92MS97dmVuZG9yfS9jb3N0YXR0cnM6cmVhZDABEooBChFHZXRDb3N0QXR0cmlidXRlcxIpLmJsdWVhcGkuY29zdC52MS5HZXRDb3N0QXR0cmlidXRlc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuR2V0Q29zdEF0dHJpYnV0ZXNSZXNwb25zZSIegtPkkwIYEhYvdjEve3ZlbmRvcn0vY29zdGF0dHJzEm8KCVJlYWRDb3N0cxIhLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiKC0+STAhw6ASoiFy92MS97dmVuZG9yfS9jb3N0czpyZWFkMAESgQEKD1JlYWRBZGp1c3RtZW50cxInLmJsdWVhcGkuY29zdC52MS5SZWFkQWRqdXN0bWVudHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiiC0+STAiI6ASoiHS92MS97dmVuZG9yfS9hZGp1c3RtZW50czpyZWFkMAESeAoMUmVhZFRhZ0Nvc3RzEiQuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3QaGS5ibHVlYXBpLmNvc3QudjEuQ29zdEl0ZW0iJYLT5JMCHzoBKiIaL3YxL3t2ZW5kb3J9L3RhZ2Nvc3RzOnJlYWQwARKBAQoPUmVhZE5vblRhZ0Nvc3RzEicuYmx1ZWFwaS5jb3N0LnYxLlJlYWROb25UYWdDb3N0c1JlcXVlc3QaGS5ibHVlYXBpLmNvc3QudjEuQ29zdEl0ZW0iKILT5JMCIjoBKiIdL3YxL3t2ZW5kb3J9L25vbnRhZ2Nvc3RzOnJlYWQwARJ7CgxHZXRGb3JlY2FzdHMSJC5ibHVlYXBpLmNvc3QudjEuR2V0Rm9yZWNhc3RzUmVxdWVzdBolLmJsdWVhcGkuY29zdC52MS5HZXRGb3JlY2FzdHNSZXNwb25zZSIegtPkkwIYEhYvdjEve3ZlbmRvcn0vZm9yZWNhc3RzEq4BChZHZXRNb250aGx5Q29zdEZvcmVjYXN0Ei4uYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXNwb25zZSIzgtPkkwItEisvdjEve3ZlbmRvcn0vZm9yZWNhc3RzL21vbnRobHkve2xldmVsfS97aWR9EsQBChtHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSMy5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhPbk1vbnRoQ29zdEZvcmVjYXN0UmVxdWVzdBo0LmJsdWVhcGkuY29zdC52MS5HZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXNwb25zZSI6gtPkkwI0EjIvdjEve3ZlbmRvcn0vZm9yZWNhc3RzL21vbnRoLW9uLW1vbnRoL3tsZXZlbH0ve2lkfRLAAQoaR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3QSMi5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GjMuYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiOYLT5JMCMxIxL3YxL3t2ZW5kb3J9L2ZvcmVjYXN0cy9tb250aC10by1kYXRlL3tsZXZlbH0ve2lkfRKRAQoQR2V0QWNjb3VudEJ1ZGdldBIoLmJsdWVhcGkuY29zdC52MS5HZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBopLmJsdWVhcGkuY29zdC52MS5HZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2UiKILT5JMCIhIgL3YxL3t2ZW5kb3J9L2J1ZGdldC97bGV2ZWx9L3tpZH0SnQEKE0NyZWF0ZUFjY291bnRCdWRnZXQSKy5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldFJlc3BvbnNlIiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS9idWRnZXQve2xldmVsfS97aWR9EoUBChNVcGRhdGVBY2NvdW50QnVkZ2V0EisuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRCdWRnZXRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiM6ASoaHi92MS97dmVuZG9yfS9idWRnZXQve2J1ZGdldElkfRKCAQoTRGVsZXRlQWNjb3VudEJ1ZGdldBIrLmJsdWVhcGkuY29zdC52MS5EZWxldGVBY2NvdW50QnVkZ2V0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSImgtPkkwIgKh4vdjEve3ZlbmRvcn0vYnVkZ2V0L3tidWRnZXRJZH0SiQEKFkdldEFjY291bnRCdWRnZXRBbGVydHMSLi5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmFwaS53YXZlLkJ1ZGdldEFsZXJ0IiCC0+STAhoSGC92MS97dmVuZG9yfS9hbGVydHMve2lkfRKSAQoZQ3JlYXRlQWNjb3VudEJ1ZGdldEFsZXJ0cxIxLmJsdWVhcGkuY29zdC52MS5DcmVhdGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBodLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQiI4LT5JMCHToBKiIYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EpIBChlVcGRhdGVBY2NvdW50QnVkZ2V0QWxlcnRzEjEuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCIjgtPkkwIdOgEqGhgvdjEve3ZlbmRvcn0vYWxlcnRzL3tpZH0SiAEKGURlbGV0ZUFjY291bnRCdWRnZXRBbGVydHMSMS5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIILT5JMCGioYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EnkKEFJlYWRCdWRnZXRBbGVydHMSKC5ibHVlYXBpLmNvc3QudjEuUmVhZEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhqC0+STAhQ6ASoiDy92MS9hbGVydHM6cmVhZDABEnIKD0dldEJ1ZGdldEFsZXJ0cxInLmJsdWVhcGkuY29zdC52MS5HZXRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3N0LnYxLkJ1ZGdldEFsZXJ0cyIXgtPkkwIREg8vdjEvYWxlcnRzL3tpZH0SdgoSQ3JlYXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhWC0+STAg86ASoiCi92MS9hbGVydHMSewoSVXBkYXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhqC0+STAhQ6ASoaDy92MS9hbGVydHMve2lkfRJxChJEZWxldGVCdWRnZXRBbGVydHMSKi5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIXgtPkkwIRKg8vdjEvYWxlcnRzL3tpZH0SowEKEkdldFJlY29tbWVuZGF0aW9ucxIqLmJsdWVhcGkuY29zdC52MS5HZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0GisuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlIjSC0+STAi46ASoiKS92MS97dmVuZG9yfS9yZWNvbW1lbmRhdGlvbnMve29yZ0lkfTpyZWFkEpcBChBHZXRDb3N0UmVkdWN0aW9uEiguYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RSZWR1Y3Rpb25SZXF1ZXN0GikuYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RSZWR1Y3Rpb25SZXNwb25zZSIugtPkkwIoOgEqIiMvdjEve3ZlbmRvcn0vcmVkdWN0aW9uL3tvcmdJZH06cmVhZBKGAQoNR2V0RXhwb3J0UklTUBIlLmJsdWVhcGkuY29zdC52MS5HZXRFeHBvcnRSSVNQUmVxdWVzdBomLmJsdWVhcGkuY29zdC52MS5HZXRFeHBvcnRSSVNQUmVzcG9uc2UiJoLT5JMCIDoBKiIbL3YxL2V4cG9ydGNzdi9wYXllcnM6ZXhwb3J0EmYKDEV4cG9ydFJlcG9ydBIkLmJsdWVhcGkuY29zdC52MS5FeHBvcnRSZXBvcnRSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIdgtPkkwIXOgEqIhIvdjEvcmVwb3J0czpleHBvcnQSiwEKDkdldFV0aWxpemF0aW9uEiYuYmx1ZWFwaS5jb3N0LnYxLkdldFV0aWxpemF0aW9uUmVxdWVzdBonLmJsdWVhcGkuY29zdC52MS5HZXRVdGlsaXphdGlvblJlc3BvbnNlIiiC0+STAiISIC92MS97dmVuZG9yfS91dGlsaXphdGlvbi97b3JnSWR9EqQBChJHZXRDb3ZlcmFnZU9wdGlvbnMSKi5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPcHRpb25zUmVxdWVzdBorLmJsdWVhcGkuY29zdC52MS5HZXRDb3ZlcmFnZU9wdGlvbnNSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEve3ZlbmRvcn0vY292ZXJhZ2Uvb3B0aW9ucy97b3JnSWR9OnJlYWQSqAEKE0dldENvdmVyYWdlT25kZW1hbmQSKy5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPbmRlbWFuZFJlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPbmRlbWFuZFJlc3BvbnNlIjaC0+STAjA6ASoiKy92MS97dmVuZG9yfS9jb3ZlcmFnZS9vbmRlbWFuZC97b3JnSWR9OnJlYWQSjAEKEUdldEJyZWFrZXZlblBvaW50EikuYmx1ZWFwaS5jb3N0LnYxLkdldEJyZWFrZXZlblBvaW50UmVxdWVzdBoqLmJsdWVhcGkuY29zdC52MS5HZXRCcmVha2V2ZW5Qb2ludFJlc3BvbnNlIiCC0+STAhoSGC92MS97dmVuZG9yfS9iZXAve29yZ0lkfRKkAQoYQ2hlY2tBY2NvdW50c0JlbG9uZ1RvTXNwEiUuYmx1ZWFwaS5jb3N0LnYxLkNoZWNrQWNjb3VudHNSZXF1ZXN0GiYuYmx1ZWFwaS5jb3N0LnYxLkNoZWNrQWNjb3VudHNSZXNwb25zZSI5gtPkkwIzOgEqIi4vdjEve3ZlbmRvcn0vYWNjb3VudHMvY3VzdG9tZXJzL2FjY291bnRzOmNoZWNrEowBCg5SZWFkSW52b2ljZUlkcxImLmJsdWVhcGkuY29zdC52MS5SZWFkSW52b2ljZUlkc1JlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuUmVhZEludm9pY2VJZHNSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEve3ZlbmRvcn0vaW52b2ljZWlkczpyZWFkMAESlAEKFFJlYWRJbnZvaWNlT3ZlclZpZXdzEiwuYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlT3ZlcnZpZXdzUmVxdWVzdBomLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5PdmVyVmlld1NlY3Rpb24iJILT5JMCHjoBKiIZL3YxL2ludm9pY2VvdmVydmlld3M6cmVhZDABEoUBChBSZWFkSW52b2ljZUNvc3RzEiguYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlQ29zdHNSZXF1ZXN0GiMuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLlRvdGFsU2VjdGlvbiIggtPkkwIaOgEqIhUvdjEvaW52b2ljZWNvc3RzOnJlYWQwARKbAQoVUmVhZEludm9pY2VHcm91cENvc3RzEi0uYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlR3JvdXBDb3N0c1JlcXVlc3QaKi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQmlsbGluZ0dyb3VwU2VjdGlvbiIlgtPkkwIfOgEqIhovdjEvaW52b2ljZWdyb3VwY29zdHM6cmVhZDABEsMBChxMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzEjQuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvblByZXJlcXVpc2l0ZXNSZXF1ZXN0GjUuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvblByZXJlcXVpc2l0ZXNSZXNwb25zZSI2gtPkkwIwEi4vdjEve3ZlbmRvcn0vY2FsY3VsYXRpb24vcHJlcmVxdWlzaXRlcy97bW9udGh9EqkBCiBTZXR1cFBheWVyQWNjb3VudEJpbGxpbmdUcmFuc2ZlchI4LmJsdWVhcGkuY29zdC52MS5TZXR1cFBheWVyQWNjb3VudEJpbGxpbmdUcmFuc2ZlclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLToBKiIoL3YxL3t2ZW5kb3J9L3BheWVycy97aWR9L2JpbGxpbmd0cmFuc2ZlchqNAZJBiQESOUNvc3QgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY29zdBpMChJTZXJ2aWNlIGRlZmluaXRpb24SNmh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL3RyZWUvbWFpbi9jb3N0L0L8AgoWY2xvdWQuYWxwaGF1cy5hcGkuY29zdEIJQ29zdFByb3RvWiNnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY29zdJJBsAISzgEKGkFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlIlIKGkFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlEjRodHRwczovL2FscGhhdXNsYWJzLmdpdGh1Yi5pby9ibHVlYXBpL2FwaXMvY29zdC5odG1sKlcKG0xpY2Vuc2U6IEFwYWNoZSBMaWNlbnNlIDIuMBI4aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvYmxvYi9tYWluL0xJQ0VOU0UyAzEuMHJdCiVNb3JlIGFib3V0IEFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlEjRodHRwczovL2FscGhhdXNsYWJzLmdpdGh1Yi5pby9ibHVlYXBpL2FwaXMvY29zdC5odG1sYgZwcm90bzM", [file_api_account, file_api_coverage, file_api_budget, file_api_forecast, file_api_utilization, file_api_aws_breakeven, file_api_aws_cost, file_api_aws_calculator, file_api_aws_recommendation, file_api_aws_reduction, file_api_gcp_cost, file_api_azure_cost, file_api_ripple_payer, file_api_ripple_v1_dashboard, file_api_wave_budget, file_api_costtag, file_protos_operation, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_empty, file_protoc_gen_openapiv2_options_annotations, file_google_protobuf_field_mask]);
52
+ fileDesc("ChJjb3N0L3YxL2Nvc3QucHJvdG8SD2JsdWVhcGkuY29zdC52MSJaChhMaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIjQKFkdldFBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJIsACChRQYXllckFjY291bnRFeHRlbmRlZBIoCgVwYXllchgBIAEoCzIZLmJsdWVhcGkuYXBpLnJpcHBsZS5QYXllchIOCgZ0YXJnZXQYAiABKAkSDwoHcm9sZUFybhgDIAEoCRISCgpleHRlcm5hbElkGAQgASgJEg8KB3N0YWNrSWQYBSABKAkSEwoLc3RhY2tSZWdpb24YBiABKAkSEwoLdGVtcGxhdGVVcmwYByABKAkSDgoGc3RhdHVzGAggASgJEhMKC2xhc3RVcGRhdGVkGAkgASgJEhIKCmJ1Y2tldE5hbWUYCiABKAkSDgoGcHJlZml4GAsgASgJEhIKCnJlcG9ydE5hbWUYDCABKAkSIAoYZGVmYXVsdENvc3RBY2Nlc3NSb2xlQXJuGA0gASgJEg8KB2N1clR5cGUYDiABKAkiUAojR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEg0KBW1vbnRoGAMgASgJIlUKJEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnlSZXNwb25zZRIKCgJpZBgBIAEoCRINCgVtb250aBgCIAEoCRISCgp0aW1lc3RhbXBzGAMgAygJIjwKHkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiVAofR2V0UGF5ZXJQcm9mb3JtYVJlcG9ydHNSZXNwb25zZRIxCgdyZXBvcnRzGAEgAygLMiAuYmx1ZWFwaS5jb3N0LnYxLlByb2Zvcm1hUmVwb3J0cyKbAQoPUHJvZm9ybWFSZXBvcnRzEgoKAmlkGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEgoKYnVja2V0TmFtZRgEIAEoCRIOCgZwcmVmaXgYBSABKAkSEgoKcmVwb3J0TmFtZRgGIAEoCRIPCgdyb2xlQXJuGAcgASgJIogBCiNDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhIKCmJ1Y2tldE5hbWUYAyABKAkSDgoGcHJlZml4GAQgASgJEhIKCnJlcG9ydE5hbWUYBSABKAkSDwoHcm9sZUFybhgGIAEoCSJ1ChlDcmVhdGVQYXllckFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJICgphd3NPcHRpb25zGAIgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZVBheWVyQWNjb3VudFJlcXVlc3RBd3NPcHRpb25zIjcKGURlbGV0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJImYKE0xpc3RBY2NvdW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSLgoKZmllbGRfbWFzaxgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siXwoRR2V0QWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIj0KHkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJIloKHkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucxIbChNtYW5hZ2VtZW50QWNjb3VudElkGAEgASgJEhsKE21hbmFnZW1lbnRCaWxsaW5nSWQYAiABKAki2gEKFENyZWF0ZUFjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJEg4KBnBhcmVudBgEIAEoCRJDCgphd3NPcHRpb25zGAUgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0QXdzT3B0aW9ucxJDCgpnY3BPcHRpb25zGAYgASgLMi8uYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUFjY291bnRSZXF1ZXN0R2NwT3B0aW9ucyJAChRVcGRhdGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCSIyChREZWxldGVBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiYgoPTGlzdFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJEi4KCmZpZWxkX21hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIkUKJExpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAki0gEKJUxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2USVQoDYXdzGAEgASgLMkguYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UuQXdzUnVubmluZ0FjY291bnQaUgoRQXdzUnVubmluZ0FjY291bnQSDQoFbW9udGgYASABKAkSDwoHYWNjb3VudBgCIAEoCRIMCgRkYXRlGAMgASgJEg8KB3N0YXJ0ZWQYBCABKAkiLAoaR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIk0KG0dldENhbGN1bGF0b3JDb25maWdSZXNwb25zZRIuCgNhd3MYASABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQ2FsY3VsYXRvckNvbmZpZyKpBgogQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSEQoJYWNjb3VudElkGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSDwoHcGF5ZXJJZBgDIAEoCRJPCgpxdWFsaWZpZXJzGAQgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zLlF1YWxpZmllchJMCghtb2RpZmllchgFIAEoCzI6LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllchINCgVhZnRlchgGIAEoCRIUCgxjcmVhdGVOZXdSb3cYByABKAgaigEKCVF1YWxpZmllchJRCgNhbmQYASADKAsyRC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa/gIKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSawoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJOLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXdzT3B0aW9ucy5Nb2RpZmllci5EZXNjcmlwdGlvbk1vZGlmaWVyGvMBChNEZXNjcmlwdGlvbk1vZGlmaWVyEg4KBnByZWZpeBgBIAEoCRIOCgZzdWZmaXgYAiABKAkSDwoHcmVwbGFjZRgDIAEoCRJ2CgxyZXBsYWNlTWF0Y2gYBCADKAsyYC5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMuTW9kaWZpZXIuRGVzY3JpcHRpb25Nb2RpZmllci5SZXBsYWNlTWF0Y2hFbnRyeRozChFSZXBsYWNlTWF0Y2hFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIp8FCiJDYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zEg8KB2dyb3VwSWQYASABKAkSDwoHcGF5ZXJJZBgCIAEoCRISCgpjdXN0b21lcklkGAMgASgJEhYKDnN1YnNjcmlwdGlvbklkGAQgASgJEhUKDWVudGl0bGVtZW50SWQYBSABKAkSUQoKcXVhbGlmaWVycxgGIAMoCzI9LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLlF1YWxpZmllchJOCghtb2RpZmllchgHIAEoCzI8LmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyEg0KBWFmdGVyGAggASgJGowBCglRdWFsaWZpZXISUwoDYW5kGAEgAygLMkYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMuUXVhbGlmaWVyLkFuZEVudHJ5GioKCEFuZEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEa0gEKCE1vZGlmaWVyEg8KB2Zvcm11bGEYASABKAkSbQoTZGVzY3JpcHRpb25Nb2RpZmllchgCIAEoCzJQLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zLk1vZGlmaWVyLkRlc2NyaXB0aW9uTW9kaWZpZXIaRgoTRGVzY3JpcHRpb25Nb2RpZmllchIOCgZwcmVmaXgYASABKAkSDgoGc3VmZml4GAIgASgJEg8KB3JlcGxhY2UYAyABKAki3gEKFkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISCgoCaWQYASABKAkSEgoKY3JlYXRlVGltZRgCIAEoCRISCgp1cGRhdGVUaW1lGAMgASgJEkUKCmF3c09wdGlvbnMYBCABKAsyMS5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllckF3c09wdGlvbnMSSQoMYXp1cmVPcHRpb25zGAUgASgLMjMuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBenVyZU9wdGlvbnMiNAoiTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkixwEKI0NyZWF0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRJFCgphd3NPcHRpb25zGAIgASgLMjEuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXJBd3NPcHRpb25zEkkKDGF6dXJlT3B0aW9ucxgDIAEoCzIzLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdG9yQ29zdE1vZGlmaWVyQXp1cmVPcHRpb25zIpQBCiRDcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2USNAoDYXdzGAEgAygLMicuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0b3JDb3N0TW9kaWZpZXISNgoFYXp1cmUYAiADKAsyJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciJBCiNEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiNgoVSW1wb3J0Q3VyRmlsZXNSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEg4KBmZpbHRlchgCIAEoCSJ6CghDb3N0SXRlbRIiCgNhd3MYASABKAsyFS5ibHVlYXBpLmFwaS5hd3MuQ29zdBIiCgNnY3AYAiABKAsyFS5ibHVlYXBpLmFwaS5nY3AuQ29zdBImCgVhenVyZRgDIAEoCzIXLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3QiWAofQ2FsY3VsYXRlQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxINCgVmb3JjZRgBIAEoCBIUCgxhY2NvdW50c09ubHkYAiABKAgSEAoIdGFnc09ubHkYAyABKAgijQEKFUNhbGN1bGF0ZUNvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRINCgVtb250aBgDIAEoCRJECgphd3NPcHRpb25zGAQgASgLMjAuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdEF3c09wdGlvbnMiUwoeTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIMCgRhc09mGAIgASgJEhMKC2V4Y2x1ZGVEb25lGAMgASgIIksKIkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5QXdzUmVzcG9uc2USJQoKb3BlcmF0aW9ucxgBIAMoCzIRLnByb3Rvcy5PcGVyYXRpb24iYwofTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXNwb25zZRJACgNhd3MYASABKAsyMy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlBd3NSZXNwb25zZSK9AQoUQ2FsY3VsYXRpb25zU2NoZWR1bGUSCgoCaWQYASABKAkSEAoIc2NoZWR1bGUYAiABKAkSFQoNc2NoZWR1bGVNYWNybxgIIAEoCRITCgt0YXJnZXRNb250aBgJIAEoCRIPCgduZXh0UnVuGAMgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYBCABKAkSDQoFZm9yY2UYBSABKAgSDgoGZHJ5UnVuGAYgASgIEg4KBnN0YXR1cxgHIAEoCSIyCiBMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiXQohTGlzdENhbGN1bGF0aW9uc1NjaGVkdWxlc1Jlc3BvbnNlEjgKCXNjaGVkdWxlcxgBIAMoCzIlLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvbnNTY2hlZHVsZSKtAQohQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghzY2hlZHVsZRgCIAEoCRIVCg1zY2hlZHVsZU1hY3JvGAYgASgJEhMKC3RhcmdldE1vbnRoGAcgASgJEhsKE25vdGlmaWNhdGlvbkNoYW5uZWwYAyABKAkSDQoFZm9yY2UYBCABKAgSDgoGZHJ5UnVuGAUgASgIIj8KIURlbGV0ZUNhbGN1bGF0aW9uc1NjaGVkdWxlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiggMKGVJlYWRDb3N0QXR0cmlidXRlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkkKCmF3c09wdGlvbnMYBiABKAsyNS5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RBdHRyaWJ1dGVzUmVxdWVzdC5Bd3NPcHRpb25zEk0KDGF6dXJlT3B0aW9ucxgHIAEoCzI3LmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0LkF6dXJlT3B0aW9ucxogCgpBd3NPcHRpb25zEhIKCmRpbWVuc2lvbnMYASABKAkaUQoMQXp1cmVPcHRpb25zEhIKCmN1c3RvbWVySWQYASABKAkSFgoOc3Vic2NyaXB0aW9uSWQYAiABKAkSFQoNZW50aXRsZW1lbnRJZBgDIAEoCSJxChFDb3N0QXR0cmlidXRlSXRlbRIrCgNhd3MYASABKAsyHi5ibHVlYXBpLmFwaS5hd3MuQ29zdEF0dHJpYnV0ZRIvCgVhenVyZRgCIAEoCzIgLmJsdWVhcGkuYXBpLmF6dXJlLkNvc3RBdHRyaWJ1dGUibwoYR2V0Q29zdEF0dHJpYnV0ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIPCgdncm91cElkGAMgASgJEhEKCWFjY291bnRJZBgEIAEoCRIQCghjYXRlZ29yeRgFIAEoCSJKChlHZXRDb3N0QXR0cmlidXRlc1Jlc3BvbnNlEi0KBWl0ZW1zGAEgAygLMh4uYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGUiPwoNQ29zdEF0dHJpYnV0ZRIOCgZ2ZW5kb3IYASABKAkSEAoIY2F0ZWdvcnkYAiABKAkSDAoEZGF0YRgDIAMoCSKuAQohUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzElYKCmFuZEZpbHRlcnMYASADKAsyQi5ibHVlYXBpLmNvc3QudjEuUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnNGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxBAoaUmVhZENvc3RzUmVxdWVzdEF3c09wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYCCABKAgSFQoNZ3JvdXBCeVRhZ0tleRgMIAEoCRJDCgdmaWx0ZXJzGAMgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJKCgp0YWdGaWx0ZXJzGAkgAygLMjYuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBCABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAUgASgIEhIKCnRvQ3VycmVuY3kYBiABKAkSEwoLZm9yY2VMYXRlc3QYByABKAgSDwoHbm9DYWNoZRgKIAEoCBIaChJpbmNsdWRlQWRqdXN0bWVudHMYCyABKAgamwEKClRhZ0ZpbHRlcnMSWgoKYW5kRmlsdGVycxgBIAMoCzJGLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKxAgoQUmVhZENvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSEQoJc3RhcnRUaW1lGAQgASgJEg8KB2VuZFRpbWUYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucxI/CgpnY3BPcHRpb25zGAcgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zEkMKDGF6dXJlT3B0aW9ucxgIIAEoCzItLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXp1cmVPcHRpb25zIjYKIFJlYWRBZGp1c3RtZW50c1JlcXVlc3RBd3NPcHRpb25zEhIKCnRvQ3VycmVuY3kYASABKAkitwEKFlJlYWRBZGp1c3RtZW50c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhEKCXN0YXJ0VGltZRgEIAEoCRIPCgdlbmRUaW1lGAUgASgJEkUKCmF3c09wdGlvbnMYBiABKAsyMS5ibHVlYXBpLmNvc3QudjEuUmVhZEFkanVzdG1lbnRzUmVxdWVzdEF3c09wdGlvbnMijwQKHVJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zEg0KBXRhZ0lkGAEgASgJEhYKDmdyb3VwQnlDb2x1bW5zGAIgASgJEhQKDGdyb3VwQnlNb250aBgDIAEoCBJDCgdmaWx0ZXJzGAQgAygLMjIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zRmlsdGVycxJNCgp0YWdGaWx0ZXJzGAUgAygLMjkuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zLlRhZ0ZpbHRlcnMSEwoLaW5jbHVkZVRhZ3MYBiABKAgSHQoVaW5jbHVkZUNvc3RDYXRlZ29yaWVzGAcgASgIEhIKCnRvQ3VycmVuY3kYCCABKAkSEwoLZm9yY2VMYXRlc3QYCSABKAgSDwoHbm9DYWNoZRgKIAEoCBIOCgZ0YWdJZHMYCyADKAkangEKClRhZ0ZpbHRlcnMSXQoKYW5kRmlsdGVycxgBIAMoCzJJLmJsdWVhcGkuY29zdC52MS5SZWFkVGFnQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucy5UYWdGaWx0ZXJzLkFuZEZpbHRlcnNFbnRyeRoxCg9BbmRGaWx0ZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK/AQoTUmVhZFRhZ0Nvc3RzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYAiABKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFQoNZ3JvdXBCeU1vbnRocxgFIAEoCBJCCgphd3NPcHRpb25zGAYgASgLMi4uYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3RBd3NPcHRpb25zIn4KFlJlYWROb25UYWdDb3N0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCXN0YXJ0VGltZRgDIAEoCRIPCgdlbmRUaW1lGAQgASgJEhUKDWdyb3VwQnlNb250aHMYBSABKAgihAEKE0dldEZvcmVjYXN0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAIgASgJEhEKCWZyZXF1ZW5jeRgDIAEoCRINCgVsZXZlbBgEIAEoCRIQCghmcm9tRGF0ZRgFIAEoCRIOCgZ0b0RhdGUYBiABKAkiRwoUR2V0Rm9yZWNhc3RzUmVzcG9uc2USLwoEZGF0YRgBIAEoCzIhLmJsdWVhcGkuYXBpLkJpbGxpbmdHcm91cEZvcmVjYXN0ImwKHUdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkibwoeR2V0TW9udGhseUNvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEi4KBGRhdGEYAiADKAsyIC5ibHVlYXBpLmFwaS5Nb250aGx5Q29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgDIAEoCSJdCiJHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVsZXZlbBgCIAEoCRIKCgJpZBgDIAEoCRIMCgRkYXRlGAQgASgJInkKI0dldE1vbnRoT25Nb250aENvc3RGb3JlY2FzdFJlc3BvbnNlEgoKAmlkGAEgASgJEjMKBGRhdGEYAiADKAsyJS5ibHVlYXBpLmFwaS5Nb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSEQoJdGltZXN0YW1wGAMgASgJIlwKIUdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEZGF0ZRgEIAEoCSKHAQoiR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXNwb25zZRIKCgJpZBgBIAEoCRIOCgZidWRnZXQYAiABKAESMgoEZGF0YRgDIAMoCzIkLmJsdWVhcGkuYXBpLk1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0EhEKCXRpbWVzdGFtcBgEIAEoCSJSChdHZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSDAoEeWVhchgEIAEoCSI9ChhHZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2USIQoEZGF0YRgBIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCJqChpDcmVhdGVBY2NvdW50QnVkZ2V0UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbGV2ZWwYAiABKAkSCgoCaWQYAyABKAkSIQoEZGF0YRgEIAEoCzITLmJsdWVhcGkuYXBpLkJ1ZGdldCIvChtDcmVhdGVBY2NvdW50QnVkZ2V0UmVzcG9uc2USEAoIYnVkZ2V0SWQYASABKAkiYQoaVXBkYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJEiEKBGRhdGEYAyABKAsyEy5ibHVlYXBpLmFwaS5CdWRnZXQiPgoaRGVsZXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGJ1ZGdldElkGAIgASgJIosCCiNHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0QXdzT3B0aW9ucxIaChJyZWNvbW1lbmRhdGlvblR5cGUYASABKAkSDAoEdHlwZRgCIAEoCRISCgpyaVNlcnZpY2VzGAMgAygJEhIKCnNwU2VydmljZXMYBCADKAkSHgoWcHVyY2hhc2VFQzJTYXZpbmdzUGxhbhgFIAEoCBIaChJlYzJTcFByb2R1Y3RGYW1pbHkYBiABKAkSDAoEdGVybRgHIAEoCRIVCg1vZmZlcmluZ0NsYXNzGAggASgJEhUKDXBheW1lbnRPcHRpb24YCSABKAkSGgoSY292ZXJhZ2VQZXJjZW50YWdlGAogASgBIqsBChlHZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIQCghhY2NvdW50cxgDIAMoCRITCgtjb3N0R3JvdXBJZBgEIAEoCRJICgphd3NPcHRpb25zGAUgASgLMjQuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1JlcXVlc3RBd3NPcHRpb25zImwKGkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj8KEmF3c1JlY29tbWVuZGF0aW9ucxgCIAEoCzIjLmJsdWVhcGkuYXBpLmF3cy5Bd3NSZWNvbW1lbmRhdGlvbnMiggIKF0dldENvc3RSZWR1Y3Rpb25SZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIYChByZWR1Y3Rpb25EaXNwbGF5GAMgASgJEhYKDmluY2x1ZGVEZXRhaWxzGAQgASgIEhAKCGZyb21EYXRlGAUgASgJEg4KBnRvRGF0ZRgGIAEoCRIPCgdwYXllcklkGAcgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAggASgJEg8KB2dyb3VwSWQYCSABKAkSEwoLY29zdEdyb3VwSWQYCiABKAkSEAoIYWNjb3VudHMYCyADKAkSEAoIc2VydmljZXMYDCADKAkiaAoYR2V0Q29zdFJlZHVjdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEj0KEWF3c0Nvc3RSZWR1Y3Rpb25zGAIgASgLMiIuYmx1ZWFwaS5hcGkuYXdzLkF3c0Nvc3RSZWR1Y3Rpb25zIlQKFEdldEV4cG9ydFJJU1BSZXF1ZXN0EgwKBHR5cGUYASABKAkSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESFgoOaW5jbHVkZUV4cGlyZWQYAyABKAgiLQoVR2V0RXhwb3J0UklTUFJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSKaAQoTRXhwb3J0UmVwb3J0UmVxdWVzdBINCgVtb250aBgCIAEoCRIOCgZ2ZW5kb3IYASABKAkSJgoYbm90aWZpY2F0aW9uX2NoYW5uZWxfaWRzGAQgAygJQgTiQQEBEjwKC2F3c19vcHRpb25zGAogASgLMicuYmx1ZWFwaS5jb3N0LnYxLkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMi0QIKFkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMSFwoPaW5jbHVkZV9leHBpcmVkGAEgASgIEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhUKB3F1ZXJpZXMYAyADKAlCBOJBAQISFQoHY29sdW1ucxgEIAMoCUIE4kEBARJVChBjb2x1bW5zX2J5X3F1ZXJ5GAUgAygLMjsuYmx1ZWFwaS5jb3N0LnYxLkF3c0V4cG9ydFJlcG9ydE9wdGlvbnMuQ29sdW1uc0J5UXVlcnlFbnRyeRoZCgdDb2x1bW5zEg4KBnZhbHVlcxgBIAMoCRpmChNDb2x1bW5zQnlRdWVyeUVudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLmJsdWVhcGkuY29zdC52MS5Bd3NFeHBvcnRSZXBvcnRPcHRpb25zLkNvbHVtbnM6AjgBIkEKGkdldEludm9pY2VSZWFkaW5lc3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRITCgVtb250aBgCIAEoCUIE4kEBAiI8ChtHZXRJbnZvaWNlUmVhZGluZXNzUmVzcG9uc2USDQoFcmVhZHkYASABKAgSDgoGcmVhc29uGAIgASgJIrgBChVHZXRVdGlsaXphdGlvblJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEgwKBHR5cGUYAyABKAkSEAoIZnJvbURhdGUYBCABKAkSDgoGdG9EYXRlGAUgASgJEg8KB3BheWVySWQYBiABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYByABKAkSDwoHZ3JvdXBJZBgIIAEoCRITCgtjb3N0R3JvdXBJZBgJIAEoCSJeChZHZXRVdGlsaXphdGlvblJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjUKD3V0aWxpemF0aW9uRGF0YRgCIAMoCzIcLmJsdWVhcGkuYXBpLlV0aWxpemF0aW9uRGF0YSL0AQoZR2V0Q292ZXJhZ2VPcHRpb25zUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFb3JnSWQYAiABKAkSDgoGcGVyaW9kGAMgASgJEhAKCGZyb21EYXRlGAQgASgJEg4KBnRvRGF0ZRgFIAEoCRIPCgdwYXllcklkGAYgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAcgASgJEg8KB2dyb3VwSWQYCCABKAkSEwoLY29zdEdyb3VwSWQYCSABKAkSEAoIYWNjb3VudHMYCiADKAkSEAoIc2VydmljZXMYCyADKAkSEAoIY3VycmVuY3kYDCABKAkiWgoaR2V0Q292ZXJhZ2VPcHRpb25zUmVzcG9uc2USDQoFb3JnSWQYASABKAkSLQoLb3B0aW9uc0RhdGEYAiADKAsyGC5ibHVlYXBpLmFwaS5PcHRpb25zRGF0YSLjAQoaR2V0Q292ZXJhZ2VPbmRlbWFuZFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW9yZ0lkGAIgASgJEg4KBnBlcmlvZBgDIAEoCRIQCghmcm9tRGF0ZRgEIAEoCRIOCgZ0b0RhdGUYBSABKAkSDwoHcGF5ZXJJZBgGIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgHIAEoCRIPCgdncm91cElkGAggASgJEhMKC2Nvc3RHcm91cElkGAkgASgJEhAKCGFjY291bnRzGAogAygJEhAKCHNlcnZpY2VzGAsgAygJIl0KG0dldENvdmVyYWdlT25kZW1hbmRSZXNwb25zZRINCgVvcmdJZBgBIAEoCRIvCgxvbmRlbWFuZERhdGEYAiADKAsyGS5ibHVlYXBpLmFwaS5PbmRlbWFuZERhdGEiVAoYR2V0QnJlYWtldmVuUG9pbnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVvcmdJZBgCIAEoCRIMCgR0eXBlGAMgASgJEgsKA2FybhgEIAEoCSJnChlHZXRCcmVha2V2ZW5Qb2ludFJlc3BvbnNlEg0KBW9yZ0lkGAEgASgJEjsKEGF3c0Nvc3RCcmVha2V2ZW4YAiABKAsyIS5ibHVlYXBpLmFwaS5hd3MuQXdzQ29zdEJyZWFrZXZlbiIoChZMaXN0Q29zdEZpbHRlcnNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJQChdMaXN0Q29zdEZpbHRlcnNSZXNwb25zZRI1Cgtjb3N0RmlsdGVycxgBIAMoCzIgLmJsdWVhcGkuY29zdC52MS5MaXN0Q29zdEZpbHRlcnMirAEKD0xpc3RDb3N0RmlsdGVycxIQCghmaWx0ZXJJZBgBIAEoCRISCgpmaWx0ZXJOYW1lGAIgASgJEg4KBnZlbmRvchgDIAEoCRIPCgdncm91cElkGAQgASgJEhEKCWFjY291bnRJZBgFIAEoCRI/Cgphd3NPcHRpb25zGAYgASgLMisuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RBd3NPcHRpb25zIqMBChhDcmVhdGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhIKCmZpbHRlck5hbWUYAiABKAkSDwoHZ3JvdXBJZBgDIAEoCRIRCglhY2NvdW50SWQYBCABKAkSPwoKYXdzT3B0aW9ucxgFIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyItChlDcmVhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlEhAKCGZpbHRlcklkGAEgASgJIrUBChhVcGRhdGVDb3N0RmlsdGVyc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJEhIKCmZpbHRlck5hbWUYAyABKAkSDwoHZ3JvdXBJZBgEIAEoCRIRCglhY2NvdW50SWQYBSABKAkSPwoKYXdzT3B0aW9ucxgGIAEoCzIrLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0QXdzT3B0aW9ucyItChlVcGRhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlEhAKCGZpbHRlcklkGAEgASgJIjwKGERlbGV0ZUNvc3RGaWx0ZXJzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEAoIZmlsdGVySWQYAiABKAkixwEKHEV4cG9ydENvc3RGaWx0ZXJzRmlsZVJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhAKCGZpbHRlcklkGAIgASgJEh4KFm5vdGlmaWNhdGlvbkNoYW5uZWxJZHMYCCADKAkSEQoJc3RhcnRUaW1lGAMgASgJEg8KB2VuZFRpbWUYBCABKAkSFAoMZ3JvdXBCeU1vbnRoGAUgASgIEhYKDmdyb3VwQnlDb2x1bW5zGAYgASgJEhMKC2luY2x1ZGVUYWdzGAcgASgIIiwKHUV4cG9ydENvc3RGaWx0ZXJzRmlsZVJlc3BvbnNlEgsKA3VybBgBIAEoCSKSAgoaUmVhZENvc3RzUmVxdWVzdEdjcE9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEhUKDWdyb3VwQWNjb3VudHMYAyABKAgSQwoHZmlsdGVycxgEIAMoCzIyLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0R2NwT3B0aW9uc0ZpbHRlcnMSGwoTaW5jbHVkZUludm9pY2VNb250aBgGIAEoCBIWCg5pbmNsdWRlQ3JlZGl0cxgHIAEoCBIQCghyb3VuZGluZxgIIAEoCBIPCgdub0NhY2hlGAUgASgIEhIKCnRvQ3VycmVuY3kYCSABKAkirgEKIVJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zRmlsdGVycxJWCgphbmRGaWx0ZXJzGAEgAygLMkIuYmx1ZWFwaS5jb3N0LnYxLlJlYWRDb3N0c1JlcXVlc3RHY3BPcHRpb25zRmlsdGVycy5BbmRGaWx0ZXJzRW50cnkaMQoPQW5kRmlsdGVyc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiOwodR2V0QWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJInIKIENyZWF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRIyCgtidWRnZXRBbGVydBgDIAEoCzIdLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQicgogVXBkYXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEjIKC2J1ZGdldEFsZXJ0GAMgASgLMh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCI+CiBEZWxldGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkiiAEKHFJlYWRDb3N0c1JlcXVlc3RBenVyZU9wdGlvbnMSFgoOZ3JvdXBCeUNvbHVtbnMYASABKAkSFAoMZ3JvdXBCeU1vbnRoGAIgASgIEg8KB25vQ2FjaGUYAyABKAgSEgoKdG9DdXJyZW5jeRgEIAEoCRIVCg1yZXNvdXJjZUdyb3VwGAUgASgJIqgDCgxCdWRnZXRBbGVydHMSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEiYKCGFjY291bnRzGAMgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudBJACgxub3RpZmljYXRpb24YBCABKAsyKi5ibHVlYXBpLmFwaS5CdWRnZXRBbGVydE5vdGlmaWNhdGlvbkRldGFpbBIsCgVkYWlseRgFIAEoCzIdLmJsdWVhcGkuYXBpLkRhaWx5QnVkZ2V0QWxlcnQSPAoJZGFpbHlSYXRlGAcgASgLMikuYmx1ZWFwaS5hcGkuRGFpbHlSYXRlSW5jcmVhc2VCdWRnZXRBbGVydBIwCgdtb250aGx5GAYgASgLMh8uYmx1ZWFwaS5hcGkuTW9udGhseUJ1ZGdldEFsZXJ0EjoKDGN1c3RvbVBlcmlvZBgIIAEoCzIkLmJsdWVhcGkuYXBpLkN1c3RvbVBlcmlvZEJ1ZGdldEFsZXJ0EjgKC2N1c3RvbU1vbnRoGAkgASgLMiMuYmx1ZWFwaS5hcGkuQ3VzdG9tTW9udGhCdWRnZXRBbGVydCJJChdSZWFkQnVkZ2V0QWxlcnRzUmVxdWVzdBIuCgpmaWVsZF9tYXNrGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayIkChZHZXRCdWRnZXRBbGVydHNSZXF1ZXN0EgoKAmlkGAEgASgJIo0DChlDcmVhdGVCdWRnZXRBbGVydHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIQCghhY2NvdW50cxgCIAMoCRI6Cgxub3RpZmljYXRpb24YAyABKAsyJC5ibHVlYXBpLmFwaS5CdWRnZXRBbGVydE5vdGlmaWNhdGlvbhIsCgVkYWlseRgEIAEoCzIdLmJsdWVhcGkuYXBpLkRhaWx5QnVkZ2V0QWxlcnQSPAoJZGFpbHlSYXRlGAYgASgLMikuYmx1ZWFwaS5hcGkuRGFpbHlSYXRlSW5jcmVhc2VCdWRnZXRBbGVydBIwCgdtb250aGx5GAUgASgLMh8uYmx1ZWFwaS5hcGkuTW9udGhseUJ1ZGdldEFsZXJ0EjoKDGN1c3RvbVBlcmlvZBgHIAEoCzIkLmJsdWVhcGkuYXBpLkN1c3RvbVBlcmlvZEJ1ZGdldEFsZXJ0EjgKC2N1c3RvbU1vbnRoGAggASgLMiMuYmx1ZWFwaS5hcGkuQ3VzdG9tTW9udGhCdWRnZXRBbGVydCKZAwoZVXBkYXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIYWNjb3VudHMYAyADKAkSOgoMbm90aWZpY2F0aW9uGAQgASgLMiQuYmx1ZWFwaS5hcGkuQnVkZ2V0QWxlcnROb3RpZmljYXRpb24SLAoFZGFpbHkYBSABKAsyHS5ibHVlYXBpLmFwaS5EYWlseUJ1ZGdldEFsZXJ0EjwKCWRhaWx5UmF0ZRgHIAEoCzIpLmJsdWVhcGkuYXBpLkRhaWx5UmF0ZUluY3JlYXNlQnVkZ2V0QWxlcnQSMAoHbW9udGhseRgGIAEoCzIfLmJsdWVhcGkuYXBpLk1vbnRobHlCdWRnZXRBbGVydBI6CgxjdXN0b21QZXJpb2QYCCABKAsyJC5ibHVlYXBpLmFwaS5DdXN0b21QZXJpb2RCdWRnZXRBbGVydBI4CgtjdXN0b21Nb250aBgJIAEoCzIjLmJsdWVhcGkuYXBpLkN1c3RvbU1vbnRoQnVkZ2V0QWxlcnQiJwoZRGVsZXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBIKCgJpZBgBIAEoCSI6ChRDaGVja0FjY291bnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEgoKYWNjb3VudElkcxgCIAMoCSKKAQoVQ2hlY2tBY2NvdW50c1Jlc3BvbnNlEkIKBmV4aXN0cxgBIAMoCzIyLmJsdWVhcGkuY29zdC52MS5DaGVja0FjY291bnRzUmVzcG9uc2UuRXhpc3RzRW50cnkaLQoLRXhpc3RzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgIOgI4ASI2ChVSZWFkSW52b2ljZUlkc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJIiQKFlJlYWRJbnZvaWNlSWRzUmVzcG9uc2USCgoCaWQYASABKAkisAEKC1BlcmlvZFJhbmdlEi8KBHVuaXQYASABKA4yIS5ibHVlYXBpLmNvc3QudjEuUGVyaW9kUmFuZ2UuVW5pdBIMCgR5ZWFyGAIgASgNEhAKCHN0YXJ0aW5nGAMgASgNEhAKCGR1cmF0aW9uGAQgASgNIj4KBFVuaXQSFAoQVU5JVF9VTlNQRUNJRklFRBAAEgkKBU1PTlRIEAESCwoHUVVBUlRFUhACEggKBFlFQVIQAyKgAQobUmVhZEludm9pY2VPdmVydmlld3NSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhYKDnVzZVBlcmlvZFJhbmdlGAQgASgIEjEKC3BlcmlvZFJhbmdlGAUgASgLMhwuYmx1ZWFwaS5jb3N0LnYxLlBlcmlvZFJhbmdlEhIKCnRvQ3VycmVuY3kYAyABKAkiUQoXUmVhZEludm9pY2VDb3N0c1JlcXVlc3QSEQoJc3RhcnRUaW1lGAEgASgJEg8KB2VuZFRpbWUYAiABKAkSEgoKdG9DdXJyZW5jeRgDIAEoCSJlChxSZWFkSW52b2ljZUdyb3VwQ29zdHNSZXF1ZXN0EhEKCXN0YXJ0VGltZRgBIAEoCRIPCgdlbmRUaW1lGAIgASgJEhIKCnRvQ3VycmVuY3kYAyABKAkSDQoFbGltaXQYBCABKAUiNQojUmVhZEFjY291bnRPcmlnaW5hbFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJIlgKG1JlZ2lzdGVyUGF5ZXJBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIPCgdjdXJUeXBlGAQgASgJIlYKGVVwZGF0ZVBheWVyQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgoKAmlkGAIgASgJEgwKBG5hbWUYAyABKAkSDwoHY3VyVHlwZRgEIAEoCSJECiNMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkilQEKF0NhbGN1bGF0aW9uUHJlcmVxdWlzaXRlEhIKCmludm9pY2VfaWQYASABKAkSEAoIcGF5ZXJfaWQYAiABKAkSFQoNZXhjaGFuZ2VfcmF0ZRgDIAEoARIdChV1bmJsZW5kZWRfY29zdF9pbl9jdXIYBCABKAESDAoEbmFtZRgFIAEoCRIQCghjdXJfdHlwZRgGIAEoCSJnCiRMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzUmVzcG9uc2USPwoNcHJlcmVxdWlzaXRlcxgBIAMoCzIoLmJsdWVhcGkuY29zdC52MS5DYWxjdWxhdGlvblByZXJlcXVpc2l0ZSKwAQonU2V0dXBQYXllckFjY291bnRCaWxsaW5nVHJhbnNmZXJSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIKCgJpZBgCIAEoCRINCgVtb250aBgDIAEoCRIRCglzM19idWNrZXQYBCABKAkSEwoLcmVwb3J0X25hbWUYBSABKAkSEAoIcm9sZV9hcm4YBiABKAkSEAoIY3VyX3R5cGUYByABKAkSDgoGcHJlZml4GAggASgJMv9UCgRDb3N0EnMKEUxpc3RQYXllckFjY291bnRzEikuYmx1ZWFwaS5jb3N0LnYxLkxpc3RQYXllckFjY291bnRzUmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiG4LT5JMCFRITL3YxL3t2ZW5kb3J9L3BheWVyczABEncKD0dldFBheWVyQWNjb3VudBInLmJsdWVhcGkuY29zdC52MS5HZXRQYXllckFjY291bnRSZXF1ZXN0GhkuYmx1ZWFwaS5hcGkucmlwcGxlLlBheWVyIiCC0+STAhoSGC92MS97dmVuZG9yfS9wYXllcnMve2lkfRKUAQoZTGlzdFBheWVyQWNjb3VudHNFeHRlbmRlZBIpLmJsdWVhcGkuY29zdC52MS5MaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuUGF5ZXJBY2NvdW50RXh0ZW5kZWQiI4LT5JMCHRIbL3YxL3t2ZW5kb3J9L3BheWVyc2V4dGVuZGVkMAESkwEKF0dldFBheWVyQWNjb3VudEV4dGVuZGVkEicuYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyQWNjb3VudFJlcXVlc3QaJS5ibHVlYXBpLmNvc3QudjEuUGF5ZXJBY2NvdW50RXh0ZW5kZWQiKILT5JMCIhIgL3YxL3t2ZW5kb3J9L3BheWVyc2V4dGVuZGVkL3tpZH0SvQEKHEdldFBheWVyQWNjb3VudEltcG9ydEhpc3RvcnkSNC5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlcXVlc3QaNS5ibHVlYXBpLmNvc3QudjEuR2V0UGF5ZXJBY2NvdW50SW1wb3J0SGlzdG9yeVJlc3BvbnNlIi6C0+STAigSJi92MS97dmVuZG9yfS9wYXllcnMve2lkfS9pbXBvcnRoaXN0b3J5MAESpwEKF0dldFBheWVyUHJvZm9ybWFSZXBvcnRzEi8uYmx1ZWFwaS5jb3N0LnYxLkdldFBheWVyUHJvZm9ybWFSZXBvcnRzUmVxdWVzdBowLmJsdWVhcGkuY29zdC52MS5HZXRQYXllclByb2Zvcm1hUmVwb3J0c1Jlc3BvbnNlIimC0+STAiMSIS92MS97dmVuZG9yfS9wYXllcnMve2lkfS9wcm9mb3JtYRJ2ChJDcmVhdGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoULmJsdWVhcGkuYXBpLkFjY291bnQiHoLT5JMCGDoBKiITL3YxL3t2ZW5kb3J9L3BheWVycxKJAQoUUmVnaXN0ZXJQYXllckFjY291bnQSLC5ibHVlYXBpLmNvc3QudjEuUmVnaXN0ZXJQYXllckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS9wYXllcnMvYmFzaWNkZXRhaWxzEooBChJVcGRhdGVQYXllckFjY291bnQSKi5ibHVlYXBpLmNvc3QudjEuVXBkYXRlUGF5ZXJBY2NvdW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqOgEqGiUvdjEve3ZlbmRvcn0vcGF5ZXJzL2Jhc2ljZGV0YWlscy97aWR9EnoKEkRlbGV0ZVBheWVyQWNjb3VudBIqLmJsdWVhcGkuY29zdC52MS5EZWxldGVQYXllckFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiCC0+STAhoqGC92MS97dmVuZG9yfS9wYXllcnMve2lkfRKVAQoMTGlzdEFjY291bnRzEiQuYmx1ZWFwaS5jb3N0LnYxLkxpc3RBY2NvdW50c1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IkeC0+STAkFaKBImL3YxL3t2ZW5kb3J9L2FjY291bnRzL2dyb3Vwcy97Z3JvdXBJZH0SFS92MS97dmVuZG9yfS9hY2NvdW50czABEmoKCkdldEFjY291bnQSIi5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IiKC0+STAhwSGi92MS97dmVuZG9yfS9hY2NvdW50cy97aWR9Em4KDUNyZWF0ZUFjY291bnQSJS5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudFJlcXVlc3QaFC5ibHVlYXBpLmFwaS5BY2NvdW50IiCC0+STAho6ASoiFS92MS97dmVuZG9yfS9hY2NvdW50cxJzCg1VcGRhdGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuQWNjb3VudCIlgtPkkwIfOgEqGhovdjEve3ZlbmRvcn0vYWNjb3VudHMve2lkfRJyCg1EZWxldGVBY2NvdW50EiUuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUFjY291bnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi92MS97dmVuZG9yfS9hY2NvdW50cy97aWR9Ep8BChxSZWFkQWNjb3VudE9yaWdpbmFsUmVzb3VyY2VzEjQuYmx1ZWFwaS5jb3N0LnYxLlJlYWRBY2NvdW50T3JpZ2luYWxSZXNvdXJjZXNSZXF1ZXN0GiQuYmx1ZWFwaS5hcGkuQWNjb3VudE9yaWdpbmFsUmVzb3VyY2UiIYLT5JMCGzoBKiIWL3YxL3t2ZW5kb3J9L2FvcnM6cmVhZDABEoUBCghMaXN0VGFncxIgLmJsdWVhcGkuY29zdC52MS5MaXN0VGFnc1JlcXVlc3QaFC5ibHVlYXBpLmFwaS5Db3N0VGFnIj+C0+STAjlaJBIiL3YxL3t2ZW5kb3J9L3RhZ3MvZ3JvdXBzL3tncm91cElkfRIRL3YxL3t2ZW5kb3J9L3RhZ3MwARLBAQodTGlzdENhbGN1bGF0b3JSdW5uaW5nQWNjb3VudHMSNS5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0b3JSdW5uaW5nQWNjb3VudHNSZXF1ZXN0GjYuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yUnVubmluZ0FjY291bnRzUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvcnVubmluZzpyZWFkMAESmAEKE0dldENhbGN1bGF0b3JDb25maWcSKy5ibHVlYXBpLmNvc3QudjEuR2V0Q2FsY3VsYXRvckNvbmZpZ1JlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0Q2FsY3VsYXRvckNvbmZpZ1Jlc3BvbnNlIiaC0+STAiASHi92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZxKuAQobTGlzdENhbGN1bGF0b3JDb3N0TW9kaWZpZXJzEjMuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdG9yQ29zdE1vZGlmaWVyc1JlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuQ2FsY3VsYXRvckNvc3RNb2RpZmllciIvgtPkkwIpEicvdjEve3ZlbmRvcn0vY2FsY3VsYXRvci9jb25maWcvY29zdG1vZHMwARK/AQocQ3JlYXRlQ2FsY3VsYXRvckNvc3RNb2RpZmllchI0LmJsdWVhcGkuY29zdC52MS5DcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVxdWVzdBo1LmJsdWVhcGkuY29zdC52MS5DcmVhdGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyUmVzcG9uc2UiMoLT5JMCLDoBKiInL3YxL3t2ZW5kb3J9L2NhbGN1bGF0b3IvY29uZmlnL2Nvc3Rtb2RzEqIBChxEZWxldGVDYWxjdWxhdG9yQ29zdE1vZGlmaWVyEjQuYmx1ZWFwaS5jb3N0LnYxLkRlbGV0ZUNhbGN1bGF0b3JDb3N0TW9kaWZpZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjSC0+STAi4qLC92MS97dmVuZG9yfS9jYWxjdWxhdG9yL2NvbmZpZy9jb3N0bW9kcy97aWR9EmoKDkltcG9ydEN1ckZpbGVzEiYuYmx1ZWFwaS5jb3N0LnYxLkltcG9ydEN1ckZpbGVzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iHYLT5JMCFzoBKiISL3YxL2F3cy9jdXI6aW1wb3J0EnQKDkNhbGN1bGF0ZUNvc3RzEiYuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0ZUNvc3RzUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iJ4LT5JMCIToBKiIcL3YxL3t2ZW5kb3J9L2Nvc3RzOmNhbGN1bGF0ZRKnAQoXTGlzdENhbGN1bGF0aW9uc0hpc3RvcnkSLy5ibHVlYXBpLmNvc3QudjEuTGlzdENhbGN1bGF0aW9uc0hpc3RvcnlSZXF1ZXN0GjAuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNIaXN0b3J5UmVzcG9uc2UiKYLT5JMCIxIhL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9oaXN0b3J5Eq8BChlMaXN0Q2FsY3VsYXRpb25zU2NoZWR1bGVzEjEuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNTY2hlZHVsZXNSZXF1ZXN0GjIuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvbnNTY2hlZHVsZXNSZXNwb25zZSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vY2FsY3VsYXRpb25zL3NjaGVkdWxlcxKnAQoaQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGUSMi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ2FsY3VsYXRpb25zU2NoZWR1bGVSZXF1ZXN0GiUuYmx1ZWFwaS5jb3N0LnYxLkNhbGN1bGF0aW9uc1NjaGVkdWxlIi6C0+STAig6ASoiIy92MS97dmVuZG9yfS9jYWxjdWxhdGlvbnMvc2NoZWR1bGVzEpoBChpEZWxldGVDYWxjdWxhdGlvbnNTY2hlZHVsZRIyLmJsdWVhcGkuY29zdC52MS5EZWxldGVDYWxjdWxhdGlvbnNTY2hlZHVsZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKiooL3YxL3t2ZW5kb3J9L2NhbGN1bGF0aW9ucy9zY2hlZHVsZXMve2lkfRKGAQoPTGlzdENvc3RGaWx0ZXJzEicuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDb3N0RmlsdGVyc1JlcXVlc3QaKC5ibHVlYXBpLmNvc3QudjEuTGlzdENvc3RGaWx0ZXJzUmVzcG9uc2UiIILT5JMCGhIYL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzEo8BChFDcmVhdGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5DcmVhdGVDb3N0RmlsdGVyc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQ29zdEZpbHRlcnNSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMSmgEKEVVwZGF0ZUNvc3RGaWx0ZXJzEikuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUNvc3RGaWx0ZXJzUmVxdWVzdBoqLmJsdWVhcGkuY29zdC52MS5VcGRhdGVDb3N0RmlsdGVyc1Jlc3BvbnNlIi6C0+STAig6ASoaIy92MS97dmVuZG9yfS9jb3N0ZmlsdGVycy97ZmlsdGVySWR9EoMBChFEZWxldGVDb3N0RmlsdGVycxIpLmJsdWVhcGkuY29zdC52MS5EZWxldGVDb3N0RmlsdGVyc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiK4LT5JMCJSojL3YxL3t2ZW5kb3J9L2Nvc3RmaWx0ZXJzL3tmaWx0ZXJJZH0SkAEKFUV4cG9ydENvc3RGaWx0ZXJzRmlsZRItLmJsdWVhcGkuY29zdC52MS5FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiI1gtPkkwIvOgEqIiovdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfTpleHBvcnQStwEKGUV4cG9ydENvc3RGaWx0ZXJzRmlsZVN5bmMSLS5ibHVlYXBpLmNvc3QudjEuRXhwb3J0Q29zdEZpbHRlcnNGaWxlUmVxdWVzdBouLmJsdWVhcGkuY29zdC52MS5FeHBvcnRDb3N0RmlsdGVyc0ZpbGVSZXNwb25zZSI7gtPkkwI1OgEqIjAvdjEve3ZlbmRvcn0vY29zdGZpbHRlcnMve2ZpbHRlcklkfTpleHBvcnRkaXJlY3QSjgEKElJlYWRDb3N0QXR0cmlidXRlcxIqLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdEF0dHJpYnV0ZXNSZXF1ZXN0GiIuYmx1ZWFwaS5jb3N0LnYxLkNvc3RBdHRyaWJ1dGVJdGVtIiaC0+STAiA6ASoiGy92MS97dmVuZG9yfS9jb3N0YXR0cnM6cmVhZDABEooBChFHZXRDb3N0QXR0cmlidXRlcxIpLmJsdWVhcGkuY29zdC52MS5HZXRDb3N0QXR0cmlidXRlc1JlcXVlc3QaKi5ibHVlYXBpLmNvc3QudjEuR2V0Q29zdEF0dHJpYnV0ZXNSZXNwb25zZSIegtPkkwIYEhYvdjEve3ZlbmRvcn0vY29zdGF0dHJzEm8KCVJlYWRDb3N0cxIhLmJsdWVhcGkuY29zdC52MS5SZWFkQ29zdHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiKC0+STAhw6ASoiFy92MS97dmVuZG9yfS9jb3N0czpyZWFkMAESgQEKD1JlYWRBZGp1c3RtZW50cxInLmJsdWVhcGkuY29zdC52MS5SZWFkQWRqdXN0bWVudHNSZXF1ZXN0GhkuYmx1ZWFwaS5jb3N0LnYxLkNvc3RJdGVtIiiC0+STAiI6ASoiHS92MS97dmVuZG9yfS9hZGp1c3RtZW50czpyZWFkMAESeAoMUmVhZFRhZ0Nvc3RzEiQuYmx1ZWFwaS5jb3N0LnYxLlJlYWRUYWdDb3N0c1JlcXVlc3QaGS5ibHVlYXBpLmNvc3QudjEuQ29zdEl0ZW0iJYLT5JMCHzoBKiIaL3YxL3t2ZW5kb3J9L3RhZ2Nvc3RzOnJlYWQwARKBAQoPUmVhZE5vblRhZ0Nvc3RzEicuYmx1ZWFwaS5jb3N0LnYxLlJlYWROb25UYWdDb3N0c1JlcXVlc3QaGS5ibHVlYXBpLmNvc3QudjEuQ29zdEl0ZW0iKILT5JMCIjoBKiIdL3YxL3t2ZW5kb3J9L25vbnRhZ2Nvc3RzOnJlYWQwARJ7CgxHZXRGb3JlY2FzdHMSJC5ibHVlYXBpLmNvc3QudjEuR2V0Rm9yZWNhc3RzUmVxdWVzdBolLmJsdWVhcGkuY29zdC52MS5HZXRGb3JlY2FzdHNSZXNwb25zZSIegtPkkwIYEhYvdjEve3ZlbmRvcn0vZm9yZWNhc3RzEq4BChZHZXRNb250aGx5Q29zdEZvcmVjYXN0Ei4uYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXF1ZXN0Gi8uYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRobHlDb3N0Rm9yZWNhc3RSZXNwb25zZSIzgtPkkwItEisvdjEve3ZlbmRvcn0vZm9yZWNhc3RzL21vbnRobHkve2xldmVsfS97aWR9EsQBChtHZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3QSMy5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhPbk1vbnRoQ29zdEZvcmVjYXN0UmVxdWVzdBo0LmJsdWVhcGkuY29zdC52MS5HZXRNb250aE9uTW9udGhDb3N0Rm9yZWNhc3RSZXNwb25zZSI6gtPkkwI0EjIvdjEve3ZlbmRvcn0vZm9yZWNhc3RzL21vbnRoLW9uLW1vbnRoL3tsZXZlbH0ve2lkfRLAAQoaR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3QSMi5ibHVlYXBpLmNvc3QudjEuR2V0TW9udGhUb0RhdGVDb3N0Rm9yZWNhc3RSZXF1ZXN0GjMuYmx1ZWFwaS5jb3N0LnYxLkdldE1vbnRoVG9EYXRlQ29zdEZvcmVjYXN0UmVzcG9uc2UiOYLT5JMCMxIxL3YxL3t2ZW5kb3J9L2ZvcmVjYXN0cy9tb250aC10by1kYXRlL3tsZXZlbH0ve2lkfRKRAQoQR2V0QWNjb3VudEJ1ZGdldBIoLmJsdWVhcGkuY29zdC52MS5HZXRBY2NvdW50QnVkZ2V0UmVxdWVzdBopLmJsdWVhcGkuY29zdC52MS5HZXRBY2NvdW50QnVkZ2V0UmVzcG9uc2UiKILT5JMCIhIgL3YxL3t2ZW5kb3J9L2J1ZGdldC97bGV2ZWx9L3tpZH0SnQEKE0NyZWF0ZUFjY291bnRCdWRnZXQSKy5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldFJlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuQ3JlYXRlQWNjb3VudEJ1ZGdldFJlc3BvbnNlIiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS9idWRnZXQve2xldmVsfS97aWR9EoUBChNVcGRhdGVBY2NvdW50QnVkZ2V0EisuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRCdWRnZXRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiM6ASoaHi92MS97dmVuZG9yfS9idWRnZXQve2J1ZGdldElkfRKCAQoTRGVsZXRlQWNjb3VudEJ1ZGdldBIrLmJsdWVhcGkuY29zdC52MS5EZWxldGVBY2NvdW50QnVkZ2V0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSImgtPkkwIgKh4vdjEve3ZlbmRvcn0vYnVkZ2V0L3tidWRnZXRJZH0SiQEKFkdldEFjY291bnRCdWRnZXRBbGVydHMSLi5ibHVlYXBpLmNvc3QudjEuR2V0QWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmFwaS53YXZlLkJ1ZGdldEFsZXJ0IiCC0+STAhoSGC92MS97dmVuZG9yfS9hbGVydHMve2lkfRKSAQoZQ3JlYXRlQWNjb3VudEJ1ZGdldEFsZXJ0cxIxLmJsdWVhcGkuY29zdC52MS5DcmVhdGVBY2NvdW50QnVkZ2V0QWxlcnRzUmVxdWVzdBodLmJsdWVhcGkuYXBpLndhdmUuQnVkZ2V0QWxlcnQiI4LT5JMCHToBKiIYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EpIBChlVcGRhdGVBY2NvdW50QnVkZ2V0QWxlcnRzEjEuYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUFjY291bnRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkud2F2ZS5CdWRnZXRBbGVydCIjgtPkkwIdOgEqGhgvdjEve3ZlbmRvcn0vYWxlcnRzL3tpZH0SiAEKGURlbGV0ZUFjY291bnRCdWRnZXRBbGVydHMSMS5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQWNjb3VudEJ1ZGdldEFsZXJ0c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIILT5JMCGioYL3YxL3t2ZW5kb3J9L2FsZXJ0cy97aWR9EnkKEFJlYWRCdWRnZXRBbGVydHMSKC5ibHVlYXBpLmNvc3QudjEuUmVhZEJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhqC0+STAhQ6ASoiDy92MS9hbGVydHM6cmVhZDABEnIKD0dldEJ1ZGdldEFsZXJ0cxInLmJsdWVhcGkuY29zdC52MS5HZXRCdWRnZXRBbGVydHNSZXF1ZXN0Gh0uYmx1ZWFwaS5jb3N0LnYxLkJ1ZGdldEFsZXJ0cyIXgtPkkwIREg8vdjEvYWxlcnRzL3tpZH0SdgoSQ3JlYXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLkNyZWF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhWC0+STAg86ASoiCi92MS9hbGVydHMSewoSVXBkYXRlQnVkZ2V0QWxlcnRzEiouYmx1ZWFwaS5jb3N0LnYxLlVwZGF0ZUJ1ZGdldEFsZXJ0c1JlcXVlc3QaHS5ibHVlYXBpLmNvc3QudjEuQnVkZ2V0QWxlcnRzIhqC0+STAhQ6ASoaDy92MS9hbGVydHMve2lkfRJxChJEZWxldGVCdWRnZXRBbGVydHMSKi5ibHVlYXBpLmNvc3QudjEuRGVsZXRlQnVkZ2V0QWxlcnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIXgtPkkwIRKg8vdjEvYWxlcnRzL3tpZH0SowEKEkdldFJlY29tbWVuZGF0aW9ucxIqLmJsdWVhcGkuY29zdC52MS5HZXRSZWNvbW1lbmRhdGlvbnNSZXF1ZXN0GisuYmx1ZWFwaS5jb3N0LnYxLkdldFJlY29tbWVuZGF0aW9uc1Jlc3BvbnNlIjSC0+STAi46ASoiKS92MS97dmVuZG9yfS9yZWNvbW1lbmRhdGlvbnMve29yZ0lkfTpyZWFkEpcBChBHZXRDb3N0UmVkdWN0aW9uEiguYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RSZWR1Y3Rpb25SZXF1ZXN0GikuYmx1ZWFwaS5jb3N0LnYxLkdldENvc3RSZWR1Y3Rpb25SZXNwb25zZSIugtPkkwIoOgEqIiMvdjEve3ZlbmRvcn0vcmVkdWN0aW9uL3tvcmdJZH06cmVhZBKGAQoNR2V0RXhwb3J0UklTUBIlLmJsdWVhcGkuY29zdC52MS5HZXRFeHBvcnRSSVNQUmVxdWVzdBomLmJsdWVhcGkuY29zdC52MS5HZXRFeHBvcnRSSVNQUmVzcG9uc2UiJoLT5JMCIDoBKiIbL3YxL2V4cG9ydGNzdi9wYXllcnM6ZXhwb3J0EmYKDEV4cG9ydFJlcG9ydBIkLmJsdWVhcGkuY29zdC52MS5FeHBvcnRSZXBvcnRSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIdgtPkkwIXOgEqIhIvdjEvcmVwb3J0czpleHBvcnQSnwEKE0dldEludm9pY2VSZWFkaW5lc3MSKy5ibHVlYXBpLmNvc3QudjEuR2V0SW52b2ljZVJlYWRpbmVzc1JlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0SW52b2ljZVJlYWRpbmVzc1Jlc3BvbnNlIi2C0+STAicSJS92MS97dmVuZG9yfS9yZXBvcnRzL2ludm9pY2VyZWFkaW5lc3MSiwEKDkdldFV0aWxpemF0aW9uEiYuYmx1ZWFwaS5jb3N0LnYxLkdldFV0aWxpemF0aW9uUmVxdWVzdBonLmJsdWVhcGkuY29zdC52MS5HZXRVdGlsaXphdGlvblJlc3BvbnNlIiiC0+STAiISIC92MS97dmVuZG9yfS91dGlsaXphdGlvbi97b3JnSWR9EqQBChJHZXRDb3ZlcmFnZU9wdGlvbnMSKi5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPcHRpb25zUmVxdWVzdBorLmJsdWVhcGkuY29zdC52MS5HZXRDb3ZlcmFnZU9wdGlvbnNSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEve3ZlbmRvcn0vY292ZXJhZ2Uvb3B0aW9ucy97b3JnSWR9OnJlYWQSqAEKE0dldENvdmVyYWdlT25kZW1hbmQSKy5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPbmRlbWFuZFJlcXVlc3QaLC5ibHVlYXBpLmNvc3QudjEuR2V0Q292ZXJhZ2VPbmRlbWFuZFJlc3BvbnNlIjaC0+STAjA6ASoiKy92MS97dmVuZG9yfS9jb3ZlcmFnZS9vbmRlbWFuZC97b3JnSWR9OnJlYWQSjAEKEUdldEJyZWFrZXZlblBvaW50EikuYmx1ZWFwaS5jb3N0LnYxLkdldEJyZWFrZXZlblBvaW50UmVxdWVzdBoqLmJsdWVhcGkuY29zdC52MS5HZXRCcmVha2V2ZW5Qb2ludFJlc3BvbnNlIiCC0+STAhoSGC92MS97dmVuZG9yfS9iZXAve29yZ0lkfRKkAQoYQ2hlY2tBY2NvdW50c0JlbG9uZ1RvTXNwEiUuYmx1ZWFwaS5jb3N0LnYxLkNoZWNrQWNjb3VudHNSZXF1ZXN0GiYuYmx1ZWFwaS5jb3N0LnYxLkNoZWNrQWNjb3VudHNSZXNwb25zZSI5gtPkkwIzOgEqIi4vdjEve3ZlbmRvcn0vYWNjb3VudHMvY3VzdG9tZXJzL2FjY291bnRzOmNoZWNrEowBCg5SZWFkSW52b2ljZUlkcxImLmJsdWVhcGkuY29zdC52MS5SZWFkSW52b2ljZUlkc1JlcXVlc3QaJy5ibHVlYXBpLmNvc3QudjEuUmVhZEludm9pY2VJZHNSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEve3ZlbmRvcn0vaW52b2ljZWlkczpyZWFkMAESlAEKFFJlYWRJbnZvaWNlT3ZlclZpZXdzEiwuYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlT3ZlcnZpZXdzUmVxdWVzdBomLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5PdmVyVmlld1NlY3Rpb24iJILT5JMCHjoBKiIZL3YxL2ludm9pY2VvdmVydmlld3M6cmVhZDABEoUBChBSZWFkSW52b2ljZUNvc3RzEiguYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlQ29zdHNSZXF1ZXN0GiMuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLlRvdGFsU2VjdGlvbiIggtPkkwIaOgEqIhUvdjEvaW52b2ljZWNvc3RzOnJlYWQwARKbAQoVUmVhZEludm9pY2VHcm91cENvc3RzEi0uYmx1ZWFwaS5jb3N0LnYxLlJlYWRJbnZvaWNlR3JvdXBDb3N0c1JlcXVlc3QaKi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQmlsbGluZ0dyb3VwU2VjdGlvbiIlgtPkkwIfOgEqIhovdjEvaW52b2ljZWdyb3VwY29zdHM6cmVhZDABEsMBChxMaXN0Q2FsY3VsYXRpb25QcmVyZXF1aXNpdGVzEjQuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvblByZXJlcXVpc2l0ZXNSZXF1ZXN0GjUuYmx1ZWFwaS5jb3N0LnYxLkxpc3RDYWxjdWxhdGlvblByZXJlcXVpc2l0ZXNSZXNwb25zZSI2gtPkkwIwEi4vdjEve3ZlbmRvcn0vY2FsY3VsYXRpb24vcHJlcmVxdWlzaXRlcy97bW9udGh9EqkBCiBTZXR1cFBheWVyQWNjb3VudEJpbGxpbmdUcmFuc2ZlchI4LmJsdWVhcGkuY29zdC52MS5TZXR1cFBheWVyQWNjb3VudEJpbGxpbmdUcmFuc2ZlclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLToBKiIoL3YxL3t2ZW5kb3J9L3BheWVycy97aWR9L2JpbGxpbmd0cmFuc2ZlchqNAZJBiQESOUNvc3QgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvY29zdBpMChJTZXJ2aWNlIGRlZmluaXRpb24SNmh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL3RyZWUvbWFpbi9jb3N0L0L8AgoWY2xvdWQuYWxwaGF1cy5hcGkuY29zdEIJQ29zdFByb3RvWiNnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvY29zdJJBsAISzgEKGkFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlIlIKGkFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlEjRodHRwczovL2FscGhhdXNsYWJzLmdpdGh1Yi5pby9ibHVlYXBpL2FwaXMvY29zdC5odG1sKlcKG0xpY2Vuc2U6IEFwYWNoZSBMaWNlbnNlIDIuMBI4aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvYmxvYi9tYWluL0xJQ0VOU0UyAzEuMHJdCiVNb3JlIGFib3V0IEFscGhhdXMgQmx1ZTogQ29zdCBTZXJ2aWNlEjRodHRwczovL2FscGhhdXNsYWJzLmdpdGh1Yi5pby9ibHVlYXBpL2FwaXMvY29zdC5odG1sYgZwcm90bzM", [file_api_account, file_api_coverage, file_api_budget, file_api_forecast, file_api_utilization, file_api_aws_breakeven, file_api_aws_cost, file_api_aws_calculator, file_api_aws_recommendation, file_api_aws_reduction, file_api_gcp_cost, file_api_azure_cost, file_api_ripple_payer, file_api_ripple_v1_dashboard, file_api_wave_budget, file_api_costtag, file_protos_operation, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_empty, file_protoc_gen_openapiv2_options_annotations, file_google_protobuf_field_mask]);
53
53
 
54
54
  /**
55
55
  * Request message for the Cost.ListPayerAccounts rpc.
@@ -3509,6 +3509,63 @@ export type AwsExportReportOptions_Columns = Message<"blueapi.cost.v1.AwsExportR
3509
3509
  export const AwsExportReportOptions_ColumnsSchema: GenMessage<AwsExportReportOptions_Columns> = /*@__PURE__*/
3510
3510
  messageDesc(file_cost_v1_cost, 77, 0);
3511
3511
 
3512
+ /**
3513
+ * Request message for GetInvoiceReadiness.
3514
+ *
3515
+ * @generated from message blueapi.cost.v1.GetInvoiceReadinessRequest
3516
+ */
3517
+ export type GetInvoiceReadinessRequest = Message<"blueapi.cost.v1.GetInvoiceReadinessRequest"> & {
3518
+ /**
3519
+ * Required. Bound from the URL path, so it cannot be empty/omitted.
3520
+ * Accepted values: "aws", "gcp", "azure".
3521
+ *
3522
+ * @generated from field: string vendor = 1;
3523
+ */
3524
+ vendor: string;
3525
+
3526
+ /**
3527
+ * Required. Billing month in YYYY-MM format.
3528
+ *
3529
+ * @generated from field: string month = 2;
3530
+ */
3531
+ month: string;
3532
+ };
3533
+
3534
+ /**
3535
+ * Describes the message blueapi.cost.v1.GetInvoiceReadinessRequest.
3536
+ * Use `create(GetInvoiceReadinessRequestSchema)` to create a new message.
3537
+ */
3538
+ export const GetInvoiceReadinessRequestSchema: GenMessage<GetInvoiceReadinessRequest> = /*@__PURE__*/
3539
+ messageDesc(file_cost_v1_cost, 78);
3540
+
3541
+ /**
3542
+ * Response message for GetInvoiceReadiness.
3543
+ *
3544
+ * @generated from message blueapi.cost.v1.GetInvoiceReadinessResponse
3545
+ */
3546
+ export type GetInvoiceReadinessResponse = Message<"blueapi.cost.v1.GetInvoiceReadinessResponse"> & {
3547
+ /**
3548
+ * True if all usage for the requested month has an invoice ID (billing is finalized).
3549
+ *
3550
+ * @generated from field: bool ready = 1;
3551
+ */
3552
+ ready: boolean;
3553
+
3554
+ /**
3555
+ * Human-readable explanation when ready is false. Empty when ready is true.
3556
+ *
3557
+ * @generated from field: string reason = 2;
3558
+ */
3559
+ reason: string;
3560
+ };
3561
+
3562
+ /**
3563
+ * Describes the message blueapi.cost.v1.GetInvoiceReadinessResponse.
3564
+ * Use `create(GetInvoiceReadinessResponseSchema)` to create a new message.
3565
+ */
3566
+ export const GetInvoiceReadinessResponseSchema: GenMessage<GetInvoiceReadinessResponse> = /*@__PURE__*/
3567
+ messageDesc(file_cost_v1_cost, 79);
3568
+
3512
3569
  /**
3513
3570
  * Request message for GetUtilization
3514
3571
  *
@@ -3584,7 +3641,7 @@ export type GetUtilizationRequest = Message<"blueapi.cost.v1.GetUtilizationReque
3584
3641
  * Use `create(GetUtilizationRequestSchema)` to create a new message.
3585
3642
  */
3586
3643
  export const GetUtilizationRequestSchema: GenMessage<GetUtilizationRequest> = /*@__PURE__*/
3587
- messageDesc(file_cost_v1_cost, 78);
3644
+ messageDesc(file_cost_v1_cost, 80);
3588
3645
 
3589
3646
  /**
3590
3647
  * Response message for GetUtilization
@@ -3608,7 +3665,7 @@ export type GetUtilizationResponse = Message<"blueapi.cost.v1.GetUtilizationResp
3608
3665
  * Use `create(GetUtilizationResponseSchema)` to create a new message.
3609
3666
  */
3610
3667
  export const GetUtilizationResponseSchema: GenMessage<GetUtilizationResponse> = /*@__PURE__*/
3611
- messageDesc(file_cost_v1_cost, 79);
3668
+ messageDesc(file_cost_v1_cost, 81);
3612
3669
 
3613
3670
  /**
3614
3671
  * Request message for GetCoverageOptions
@@ -3706,7 +3763,7 @@ export type GetCoverageOptionsRequest = Message<"blueapi.cost.v1.GetCoverageOpti
3706
3763
  * Use `create(GetCoverageOptionsRequestSchema)` to create a new message.
3707
3764
  */
3708
3765
  export const GetCoverageOptionsRequestSchema: GenMessage<GetCoverageOptionsRequest> = /*@__PURE__*/
3709
- messageDesc(file_cost_v1_cost, 80);
3766
+ messageDesc(file_cost_v1_cost, 82);
3710
3767
 
3711
3768
  /**
3712
3769
  * Response message for GetCoverageOptions
@@ -3730,7 +3787,7 @@ export type GetCoverageOptionsResponse = Message<"blueapi.cost.v1.GetCoverageOpt
3730
3787
  * Use `create(GetCoverageOptionsResponseSchema)` to create a new message.
3731
3788
  */
3732
3789
  export const GetCoverageOptionsResponseSchema: GenMessage<GetCoverageOptionsResponse> = /*@__PURE__*/
3733
- messageDesc(file_cost_v1_cost, 81);
3790
+ messageDesc(file_cost_v1_cost, 83);
3734
3791
 
3735
3792
  /**
3736
3793
  * Request message for GetCoverageOndemand
@@ -3821,7 +3878,7 @@ export type GetCoverageOndemandRequest = Message<"blueapi.cost.v1.GetCoverageOnd
3821
3878
  * Use `create(GetCoverageOndemandRequestSchema)` to create a new message.
3822
3879
  */
3823
3880
  export const GetCoverageOndemandRequestSchema: GenMessage<GetCoverageOndemandRequest> = /*@__PURE__*/
3824
- messageDesc(file_cost_v1_cost, 82);
3881
+ messageDesc(file_cost_v1_cost, 84);
3825
3882
 
3826
3883
  /**
3827
3884
  * Response message for GetCoverageOndemand
@@ -3845,7 +3902,7 @@ export type GetCoverageOndemandResponse = Message<"blueapi.cost.v1.GetCoverageOn
3845
3902
  * Use `create(GetCoverageOndemandResponseSchema)` to create a new message.
3846
3903
  */
3847
3904
  export const GetCoverageOndemandResponseSchema: GenMessage<GetCoverageOndemandResponse> = /*@__PURE__*/
3848
- messageDesc(file_cost_v1_cost, 83);
3905
+ messageDesc(file_cost_v1_cost, 85);
3849
3906
 
3850
3907
  /**
3851
3908
  * Request message for GetBreakevenPoint
@@ -3887,7 +3944,7 @@ export type GetBreakevenPointRequest = Message<"blueapi.cost.v1.GetBreakevenPoin
3887
3944
  * Use `create(GetBreakevenPointRequestSchema)` to create a new message.
3888
3945
  */
3889
3946
  export const GetBreakevenPointRequestSchema: GenMessage<GetBreakevenPointRequest> = /*@__PURE__*/
3890
- messageDesc(file_cost_v1_cost, 84);
3947
+ messageDesc(file_cost_v1_cost, 86);
3891
3948
 
3892
3949
  /**
3893
3950
  * Response message for GetBreakevenPoint
@@ -3911,7 +3968,7 @@ export type GetBreakevenPointResponse = Message<"blueapi.cost.v1.GetBreakevenPoi
3911
3968
  * Use `create(GetBreakevenPointResponseSchema)` to create a new message.
3912
3969
  */
3913
3970
  export const GetBreakevenPointResponseSchema: GenMessage<GetBreakevenPointResponse> = /*@__PURE__*/
3914
- messageDesc(file_cost_v1_cost, 85);
3971
+ messageDesc(file_cost_v1_cost, 87);
3915
3972
 
3916
3973
  /**
3917
3974
  * Request message for the ListCostFilters rpc.
@@ -3932,7 +3989,7 @@ export type ListCostFiltersRequest = Message<"blueapi.cost.v1.ListCostFiltersReq
3932
3989
  * Use `create(ListCostFiltersRequestSchema)` to create a new message.
3933
3990
  */
3934
3991
  export const ListCostFiltersRequestSchema: GenMessage<ListCostFiltersRequest> = /*@__PURE__*/
3935
- messageDesc(file_cost_v1_cost, 86);
3992
+ messageDesc(file_cost_v1_cost, 88);
3936
3993
 
3937
3994
  /**
3938
3995
  * Response message for the ListCostFilters rpc.
@@ -3951,7 +4008,7 @@ export type ListCostFiltersResponse = Message<"blueapi.cost.v1.ListCostFiltersRe
3951
4008
  * Use `create(ListCostFiltersResponseSchema)` to create a new message.
3952
4009
  */
3953
4010
  export const ListCostFiltersResponseSchema: GenMessage<ListCostFiltersResponse> = /*@__PURE__*/
3954
- messageDesc(file_cost_v1_cost, 87);
4011
+ messageDesc(file_cost_v1_cost, 89);
3955
4012
 
3956
4013
  /**
3957
4014
  * Response message for the ListCostFilters rpc.
@@ -4011,7 +4068,7 @@ export type ListCostFilters = Message<"blueapi.cost.v1.ListCostFilters"> & {
4011
4068
  * Use `create(ListCostFiltersSchema)` to create a new message.
4012
4069
  */
4013
4070
  export const ListCostFiltersSchema: GenMessage<ListCostFilters> = /*@__PURE__*/
4014
- messageDesc(file_cost_v1_cost, 88);
4071
+ messageDesc(file_cost_v1_cost, 90);
4015
4072
 
4016
4073
  /**
4017
4074
  * Request message for the CreateCostFilters rpc.
@@ -4064,7 +4121,7 @@ export type CreateCostFiltersRequest = Message<"blueapi.cost.v1.CreateCostFilter
4064
4121
  * Use `create(CreateCostFiltersRequestSchema)` to create a new message.
4065
4122
  */
4066
4123
  export const CreateCostFiltersRequestSchema: GenMessage<CreateCostFiltersRequest> = /*@__PURE__*/
4067
- messageDesc(file_cost_v1_cost, 89);
4124
+ messageDesc(file_cost_v1_cost, 91);
4068
4125
 
4069
4126
  /**
4070
4127
  * Response message for the CreateCostFilters rpc.
@@ -4085,7 +4142,7 @@ export type CreateCostFiltersResponse = Message<"blueapi.cost.v1.CreateCostFilte
4085
4142
  * Use `create(CreateCostFiltersResponseSchema)` to create a new message.
4086
4143
  */
4087
4144
  export const CreateCostFiltersResponseSchema: GenMessage<CreateCostFiltersResponse> = /*@__PURE__*/
4088
- messageDesc(file_cost_v1_cost, 90);
4145
+ messageDesc(file_cost_v1_cost, 92);
4089
4146
 
4090
4147
  /**
4091
4148
  * Request message for the UpdateCostFilters rpc.
@@ -4145,7 +4202,7 @@ export type UpdateCostFiltersRequest = Message<"blueapi.cost.v1.UpdateCostFilter
4145
4202
  * Use `create(UpdateCostFiltersRequestSchema)` to create a new message.
4146
4203
  */
4147
4204
  export const UpdateCostFiltersRequestSchema: GenMessage<UpdateCostFiltersRequest> = /*@__PURE__*/
4148
- messageDesc(file_cost_v1_cost, 91);
4205
+ messageDesc(file_cost_v1_cost, 93);
4149
4206
 
4150
4207
  /**
4151
4208
  * Response message for the UpdateCostFilters rpc.
@@ -4166,7 +4223,7 @@ export type UpdateCostFiltersResponse = Message<"blueapi.cost.v1.UpdateCostFilte
4166
4223
  * Use `create(UpdateCostFiltersResponseSchema)` to create a new message.
4167
4224
  */
4168
4225
  export const UpdateCostFiltersResponseSchema: GenMessage<UpdateCostFiltersResponse> = /*@__PURE__*/
4169
- messageDesc(file_cost_v1_cost, 92);
4226
+ messageDesc(file_cost_v1_cost, 94);
4170
4227
 
4171
4228
  /**
4172
4229
  * Request message for the DeleteCostFilters rpc.
@@ -4194,7 +4251,7 @@ export type DeleteCostFiltersRequest = Message<"blueapi.cost.v1.DeleteCostFilter
4194
4251
  * Use `create(DeleteCostFiltersRequestSchema)` to create a new message.
4195
4252
  */
4196
4253
  export const DeleteCostFiltersRequestSchema: GenMessage<DeleteCostFiltersRequest> = /*@__PURE__*/
4197
- messageDesc(file_cost_v1_cost, 93);
4254
+ messageDesc(file_cost_v1_cost, 95);
4198
4255
 
4199
4256
  /**
4200
4257
  * Request message for the ExportCostFiltersFile rpc.
@@ -4266,7 +4323,7 @@ export type ExportCostFiltersFileRequest = Message<"blueapi.cost.v1.ExportCostFi
4266
4323
  * Use `create(ExportCostFiltersFileRequestSchema)` to create a new message.
4267
4324
  */
4268
4325
  export const ExportCostFiltersFileRequestSchema: GenMessage<ExportCostFiltersFileRequest> = /*@__PURE__*/
4269
- messageDesc(file_cost_v1_cost, 94);
4326
+ messageDesc(file_cost_v1_cost, 96);
4270
4327
 
4271
4328
  /**
4272
4329
  * Response message for the ExportCostFiltersFile rpc.
@@ -4287,7 +4344,7 @@ export type ExportCostFiltersFileResponse = Message<"blueapi.cost.v1.ExportCostF
4287
4344
  * Use `create(ExportCostFiltersFileResponseSchema)` to create a new message.
4288
4345
  */
4289
4346
  export const ExportCostFiltersFileResponseSchema: GenMessage<ExportCostFiltersFileResponse> = /*@__PURE__*/
4290
- messageDesc(file_cost_v1_cost, 95);
4347
+ messageDesc(file_cost_v1_cost, 97);
4291
4348
 
4292
4349
  /**
4293
4350
  * GCP-specific options for ReadCostsRequest.
@@ -4368,7 +4425,7 @@ export type ReadCostsRequestGcpOptions = Message<"blueapi.cost.v1.ReadCostsReque
4368
4425
  * Use `create(ReadCostsRequestGcpOptionsSchema)` to create a new message.
4369
4426
  */
4370
4427
  export const ReadCostsRequestGcpOptionsSchema: GenMessage<ReadCostsRequestGcpOptions> = /*@__PURE__*/
4371
- messageDesc(file_cost_v1_cost, 96);
4428
+ messageDesc(file_cost_v1_cost, 98);
4372
4429
 
4373
4430
  /**
4374
4431
  * A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical 'and' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc.
@@ -4389,7 +4446,7 @@ export type ReadCostsRequestGcpOptionsFilters = Message<"blueapi.cost.v1.ReadCos
4389
4446
  * Use `create(ReadCostsRequestGcpOptionsFiltersSchema)` to create a new message.
4390
4447
  */
4391
4448
  export const ReadCostsRequestGcpOptionsFiltersSchema: GenMessage<ReadCostsRequestGcpOptionsFilters> = /*@__PURE__*/
4392
- messageDesc(file_cost_v1_cost, 97);
4449
+ messageDesc(file_cost_v1_cost, 99);
4393
4450
 
4394
4451
  /**
4395
4452
  * Request message for GetAccountBudgetAlerts
@@ -4417,7 +4474,7 @@ export type GetAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.GetAccountB
4417
4474
  * Use `create(GetAccountBudgetAlertsRequestSchema)` to create a new message.
4418
4475
  */
4419
4476
  export const GetAccountBudgetAlertsRequestSchema: GenMessage<GetAccountBudgetAlertsRequest> = /*@__PURE__*/
4420
- messageDesc(file_cost_v1_cost, 98);
4477
+ messageDesc(file_cost_v1_cost, 100);
4421
4478
 
4422
4479
  /**
4423
4480
  * Request message for CreateAccountBudgetAlerts
@@ -4452,7 +4509,7 @@ export type CreateAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.CreateAc
4452
4509
  * Use `create(CreateAccountBudgetAlertsRequestSchema)` to create a new message.
4453
4510
  */
4454
4511
  export const CreateAccountBudgetAlertsRequestSchema: GenMessage<CreateAccountBudgetAlertsRequest> = /*@__PURE__*/
4455
- messageDesc(file_cost_v1_cost, 99);
4512
+ messageDesc(file_cost_v1_cost, 101);
4456
4513
 
4457
4514
  /**
4458
4515
  * Request message for UpdateAccountBudgetAlerts
@@ -4491,7 +4548,7 @@ export type UpdateAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.UpdateAc
4491
4548
  * Use `create(UpdateAccountBudgetAlertsRequestSchema)` to create a new message.
4492
4549
  */
4493
4550
  export const UpdateAccountBudgetAlertsRequestSchema: GenMessage<UpdateAccountBudgetAlertsRequest> = /*@__PURE__*/
4494
- messageDesc(file_cost_v1_cost, 100);
4551
+ messageDesc(file_cost_v1_cost, 102);
4495
4552
 
4496
4553
  /**
4497
4554
  * Request message for DeleteAccountBudgetAlerts
@@ -4519,7 +4576,7 @@ export type DeleteAccountBudgetAlertsRequest = Message<"blueapi.cost.v1.DeleteAc
4519
4576
  * Use `create(DeleteAccountBudgetAlertsRequestSchema)` to create a new message.
4520
4577
  */
4521
4578
  export const DeleteAccountBudgetAlertsRequestSchema: GenMessage<DeleteAccountBudgetAlertsRequest> = /*@__PURE__*/
4522
- messageDesc(file_cost_v1_cost, 101);
4579
+ messageDesc(file_cost_v1_cost, 103);
4523
4580
 
4524
4581
  /**
4525
4582
  * Azure-specific options for ReadCostsRequest.
@@ -4570,7 +4627,7 @@ export type ReadCostsRequestAzureOptions = Message<"blueapi.cost.v1.ReadCostsReq
4570
4627
  * Use `create(ReadCostsRequestAzureOptionsSchema)` to create a new message.
4571
4628
  */
4572
4629
  export const ReadCostsRequestAzureOptionsSchema: GenMessage<ReadCostsRequestAzureOptions> = /*@__PURE__*/
4573
- messageDesc(file_cost_v1_cost, 102);
4630
+ messageDesc(file_cost_v1_cost, 104);
4574
4631
 
4575
4632
  /**
4576
4633
  * Request message for the BudgetAlerts rpc.
@@ -4647,7 +4704,7 @@ export type BudgetAlerts = Message<"blueapi.cost.v1.BudgetAlerts"> & {
4647
4704
  * Use `create(BudgetAlertsSchema)` to create a new message.
4648
4705
  */
4649
4706
  export const BudgetAlertsSchema: GenMessage<BudgetAlerts> = /*@__PURE__*/
4650
- messageDesc(file_cost_v1_cost, 103);
4707
+ messageDesc(file_cost_v1_cost, 105);
4651
4708
 
4652
4709
  /**
4653
4710
  * Request message for the ReadBudgetAlerts rpc.
@@ -4668,7 +4725,7 @@ export type ReadBudgetAlertsRequest = Message<"blueapi.cost.v1.ReadBudgetAlertsR
4668
4725
  * Use `create(ReadBudgetAlertsRequestSchema)` to create a new message.
4669
4726
  */
4670
4727
  export const ReadBudgetAlertsRequestSchema: GenMessage<ReadBudgetAlertsRequest> = /*@__PURE__*/
4671
- messageDesc(file_cost_v1_cost, 104);
4728
+ messageDesc(file_cost_v1_cost, 106);
4672
4729
 
4673
4730
  /**
4674
4731
  * Request message for the GetBudgetAlerts rpc.
@@ -4689,7 +4746,7 @@ export type GetBudgetAlertsRequest = Message<"blueapi.cost.v1.GetBudgetAlertsReq
4689
4746
  * Use `create(GetBudgetAlertsRequestSchema)` to create a new message.
4690
4747
  */
4691
4748
  export const GetBudgetAlertsRequestSchema: GenMessage<GetBudgetAlertsRequest> = /*@__PURE__*/
4692
- messageDesc(file_cost_v1_cost, 105);
4749
+ messageDesc(file_cost_v1_cost, 107);
4693
4750
 
4694
4751
  /**
4695
4752
  * Request message for the CreateBudgetAlerts rpc.
@@ -4759,7 +4816,7 @@ export type CreateBudgetAlertsRequest = Message<"blueapi.cost.v1.CreateBudgetAle
4759
4816
  * Use `create(CreateBudgetAlertsRequestSchema)` to create a new message.
4760
4817
  */
4761
4818
  export const CreateBudgetAlertsRequestSchema: GenMessage<CreateBudgetAlertsRequest> = /*@__PURE__*/
4762
- messageDesc(file_cost_v1_cost, 106);
4819
+ messageDesc(file_cost_v1_cost, 108);
4763
4820
 
4764
4821
  /**
4765
4822
  * Request message for the UpdateBudgetAlerts rpc.
@@ -4836,7 +4893,7 @@ export type UpdateBudgetAlertsRequest = Message<"blueapi.cost.v1.UpdateBudgetAle
4836
4893
  * Use `create(UpdateBudgetAlertsRequestSchema)` to create a new message.
4837
4894
  */
4838
4895
  export const UpdateBudgetAlertsRequestSchema: GenMessage<UpdateBudgetAlertsRequest> = /*@__PURE__*/
4839
- messageDesc(file_cost_v1_cost, 107);
4896
+ messageDesc(file_cost_v1_cost, 109);
4840
4897
 
4841
4898
  /**
4842
4899
  * Request message for the DeleteBudgetAlerts rpc.
@@ -4857,7 +4914,7 @@ export type DeleteBudgetAlertsRequest = Message<"blueapi.cost.v1.DeleteBudgetAle
4857
4914
  * Use `create(DeleteBudgetAlertsRequestSchema)` to create a new message.
4858
4915
  */
4859
4916
  export const DeleteBudgetAlertsRequestSchema: GenMessage<DeleteBudgetAlertsRequest> = /*@__PURE__*/
4860
- messageDesc(file_cost_v1_cost, 108);
4917
+ messageDesc(file_cost_v1_cost, 110);
4861
4918
 
4862
4919
  /**
4863
4920
  * @generated from message blueapi.cost.v1.CheckAccountsRequest
@@ -4883,7 +4940,7 @@ export type CheckAccountsRequest = Message<"blueapi.cost.v1.CheckAccountsRequest
4883
4940
  * Use `create(CheckAccountsRequestSchema)` to create a new message.
4884
4941
  */
4885
4942
  export const CheckAccountsRequestSchema: GenMessage<CheckAccountsRequest> = /*@__PURE__*/
4886
- messageDesc(file_cost_v1_cost, 109);
4943
+ messageDesc(file_cost_v1_cost, 111);
4887
4944
 
4888
4945
  /**
4889
4946
  * @generated from message blueapi.cost.v1.CheckAccountsResponse
@@ -4902,7 +4959,7 @@ export type CheckAccountsResponse = Message<"blueapi.cost.v1.CheckAccountsRespon
4902
4959
  * Use `create(CheckAccountsResponseSchema)` to create a new message.
4903
4960
  */
4904
4961
  export const CheckAccountsResponseSchema: GenMessage<CheckAccountsResponse> = /*@__PURE__*/
4905
- messageDesc(file_cost_v1_cost, 110);
4962
+ messageDesc(file_cost_v1_cost, 112);
4906
4963
 
4907
4964
  /**
4908
4965
  * Request message for the ReadInvoiceIds rpc.
@@ -4930,7 +4987,7 @@ export type ReadInvoiceIdsRequest = Message<"blueapi.cost.v1.ReadInvoiceIdsReque
4930
4987
  * Use `create(ReadInvoiceIdsRequestSchema)` to create a new message.
4931
4988
  */
4932
4989
  export const ReadInvoiceIdsRequestSchema: GenMessage<ReadInvoiceIdsRequest> = /*@__PURE__*/
4933
- messageDesc(file_cost_v1_cost, 111);
4990
+ messageDesc(file_cost_v1_cost, 113);
4934
4991
 
4935
4992
  /**
4936
4993
  * Response message for the ReadInvoiceIds rpc.
@@ -4951,7 +5008,7 @@ export type ReadInvoiceIdsResponse = Message<"blueapi.cost.v1.ReadInvoiceIdsResp
4951
5008
  * Use `create(ReadInvoiceIdsResponseSchema)` to create a new message.
4952
5009
  */
4953
5010
  export const ReadInvoiceIdsResponseSchema: GenMessage<ReadInvoiceIdsResponse> = /*@__PURE__*/
4954
- messageDesc(file_cost_v1_cost, 112);
5011
+ messageDesc(file_cost_v1_cost, 114);
4955
5012
 
4956
5013
  /**
4957
5014
  * @generated from message blueapi.cost.v1.PeriodRange
@@ -4991,7 +5048,7 @@ export type PeriodRange = Message<"blueapi.cost.v1.PeriodRange"> & {
4991
5048
  * Use `create(PeriodRangeSchema)` to create a new message.
4992
5049
  */
4993
5050
  export const PeriodRangeSchema: GenMessage<PeriodRange> = /*@__PURE__*/
4994
- messageDesc(file_cost_v1_cost, 113);
5051
+ messageDesc(file_cost_v1_cost, 115);
4995
5052
 
4996
5053
  /**
4997
5054
  * @generated from enum blueapi.cost.v1.PeriodRange.Unit
@@ -5022,7 +5079,7 @@ export enum PeriodRange_Unit {
5022
5079
  * Describes the enum blueapi.cost.v1.PeriodRange.Unit.
5023
5080
  */
5024
5081
  export const PeriodRange_UnitSchema: GenEnum<PeriodRange_Unit> = /*@__PURE__*/
5025
- enumDesc(file_cost_v1_cost, 113, 0);
5082
+ enumDesc(file_cost_v1_cost, 115, 0);
5026
5083
 
5027
5084
  /**
5028
5085
  * Request message for the ReadInvoiceOverviews rpc.
@@ -5071,7 +5128,7 @@ export type ReadInvoiceOverviewsRequest = Message<"blueapi.cost.v1.ReadInvoiceOv
5071
5128
  * Use `create(ReadInvoiceOverviewsRequestSchema)` to create a new message.
5072
5129
  */
5073
5130
  export const ReadInvoiceOverviewsRequestSchema: GenMessage<ReadInvoiceOverviewsRequest> = /*@__PURE__*/
5074
- messageDesc(file_cost_v1_cost, 114);
5131
+ messageDesc(file_cost_v1_cost, 116);
5075
5132
 
5076
5133
  /**
5077
5134
  * Request message for the ReadInvoiceCosts rpc.
@@ -5106,7 +5163,7 @@ export type ReadInvoiceCostsRequest = Message<"blueapi.cost.v1.ReadInvoiceCostsR
5106
5163
  * Use `create(ReadInvoiceCostsRequestSchema)` to create a new message.
5107
5164
  */
5108
5165
  export const ReadInvoiceCostsRequestSchema: GenMessage<ReadInvoiceCostsRequest> = /*@__PURE__*/
5109
- messageDesc(file_cost_v1_cost, 115);
5166
+ messageDesc(file_cost_v1_cost, 117);
5110
5167
 
5111
5168
  /**
5112
5169
  * Request message for the ReadInvoiceGroupCosts rpc.
@@ -5148,7 +5205,7 @@ export type ReadInvoiceGroupCostsRequest = Message<"blueapi.cost.v1.ReadInvoiceG
5148
5205
  * Use `create(ReadInvoiceGroupCostsRequestSchema)` to create a new message.
5149
5206
  */
5150
5207
  export const ReadInvoiceGroupCostsRequestSchema: GenMessage<ReadInvoiceGroupCostsRequest> = /*@__PURE__*/
5151
- messageDesc(file_cost_v1_cost, 116);
5208
+ messageDesc(file_cost_v1_cost, 118);
5152
5209
 
5153
5210
  /**
5154
5211
  * Request message for the ReadAccountOriginalResources rpc.
@@ -5169,7 +5226,7 @@ export type ReadAccountOriginalResourcesRequest = Message<"blueapi.cost.v1.ReadA
5169
5226
  * Use `create(ReadAccountOriginalResourcesRequestSchema)` to create a new message.
5170
5227
  */
5171
5228
  export const ReadAccountOriginalResourcesRequestSchema: GenMessage<ReadAccountOriginalResourcesRequest> = /*@__PURE__*/
5172
- messageDesc(file_cost_v1_cost, 117);
5229
+ messageDesc(file_cost_v1_cost, 119);
5173
5230
 
5174
5231
  /**
5175
5232
  * Request message for the RegisterPayerAccountRequest rpc.
@@ -5212,7 +5269,7 @@ export type RegisterPayerAccountRequest = Message<"blueapi.cost.v1.RegisterPayer
5212
5269
  * Use `create(RegisterPayerAccountRequestSchema)` to create a new message.
5213
5270
  */
5214
5271
  export const RegisterPayerAccountRequestSchema: GenMessage<RegisterPayerAccountRequest> = /*@__PURE__*/
5215
- messageDesc(file_cost_v1_cost, 118);
5272
+ messageDesc(file_cost_v1_cost, 120);
5216
5273
 
5217
5274
  /**
5218
5275
  * @generated from message blueapi.cost.v1.UpdatePayerAccountRequest
@@ -5253,7 +5310,7 @@ export type UpdatePayerAccountRequest = Message<"blueapi.cost.v1.UpdatePayerAcco
5253
5310
  * Use `create(UpdatePayerAccountRequestSchema)` to create a new message.
5254
5311
  */
5255
5312
  export const UpdatePayerAccountRequestSchema: GenMessage<UpdatePayerAccountRequest> = /*@__PURE__*/
5256
- messageDesc(file_cost_v1_cost, 119);
5313
+ messageDesc(file_cost_v1_cost, 121);
5257
5314
 
5258
5315
  /**
5259
5316
  * WORK-IN-PROGRESS: List the prerequisites for cost calculations.
@@ -5281,7 +5338,7 @@ export type ListCalculationPrerequisitesRequest = Message<"blueapi.cost.v1.ListC
5281
5338
  * Use `create(ListCalculationPrerequisitesRequestSchema)` to create a new message.
5282
5339
  */
5283
5340
  export const ListCalculationPrerequisitesRequestSchema: GenMessage<ListCalculationPrerequisitesRequest> = /*@__PURE__*/
5284
- messageDesc(file_cost_v1_cost, 120);
5341
+ messageDesc(file_cost_v1_cost, 122);
5285
5342
 
5286
5343
  /**
5287
5344
  * @generated from message blueapi.cost.v1.CalculationPrerequisite
@@ -5335,7 +5392,7 @@ export type CalculationPrerequisite = Message<"blueapi.cost.v1.CalculationPrereq
5335
5392
  * Use `create(CalculationPrerequisiteSchema)` to create a new message.
5336
5393
  */
5337
5394
  export const CalculationPrerequisiteSchema: GenMessage<CalculationPrerequisite> = /*@__PURE__*/
5338
- messageDesc(file_cost_v1_cost, 121);
5395
+ messageDesc(file_cost_v1_cost, 123);
5339
5396
 
5340
5397
  /**
5341
5398
  * Response message for the ListCalculationPrerequisites rpc.
@@ -5356,7 +5413,7 @@ export type ListCalculationPrerequisitesResponse = Message<"blueapi.cost.v1.List
5356
5413
  * Use `create(ListCalculationPrerequisitesResponseSchema)` to create a new message.
5357
5414
  */
5358
5415
  export const ListCalculationPrerequisitesResponseSchema: GenMessage<ListCalculationPrerequisitesResponse> = /*@__PURE__*/
5359
- messageDesc(file_cost_v1_cost, 122);
5416
+ messageDesc(file_cost_v1_cost, 124);
5360
5417
 
5361
5418
  /**
5362
5419
  * Request message for SetupPayerAccountBillingTransfer
@@ -5426,7 +5483,7 @@ export type SetupPayerAccountBillingTransferRequest = Message<"blueapi.cost.v1.S
5426
5483
  * Use `create(SetupPayerAccountBillingTransferRequestSchema)` to create a new message.
5427
5484
  */
5428
5485
  export const SetupPayerAccountBillingTransferRequestSchema: GenMessage<SetupPayerAccountBillingTransferRequest> = /*@__PURE__*/
5429
- messageDesc(file_cost_v1_cost, 123);
5486
+ messageDesc(file_cost_v1_cost, 125);
5430
5487
 
5431
5488
  /**
5432
5489
  * Service for reading aggregated costs for your cloud costs and usages.
@@ -6102,6 +6159,16 @@ export const Cost: GenService<{
6102
6159
  input: typeof ExportReportRequestSchema;
6103
6160
  output: typeof OperationSchema;
6104
6161
  },
6162
+ /**
6163
+ * Synchronously checks billing readiness without triggering an export, email, or long-running operation.
6164
+ *
6165
+ * @generated from rpc blueapi.cost.v1.Cost.GetInvoiceReadiness
6166
+ */
6167
+ getInvoiceReadiness: {
6168
+ methodKind: "unary";
6169
+ input: typeof GetInvoiceReadinessRequestSchema;
6170
+ output: typeof GetInvoiceReadinessResponseSchema;
6171
+ },
6105
6172
  /**
6106
6173
  * Get the utilization details for an organization (or MSP).
6107
6174
  *