@alphauspkgs/blue-sdk-ts 1.0.48 → 1.0.49

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.
package/gc/v1/gc_pb.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
6
  import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import { file_google_api_annotations } from "../../google/api/annotations_pb";
8
+ import { file_google_api_field_behavior } from "../../google/api/field_behavior_pb";
8
9
  import type { Value } from "@bufbuild/protobuf/wkt";
9
10
  import { file_google_protobuf_struct } from "@bufbuild/protobuf/wkt";
10
11
  import { file_protoc_gen_openapiv2_options_annotations } from "../../protoc-gen-openapiv2/options/annotations_pb";
@@ -14,7 +15,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
14
15
  * Describes the file gc/v1/gc.proto.
15
16
  */
16
17
  export const file_gc_v1_gc: GenFile = /*@__PURE__*/
17
- fileDesc("Cg5nYy92MS9nYy5wcm90bxINYmx1ZWFwaS5nYy52MSIRCg9MaXN0T3Jnc1JlcXVlc3QiLAoaQ29tbWl0bWVudFBsYW5BcHBseVJlcXVlc3QSDgoGcGxhbklkGAEgASgJIhgKFkxpc3RDb21taXRtZW50c1JlcXVlc3QiZwoaR2V0Q29tbWl0bWVudHNDaGFydFJlcXVlc3QSFAoMY29tbWl0bWVudElkGAEgASgJEg8KB2dyb3VwQnkYAiABKAkSEQoJc3RhcnREYXRlGAMgASgJEg8KB2VuZERhdGUYBCABKAkiOAogR2V0Q29tbWl0bWVudHNVdGlsaXphdGlvblJlcXVlc3QSFAoMY29tbWl0bWVudElkGAEgASgJIj4KEUdldE1ldHJpY3NSZXF1ZXN0EikKCHByb3ZpZGVyGAEgASgOMhcuYmx1ZWFwaS5nYy52MS5Qcm92aWRlciKjAQoUTGlzdFJlc291cmNlc1JlcXVlc3QSKQoIcHJvdmlkZXIYASABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyEhEKCXNlZ21lbnRJZBgCIAEoCRIOCgZzZWFyY2gYAyABKAkSDAoEZGVzYxgEIAEoCBIPCgdvcmRlckJ5GAUgASgJEgwKBHBhZ2UYBiABKAUSEAoIcGFnZVNpemUYByABKAUijAEKHEdldFJlc291cmNlRGFpbHlVc2FnZVJlcXVlc3QSEgoKcmVzb3VyY2VJZBgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCRIUCgxjYXRhbG9nU2t1SWQYBCABKAkSDAoEcGFnZRgFIAEoBRIQCghwYWdlU2l6ZRgGIAEoBSIzCh5MaXN0UmVzZXJ2YWJsZVJlc291cmNlc1JlcXVlc3QSEQoJY29tcGFueUlkGAEgASgJIiMKIUxpc3RQdXJjaGFzZVBsYW5zQnlTZWdtZW50UmVxdWVzdCIwCh5HZXRQdXJjaGFzZVBsYW5zRGV0YWlsc1JlcXVlc3QSDgoGcGxhbklkGAEgASgJIikKJ0dldFVwZGF0ZWRQdXJjaGFzZVBsYW5zQnlTZWdtZW50UmVxdWVzdCImCgdPcmdVc2VyEg0KBWVtYWlsGAEgASgJEgwKBHJvbGUYAiABKAkiLAoKTWVtYmVyc2hpcBIMCgRyb2xlGAEgASgJEhAKCHVzZXJuYW1lGAIgASgJImIKB0FkZHJlc3MSDQoFbGluZTEYASABKAkSDAoEY2l0eRgCIAEoCRINCgVzdGF0ZRgDIAEoCRILCgN6aXAYBCABKAkSDwoHY291bnRyeRgFIAEoCRINCgVsaW5lMhgGIAEoCSJUCg5Bd3NFeGlzdGluZ0N1chIOCgZyZWdpb24YASABKAkSDgoGYnVja2V0GAIgASgJEg4KBnByZWZpeBgDIAEoCRISCgpyZXBvcnROYW1lGAQgASgJIosCChJSZWdpc3Rlck9yZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIbChNsYWJyYVN1YnNjcmlwdGlvbklkGAIgASgJEiUKBXVzZXJzGAMgAygLMhYuYmx1ZWFwaS5nYy52MS5PcmdVc2VyEg4KBmRvbWFpbhgEIAEoCRIuCg5wcmltYXJ5QWRkcmVzcxgFIAEoCzIWLmJsdWVhcGkuZ2MudjEuQWRkcmVzcxIfChdhd3NNYXJrZXRwbGFjZU9mZmVyTGluaxgGIAEoCRIhChlhenVyZU1hcmtldHBsYWNlT2ZmZXJMaW5rGAcgASgJEh8KF2djcE1hcmtldHBsYWNlT2ZmZXJMaW5rGAggASgJIokBChlTdGFydEF3c09uYm9hcmRpbmdSZXF1ZXN0EhYKDmJpbGxpbmdHcm91cElkGAEgASgJEhEKCWNvbXBhbnlJZBgCIAEoCRIPCgdnY09yZ0lkGAMgASgJEhYKDnBheWVyQWNjb3VudElkGAQgASgJEhgKEHBheWVyQWNjb3VudE5hbWUYBSABKAkikwEKI0dldEF3c0Nsb3VkRm9ybWF0aW9uVGVtcGxhdGVSZXF1ZXN0EhYKDmJpbGxpbmdHcm91cElkGAEgASgJEhEKCWNvbXBhbnlJZBgCIAEoCRIPCgdnY09yZ0lkGAMgASgJEhYKDnBheWVyQWNjb3VudElkGAQgASgJEhgKEHBheWVyQWNjb3VudE5hbWUYBSABKAkiiwEKG0dldEF3c0xhdW5jaFN0YWNrVXJsUmVxdWVzdBIWCg5iaWxsaW5nR3JvdXBJZBgBIAEoCRIRCgljb21wYW55SWQYAiABKAkSDwoHZ2NPcmdJZBgDIAEoCRIWCg5wYXllckFjY291bnRJZBgEIAEoCRIYChBwYXllckFjY291bnROYW1lGAUgASgJIrUBChpWZXJpZnlBd3NPbmJvYXJkaW5nUmVxdWVzdBIWCg5iaWxsaW5nR3JvdXBJZBgBIAEoCRIRCgljb21wYW55SWQYAiABKAkSDwoHZ2NPcmdJZBgDIAEoCRIUCgxvbmJvYXJkaW5nSWQYBCABKAkSEQoJYWNjb3VudElkGAUgASgJEjIKC2V4aXN0aW5nQ3VyGAYgASgLMh0uYmx1ZWFwaS5nYy52MS5Bd3NFeGlzdGluZ0N1ciJfChpHZXRPbmJvYXJkaW5nU3RhdHVzUmVxdWVzdBIWCg5iaWxsaW5nR3JvdXBJZBgBIAEoCRIRCgljb21wYW55SWQYAiABKAkSFgoOcGF5ZXJBY2NvdW50SWQYAyABKAkiGgoYTGlzdFBheWVyQWNjb3VudHNSZXF1ZXN0IkMKHVNldFBheWVyQWNjb3VudEVuYWJsZWRSZXF1ZXN0EhEKCWNvbXBhbnlJZBgBIAEoCRIPCgdlbmFibGVkGAIgASgIIh4KHEdldFBheWVyQWNjb3VudFN0YXR1c1JlcXVlc3QiGgoYTGlzdEJpbGxpbmdHcm91cHNSZXF1ZXN0IlYKHFNldEJpbGxpbmdHcm91cFN0YXR1c1JlcXVlc3QSEQoJY29tcGFueUlkGAEgASgJEg8KB2VuYWJsZWQYAiABKAgSEgoKbmV3VmVyc2lvbhgDIAEoCCIeChxHZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXF1ZXN0IkQKG1ZhbGlkYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBIRCgljb21wYW55SWQYASABKAkSEgoKbmV3VmVyc2lvbhgCIAEoCCJFChlHZXRBd3NQcml2YXRlT2ZmZXJSZXF1ZXN0EhYKDnBheWVyQWNjb3VudElkGAEgASgJEhAKCHJlY3JlYXRlGAIgASgIIsIHCiFTYXZlQ29tbWl0bWVudHNQbGFuQXNEcmFmdFJlcXVlc3QSDgoGcGxhbklkGAEgASgJEhYKDnJlc2VydmF0aW9uSWRzGAIgAygJEhMKC3Jlc291cmNlSWRzGAMgAygJEhYKDm1heFVwZnJvbnRDb3N0GAQgASgBEikKCHByb3ZpZGVyGAUgASgOMhcuYmx1ZWFwaS5nYy52MS5Qcm92aWRlchIPCgdlbmREYXRlGAYgASgJEhEKCXN0YXJ0RGF0ZRgHIAEoCRIRCglzZWdtZW50SWQYCCABKAkSDgoGc3RhdHVzGAkgASgJEhMKC2Rlc2NyaXB0aW9uGAogASgJEgwKBG5hbWUYCyABKAkSHgoWcHJlZmVycmVkUGF5bWVudE9wdGlvbhgMIAEoCRIdChVpbmNsdWRlZENvbnRyYWN0VGVybXMYDSADKAkSOgoVaW5jbHVkZWRDb250cmFjdFNwZWNzGA4gAygLMhsuYmx1ZWFwaS5nYy52MS5Db250cmFjdFNwZWMSKgoKY292ZXJhZ2VJZBgPIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIRCgljcmVhdGVkQXQYECABKAkSKQoJY3JlYXRlZEJ5GBEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhIKCmRhdGFTb3VyY2UYEiABKAkSLwoPZXhlY3V0aW9uUG9saWN5GBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhYKDmZsYWdnZWRBY3Rpb25zGBQgAygJEgoKAmlkGBUgASgJEhUKDWlzQ2FsY3VsYXRpbmcYFiABKAgSEQoJaXNEZWZhdWx0GBcgASgIEhAKCGlzTG9ja2VkGBggASgIEhUKDWlzUmVjb21tZW5kZWQYGSABKAgSEQoJaXNSZW5ld2FsGBogASgIEg8KB2lzU2F2ZWQYGyABKAgSFAoMbGFzdE1vZGlmaWVkGBwgASgJEhIKCm1ldGFQbGFuSWQYHSABKAkSOgoabWluaW11bVVwZnJvbnRJbnRlcmVzdFJhdGUYHiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSDQoFb3JnSWQYHyABKAkSEAoIcGxhblR5cGUYICABKAkSPgoecmVjb21tZW5kV2l0aGluQ292ZXJlZEFjY291bnRzGCEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEicKB3NlZ21lbnQYIiABKAsyFi5ibHVlYXBpLmdjLnYxLlNlZ21lbnQiQwodTGlzdERyYWZ0UHVyY2hhc2VQbGFuc1JlcXVlc3QSDwoHaXNEcmFmdBgBIAEoCBIRCgljb21wYW55SWQYAiABKAkiSAoeRGVsZXRlRHJhZnRQdXJjaGFzZVBsYW5SZXF1ZXN0EhMKC2RyYWZ0UGxhbklkGAEgASgJEhEKCWNvbXBhbnlJZBgCIAEoCSI2CiJHZXRBdmFpbGFibGVDb21taXRtZW50VHlwZXNSZXF1ZXN0EhAKCHByb3ZpZGVyGAEgASgJIqMCCiFDcmVhdGVDdXN0b21Db21taXRtZW50UGxhblJlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkSEQoJc3RhcnREYXRlGAIgASgJEg8KB2VuZERhdGUYAyABKAkSEQoJY29tcGFueUlkGAQgASgJEg4KBnN0YXR1cxgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIMCgRuYW1lGAcgASgJEjoKFWluY2x1ZGVkQ29udHJhY3RTcGVjcxgIIAMoCzIbLmJsdWVhcGkuZ2MudjEuQ29udHJhY3RTcGVjEh0KFWluY2x1ZGVkQ29udHJhY3RUZXJtcxgJIAMoCRITCgtyZXNvdXJjZUlkcxgKIAMoCRISCgpjb21wYW55SWRzGAsgAygJIj8KKUdldEd1YXJhbnRlZWRDb21taXRtZW50VGVtcGxhdGVVcmxSZXF1ZXN0EhIKCmV4dGVybmFsSWQYASABKAkiTQonQ3JlYXRlR3VhcmFudGVlZENvbW1pdG1lbnRBY2Nlc3NSZXF1ZXN0Eg4KBnRhcmdldBgBIAEoCRISCgpleHRlcm5hbElkGAIgASgJIoMBChtTdGFydEF6dXJlT25ib2FyZGluZ1JlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSEQoJY29tcGFueUlkGAIgASgJEg8KB2djT3JnSWQYAyABKAkSEAoIdGVuYW50SWQYBCABKAkSFgoOc3Vic2NyaXB0aW9uSWQYBSABKAki0gUKHFVwZGF0ZUF6dXJlT25ib2FyZGluZ1JlcXVlc3QSFAoMb25ib2FyZGluZ0lkGAEgASgJEg8KB2djT3JnSWQYAiABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAyABKAkSEQoJY29tcGFueUlkGAQgASgJEhAKCHRlbmFudElkGAUgASgJEhYKDnN1YnNjcmlwdGlvbklkGAYgASgJEhMKC2FjY291bnRLaW5kGAcgASgJEhIKCmFjY291bnRJZHMYCCADKAkSFQoNYmxvYkNvbnRhaW5lchgJIAEoCRIVCg1yZXNvdXJjZUdyb3VwGAogASgJEhYKDnN0b3JhZ2VBY2NvdW50GAsgASgJEhAKCHJvbGVOYW1lGAwgASgJEjMKE3Jlc291cmNlR3JvdXBSZWdpb24YDSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSNAoUc3RvcmFnZUFjY291bnRSZWdpb24YDiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSMQoRcmVzb3VyY2VHcm91cFRhZ3MYDyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSMgoSc3RvcmFnZUFjY291bnRUYWdzGBAgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhEKCWNvbXBsZXRlZBgRIAEoCBIRCgljcmVhdGVkQXQYEiABKAkSOgoJY3JlYXRlZEJ5GBMgASgLMicuYmx1ZWFwaS5nYy52MS5BenVyZU9uYm9hcmRpbmdDcmVhdGVkQnkSKwoLaW50ZWdyYXRpb24YFCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFQoNaW50ZWdyYXRpb25JZBgVIAEoCRIQCghwcm92aWRlchgWIAEoCRIrCgNvcmcYFyABKAsyHi5ibHVlYXBpLmdjLnYxLkF6dXJlQXJjaGVyYU9yZyJzCiBHZXRBenVyZU9uYm9hcmRpbmdBdXRoVXJsUmVxdWVzdBIUCgxvbmJvYXJkaW5nSWQYASABKAkSDwoHZ2NPcmdJZBgCIAEoCRIQCgh0ZW5hbnRJZBgDIAEoCRIWCg5zdWJzY3JpcHRpb25JZBgEIAEoCSK3BQoeVmFsaWRhdGVBenVyZUFwcEluc3RhbGxSZXF1ZXN0EhQKDG9uYm9hcmRpbmdJZBgBIAEoCRIPCgdnY09yZ0lkGAIgASgJEgwKBHR5cGUYAyABKAkSEAoIdGVuYW50SWQYBCABKAkSFgoOc3Vic2NyaXB0aW9uSWQYBSABKAkSEwoLYWNjb3VudEtpbmQYBiABKAkSEgoKYWNjb3VudElkcxgHIAMoCRIVCg1ibG9iQ29udGFpbmVyGAggASgJEhUKDXJlc291cmNlR3JvdXAYCSABKAkSFgoOc3RvcmFnZUFjY291bnQYCiABKAkSEAoIcm9sZU5hbWUYCyABKAkSMwoTcmVzb3VyY2VHcm91cFJlZ2lvbhgMIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI0ChRzdG9yYWdlQWNjb3VudFJlZ2lvbhgNIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIxChFyZXNvdXJjZUdyb3VwVGFncxgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIyChJzdG9yYWdlQWNjb3VudFRhZ3MYDyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEQoJY29tcGxldGVkGBAgASgIEhEKCWNyZWF0ZWRBdBgRIAEoCRI6CgljcmVhdGVkQnkYEiABKAsyJy5ibHVlYXBpLmdjLnYxLkF6dXJlT25ib2FyZGluZ0NyZWF0ZWRCeRIrCgtpbnRlZ3JhdGlvbhgTIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIVCg1pbnRlZ3JhdGlvbklkGBQgASgJEhAKCHByb3ZpZGVyGBUgASgJEisKA29yZxgWIAEoCzIeLmJsdWVhcGkuZ2MudjEuQXp1cmVBcmNoZXJhT3JnIksKIkxpc3RBenVyZU9uYm9hcmRpbmdBY2NvdW50c1JlcXVlc3QSFAoMb25ib2FyZGluZ0lkGAEgASgJEg8KB2djT3JnSWQYAiABKAkilAQKHUNyZWF0ZUF6dXJlSW50ZWdyYXRpb25SZXF1ZXN0Eg8KB2djT3JnSWQYASABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSEQoJY29tcGFueUlkGAMgASgJEhYKDnBheWVyQWNjb3VudElkGAQgASgJEgwKBHR5cGUYBSABKAkSEAoIdGVuYW50SWQYBiABKAkSFgoOc3Vic2NyaXB0aW9uSWQYByABKAkSFAoMb25ib2FyZGluZ0lkGAggASgJEhMKC2FjY291bnRLaW5kGAkgASgJEhIKCmFjY291bnRJZHMYCiADKAkSFQoNYmxvYkNvbnRhaW5lchgLIAEoCRIVCg1yZXNvdXJjZUdyb3VwGAwgASgJEhYKDnN0b3JhZ2VBY2NvdW50GA0gASgJEhAKCHJvbGVOYW1lGA4gASgJEjMKE3Jlc291cmNlR3JvdXBSZWdpb24YDyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSNAoUc3RvcmFnZUFjY291bnRSZWdpb24YECABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSMQoRcmVzb3VyY2VHcm91cFRhZ3MYESABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSMgoSc3RvcmFnZUFjY291bnRUYWdzGBIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlIi8KHExpc3RBenVyZUludGVncmF0aW9uc1JlcXVlc3QSDwoHZ2NPcmdJZBgBIAEoCSIxCgNPcmcSDQoFb3JnSWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVlbWFpbBgDIAEoCSLzBAoVQ29tbWl0bWVudFBsYW5EZXRhaWxzEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDQoFb3JnSWQYBCABKAkSEQoJY3JlYXRlZEF0GAUgASgJEhUKDWlzQ2FsY3VsYXRpbmcYBiABKAgSDgoGc3RhdHVzGAcgASgJEg8KB21heFRlcm0YCCABKAkSIQoZY292ZXJlZE9uZGVtYW5kQ29zdEhvdXJseRgJIAEoARIgChhiZWZvcmVPbmRlbWFuZENvc3RIb3VybHkYCiABKAESIAoYYmVmb3JlUmVzZXJ2ZWRDb3N0SG91cmx5GAsgASgBEhsKE2Ftb3J0aXplZENvc3RIb3VybHkYDCABKAESGwoTcmVjdXJyaW5nQ29zdEhvdXJseRgNIAEoARIZChF1cGZyb250Q29zdEhvdXJseRgOIAEoARIYChBiZWZvcmVDb3N0SG91cmx5GA8gASgBEhcKD2FmdGVyQ29zdEhvdXJseRgQIAEoARIXCg90b3RhbENvc3RIb3VybHkYESABKAESFQoNc2F2aW5nc0hvdXJseRgSIAEoARIRCglmZWVIb3VybHkYEyABKAESGgoSY29tbWl0bWVudENvdmVyYWdlGBQgASgBEh0KFW1pbmltdW1Db21taXRtZW50Q29zdBgVIAEoARIWCg5icmVha2V2ZW5Ib3VycxgWIAEoARIUCgx0b3RhbFNhdmluZ3MYFyABKAESFgoObW9udGhseVNhdmluZ3MYGCABKAESHgoWdG90YWxNb250aGx5QmVmb3JlQ29zdBgZIAEoASK0BgoWQ29tbWl0bWVudFBsYW5MaW5lSXRlbRIKCgJpZBgBIAEoCRIOCgZwbGFuSWQYAiABKAkSDwoHb2ZmZXJJZBgDIAEoCRIXCg9sZWFzZU1lbnVJdGVtSWQYBCABKAkSEQoJYWNjb3VudElkGAUgASgJEhsKE3JlY29tbWVuZGVkUXVhbnRpdHkYBiABKAESGAoQc2VsZWN0ZWRRdWFudGl0eRgHIAEoARIdChVyZWNvbW1lbmRlZENvbW1pdG1lbnQYCCABKAESGgoSc2VsZWN0ZWRDb21taXRtZW50GAkgASgBEhIKCmlzU2VsZWN0ZWQYCiABKAgSGgoSYWZ0ZXJBbW9ydGl6ZWRDb3N0GAsgASgBEhMKC3VwZnJvbnRDb3N0GAwgASgBEhUKDXJlY3VycmluZ0Nvc3QYDSABKAESEgoKYmVmb3JlQ29zdBgOIAEoARIaChJiZWZvcmVPbmRlbWFuZENvc3QYDyABKAESGgoSYmVmb3JlUmVzZXJ2ZWRDb3N0GBAgASgBEhsKE2NvdmVyZWRPbmRlbWFuZENvc3QYESABKAESGQoRYWZ0ZXJDb3ZlcmVkVW5pdHMYEiABKAESEQoJdG90YWxDb3N0GBMgASgBEhMKC21vbnRobHlDb3N0GBQgASgBEg8KB3NhdmluZ3MYFSABKAESFgoObW9udGhseVNhdmluZ3MYFiABKAESFAoMdG90YWxTYXZpbmdzGBcgASgBEgsKA2ZlZRgYIAEoARIUCgxkaXNjb3VudFJhdGUYGSABKAESFgoOYnJlYWtldmVuSG91cnMYGiABKAESFAoMY29udHJhY3RUZXJtGBsgASgJEhUKDXBheW1lbnRPcHRpb24YHCABKAkSLQoMY29udHJhY3RTcGVjGB0gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCgVvZmZlchgeIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHAoUcmVuZXdhbFJlc2VydmF0aW9uSWQYHyABKAkSFAoMY292ZXJlZFVuaXRzGCAgASgBEhUKDWFtb3J0aXplZENvc3QYISABKAEi1wUKG0NvbW1pdG1lbnRQbGFuUmVzb3VyY2VNYXRjaBIKCgJpZBgBIAEoCRISCgp0b3RhbFVuaXRzGAIgASgBEhwKFGJlZm9yZVVuY292ZXJlZFVuaXRzGAMgASgBEhkKEWFmdGVyQ292ZXJlZFVuaXRzGAQgASgBEhsKE2FmdGVyVW5jb3ZlcmVkVW5pdHMYBSABKAESFQoNb25kZW1hbmRQcmljZRgGIAEoARIZChFpZkFsbE9uZGVtYW5kQ29zdBgHIAEoARIaChJiZWZvcmVPbmRlbWFuZENvc3QYCCABKAESGQoRYWZ0ZXJPbmRlbWFuZENvc3QYCSABKAESGwoTY292ZXJlZE9uZGVtYW5kQ29zdBgKIAEoARIaChJiZWZvcmVSZXNlcnZlZENvc3QYCyABKAESGQoRYWZ0ZXJSZXNlcnZlZENvc3QYDCABKAESEgoKYmVmb3JlQ29zdBgNIAEoARIRCglhZnRlckNvc3QYDiABKAESGQoRbW9udGhseUJlZm9yZUNvc3QYDyABKAESGAoQbW9udGhseUFmdGVyQ29zdBgQIAEoARIgChhtb250aGx5QWZ0ZXJSZXNlcnZlZENvc3QYESABKAESIAoYbW9udGhseUFmdGVyT25kZW1hbmRDb3N0GBIgASgBEhYKDmF2ZXJhZ2VTYXZpbmdzGBMgASgBEh0KFWF2ZXJhZ2VNb250aGx5U2F2aW5ncxgUIAEoARIRCgl1c2FnZVR5cGUYFSABKAkSEAoIY292ZXJhZ2UYFiABKAESKQoIcmVzb3VyY2UYFyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EhQKDGNvdmVyZWRVbml0cxgYIAEoARIcChRleHBsYW5hdGlvblVubWF0Y2hlZBgZIAEoARIUCgxvbmRlbWFuZENvc3QYGiABKAESFAoMcmVzZXJ2ZWRDb3N0GBsgASgBIu4BCgVMZWFzZRIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIdChVwcm92aWRlclJlc2VydmF0aW9uSWQYAyABKAkSEQoJYWNjb3VudElkGAQgASgJEg4KBnN0YXR1cxgFIAEoCRIRCglzdGFydERhdGUYBiABKAkSDwoHZW5kRGF0ZRgHIAEoCRISCgpsb2NraW5EYXRlGAggASgJEhMKC3VwZnJvbnRDb3N0GAkgASgBEhUKDXJlY3VycmluZ0Nvc3QYCiABKAESEQoJY3JlYXRlZEF0GAsgASgJEhEKCXVwZGF0ZWRBdBgMIAEoCSJJChBEYWlseVV0aWxpemF0aW9uEgwKBGRhdGUYASABKAkSEwoLdXRpbGl6YXRpb24YAiABKAESEgoKbmV0U2F2aW5ncxgDIAEoASLQBwoKQ29tbWl0bWVudBIKCgJpZBgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSFQoNYW1vcnRpemVkQ29zdBgDIAEoARIYChBiaWxsaW5nQWNjb3VudElkGAQgASgJEhEKCWNhblJlYmF0ZRgFIAEoCBIUCgxjb250cmFjdFRlcm0YBiABKAkSEwoLZGlzcGxheU5hbWUYByABKAkSFwoPZHVyYXRpb25TZWNvbmRzGAggASgBEh4KFmVmZmVjdGl2ZUluc3RhbmNlQ291bnQYCSABKAMSDwoHZW5kRGF0ZRgKIAEoCRIVCg1pbnN0YW5jZUNvdW50GAsgASgDEhYKDmluc3RhbmNlRmFtaWx5GAwgASgJEhQKDGluc3RhbmNlVHlwZRgNIAEoCRIQCghpc0FjdGl2ZRgOIAEoCBISCgppc0ZsZXhpYmxlGA8gASgIEhAKCGlzTGVhc2VkGBAgASgIEhEKCWlzTXVsdGlBehgRIAEoCBIXCg9sZWFzZUxvY2tpbkRhdGUYEiABKAkSEgoKbGVhc2VTdGFydBgTIAEoCRIZChFsZWFzZWREaXNwbGF5TmFtZRgUIAEoCRITCgttb250aGx5Q29zdBgVIAEoARIWCg5tb250aGx5U2F2aW5ncxgWIAEoARIMCgRuYW1lGBcgASgJEhIKCm5ldFNhdmluZ3MYGCABKAESEgoKb2ZmZXJpbmdJZBgZIAEoCRIVCg1wYXltZW50T3B0aW9uGBogASgJEhgKEHBvdGVudGlhbFNhdmluZ3MYGyABKAESGgoScHJvZHVjdERlc2NyaXB0aW9uGBwgASgJEhAKCHByb3ZpZGVyGB0gASgJEh4KFnByb3ZpZGVyUmVzZXJ2YXRpb25faWQYHiABKAkSFQoNcmVjdXJyaW5nQ29zdBgfIAEoARIOCgZyZWdpb24YICABKAkSEwoLcmVuZXdhbFBsYW4YISABKAkSFgoOcmVzZXJ2YXRpb25FbmQYIiABKAkSGAoQcmVzZXJ2YXRpb25TdGFydBgjIAEoCRIUCgxydW5uaW5nSG91cnMYJCABKAESDwoHc2F2aW5ncxglIAEoARIRCglzdGFydERhdGUYJiABKAkSDgoGc3RhdHVzGCcgASgJEh4KFnRyYW5zZmVyUmVzZXJ2YXRpb25FbmQYKCABKAkSIAoYdHJhbnNmZXJSZXNlcnZhdGlvblN0YXJ0GCkgASgJEgwKBHR5cGUYKiABKAkSEwoLdXBmcm9udENvc3QYKyABKAESEwoLdXRpbGl6YXRpb24YLCABKAEiSQoXTGlzdENvbW1pdG1lbnRzUmVzcG9uc2USLgoLY29tbWl0bWVudHMYASADKAsyGS5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnQiSgoUQ29tbWl0bWVudHNDaGFydERhdGESDAoEZGF0ZRgBIAEoCRIQCghjaGFydEtleRgCIAEoCRISCgpjaGFydFZhbHVlGAMgASgBIk0KGENvbW1pdG1lbnRzQ2hhcnRSZXNwb25zZRIxCgRkYXRhGAEgAygLMiMuYmx1ZWFwaS5nYy52MS5Db21taXRtZW50c0NoYXJ0RGF0YSL8AQoaQ29tbWl0bWVudHNVdGlsaXphdGlvbkRhdGESFwoPdXRpbGl6YXRpb25EYXRlGAEgASgJEgwKBGNvc3QYAiABKAESEwoLY292ZXJlZENvc3QYAyABKAESDwoHZ3JpRmVlcxgEIAEoARISCgpuZXRTYXZpbmdzGAUgASgBEhgKEHBvdGVudGlhbFNhdmluZ3MYBiABKAESHgoWcmVzZXJ2YXRpb25VdGlsaXphdGlvbhgHIAEoARIUCgxydW5uaW5nSG91cnMYCCABKAESDwoHc2F2aW5ncxgJIAEoARIcChR1bnV0aWxpemVkQ29tbWl0bWVudBgKIAEoASJZCh5Db21taXRtZW50c1V0aWxpemF0aW9uUmVzcG9uc2USNwoEZGF0YRgBIAMoCzIpLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudHNVdGlsaXphdGlvbkRhdGEizQMKD01ldHJpY3NSZXNwb25zZRIXCg9saWZldGltZVNhdmluZ3MYASABKAESEgoKbXRkU2F2aW5ncxgCIAEoARIhChlwdXJjaGFzZUF1dG9tYXRpb25FbmFibGVkGAMgASgIEiAKGGJ1eWJhY2tBdXRvbWF0aW9uRW5hYmxlZBgEIAEoCBIXCg9oYXNBY3Rpb25lZFBsYW4YBSABKAgSGQoRaGFzUGVuZGluZ0FjdGlvbnMYBiABKAgSGwoTbGF0ZXN0RXhlY3V0aW9uRGF0ZRgHIAEoCRIdChVwdXJjaGFzZU1pc3NlZFNhdmluZ3MYCCABKAESHAoUYnV5YmFja01pc3NlZFNhdmluZ3MYCSABKAESHwoXdG90YWxEYWlseU1pc3NlZFNhdmluZ3MYCiABKAESGwoTaG91cmx5TWlzc2VkU2F2aW5ncxgLIAEoARIeChZtaXNzZWRTYXZpbmdzU3RhcnREYXRlGAwgASgJEhwKFG1pc3NlZFNhdmluZ3NFbmREYXRlGA0gASgJEhcKD2V4cGlyaW5nU2F2aW5ncxgOIAEoARIQCghjb3ZlcmFnZRgPIAEoARITCgt1dGlsaXphdGlvbhgQIAEoASKICAoIUmVzb3VyY2USCgoCaWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIpCghwcm92aWRlchgDIAEoDjIXLmJsdWVhcGkuZ2MudjEuUHJvdmlkZXISGgoScHJvdmlkZXJSZXNvdXJjZUlkGAQgASgJEg4KBmlzU3BvdBgFIAEoCBIMCgRuYW1lGAYgASgJEhUKDXJlc291cmNlR3JvdXAYByABKAkSEAoIdXNhZ2VFbmQYCCABKAkSEgoKdXNhZ2VTdGFydBgJIAEoCRIlCgR0YWdzGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIRCgljcmVhdGVkQXQYCyABKAkSEQoJdXBkYXRlZEF0GAwgASgJEhIKCmluc3RhbmNlSWQYDSABKAkSGAoQYmlsbGluZ0FjY291bnRJZBgOIAEoCRIUCgxzdWJBY2NvdW50SWQYDyABKAkSGwoTbWFuYWdlbWVudEFjY291bnRJZBgQIAEoCRIWCg5vd25lckFjY291bnRJZBgRIAEoCRIQCghza3VUaXRsZRgSIAEoCRIPCgdza3VOYW1lGBMgASgJEhgKEGF2YWlsYWJpbGl0eVpvbmUYFCABKAkSEwoLY2FjaGVFbmdpbmUYFSABKAkSFgoOZGF0YWJhc2VFbmdpbmUYFiABKAkSEwoLZGVzY3JpcHRpb24YFyABKAkSDgoGZmFtaWx5GBggASgJEhYKDmZ1bGxSZWdpb25OYW1lGBkgASgJEhgKEGhhc09uZGVtYW5kVGVybXMYGiABKAgSFAoMaW5zdGFuY2VUeXBlGBsgASgJEhoKEmluc3RhbmNlVHlwZUZhbWlseRgcIAEoCRIUCgxpc1Jlc2VydmFibGUYHSABKAgSFAoMbGljZW5zZU1vZGVsGB4gASgJEhQKDGxvY2F0aW9uVHlwZRgfIAEoCRIfChdub3JtYWxpemF0aW9uU2l6ZUZhY3RvchggIAEoCRIXCg9vcGVyYXRpbmdTeXN0ZW0YISABKAkSFgoOcHJlSW5zdGFsbGVkU3cYIiABKAkSFQoNcHJpY2VDdXJyZW5jeRgjIAEoCRIXCg9wcm92aWRlclNlcnZpY2UYJCABKAkSFQoNcHJvdmlkZXJTa3VJZBglIAEoCRIXCg9wdWJsaWNhdGlvbkRhdGUYJiABKAkSDgoGcmVnaW9uGCcgASgJEg8KB3NlcnZpY2UYKCABKAkSDwoHdGVuYW5jeRgpIAEoCRIRCgl1c2FnZVR5cGUYKiABKAkSDwoHdmVyc2lvbhgrIAEoCRIcChR2cGNOZXR3b3JraW5nU3VwcG9ydBgsIAEoCBIZChFvbmRlbWFuZFVzYWdlVW5pdBgtIAEoCSJDChVMaXN0UmVzb3VyY2VzUmVzcG9uc2USKgoJcmVzb3VyY2VzGAEgAygLMhcuYmx1ZWFwaS5nYy52MS5SZXNvdXJjZSLvAgoSUmVzb3VyY2VEYWlseVVzYWdlEgwKBGRhdGUYASABKAkSFgoOdXNhZ2VBY2NvdW50SWQYAiABKAkSFAoMc3ViQWNjb3VudElkGAMgASgJEg0KBXVzYWdlGAQgASgBEhgKEHJlc2VydmF0aW9uVXNhZ2UYBSABKAESFQoNZnJlZVRpZXJVc2FnZRgGIAEoARIUCgxvbmRlbWFuZENvc3QYByABKAESFAoMcmVzZXJ2ZWRDb3N0GAggASgBEhkKEWlmQWxsT25kZW1hbmRDb3N0GAkgASgBEhAKCHNwb3RDb3N0GAogASgBEhcKD2ZyZWVUaWVyU2F2aW5ncxgLIAEoARIRCgl1c2FnZVR5cGUYDCABKAkSFwoPY29tbW9uVXNhZ2VUeXBlGA0gASgJEhQKDGNvdmVyZWRVc2FnZRgOIAEoARIOCgZ1cHRpbWUYDyABKAESGQoRcHJvdmlkZXJVc2FnZVR5cGUYECABKAkiVgodR2V0UmVzb3VyY2VEYWlseVVzYWdlUmVzcG9uc2USNQoKZGFpbHlVc2FnZRgBIAMoCzIhLmJsdWVhcGkuZ2MudjEuUmVzb3VyY2VEYWlseVVzYWdlIoMQChJSZXNlcnZhYmxlUmVzb3VyY2USCgoCaWQYASABKAkSEgoKcmVzb3VyY2VJZBgCIAEoCRIYChBiaWxsaW5nQWNjb3VudElkGAMgASgJEhQKDHN1YkFjY291bnRJZBgEIAEoCRIQCghwcm92aWRlchgFIAEoCRIaChJwcm92aWRlclJlc291cmNlSWQYBiABKAkSFwoPcHJvdmlkZXJTZXJ2aWNlGAcgASgJEhUKDXByb3ZpZGVyU2t1SWQYCCABKAkSDgoGaXNTcG90GAkgASgIEhQKDGlzUmVzZXJ2YWJsZRgKIAEoCBIkCgRuYW1lGAsgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEi0KDXJlc291cmNlR3JvdXAYDCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEAoIdXNhZ2VFbmQYDSABKAkSEgoKdXNhZ2VTdGFydBgOIAEoCRIlCgR0YWdzGA8gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBItCgxwcm92aWRlclRhZ3MYECABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCHVzZXJUYWdzGBEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIRCgljcmVhdGVkQXQYEiABKAkSEQoJdXBkYXRlZEF0GBMgASgJEhIKCmluc3RhbmNlSWQYFCABKAkSMAoQYXZhaWxhYmlsaXR5Wm9uZRgVIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIrCgtjYWNoZUVuZ2luZRgWIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIUCgxjYXRhbG9nU2t1SWQYFyABKAkSFwoPY2F0YWxvZ1NrdU9yZ0lkGBggASgJEiAKGGNsYXNzaWNOZXR3b3JraW5nU3VwcG9ydBgZIAEoCBISCgpjbG9ja1NwZWVkGBogASgJEhcKD2NvbW1vblVzYWdlVHlwZRgbIAEoCRIUCgxjb3ZlcmVkVXNhZ2UYHCABKAESLgoOZGF0YWJhc2VFbmdpbmUYHSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSHgoWZGVkaWNhdGVkRWJzVGhyb3VnaHB1dBgeIAEoCRIrCgtkZXNjcmlwdGlvbhgfIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRILCgNlY3UYICABKAkSIwobZW5oYW5jZWROZXR3b3JraW5nU3VwcG9ydGVkGCEgASgIEg4KBmZhbWlseRgiIAEoCRIWCg5mdWxsUmVnaW9uTmFtZRgjIAEoCRIYChBoYXNPbmRlbWFuZFRlcm1zGCQgASgIEg8KB2ljb25VcmwYJSABKAkSFQoNaW50ZWdyYXRpb25JZBgmIAEoCRIaChJpbnRlbEF2eDJBdmFpbGFibGUYJyABKAgSGQoRaW50ZWxBdnhBdmFpbGFibGUYKCABKAgSGwoTaW50ZWxUdXJib0F2YWlsYWJsZRgpIAEoCBIiCgJpbxgqIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIbChNpc0N1cnJlbnRHZW5lcmF0aW9uGCsgASgIEikKCWlzTXVsdGlBehgsIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIUCgxsaWNlbnNlTW9kZWwYLSABKAkSFAoMbG9jYXRpb25UeXBlGC4gASgJEg4KBm1lbW9yeRgvIAEoCRInCgdza3VOYW1lGDAgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhAKCHNrdVRpdGxlGDEgASgJEg8KB25ldENvc3QYMiABKAESEgoKbmV0U2F2aW5ncxgzIAEoARIaChJuZXR3b3JrUGVyZm9ybWFuY2UYNCABKAkSHwoXbm9ybWFsaXphdGlvblNpemVGYWN0b3IYNSABKAkSFAoMb25kZW1hbmRDb3N0GDYgASgBEhkKEW9uZGVtYW5kVXNhZ2VVbml0GDcgASgJEhcKD29wZXJhdGluZ1N5c3RlbRg4IAEoCRIRCglvcGVyYXRpb24YOSABKAkSGQoRcGh5c2ljYWxQcm9jZXNzb3IYOiABKAkSFgoOcHJlSW5zdGFsbGVkU3cYOyABKAkSFQoNcHJpY2VDdXJyZW5jeRg8IAEoCRIdChVwcm9jZXNzb3JBcmNoaXRlY3R1cmUYPSABKAkSGQoRcHJvY2Vzc29yRmVhdHVyZXMYPiABKAkSFwoPcHVibGljYXRpb25EYXRlGD8gASgJEg4KBnJlZ2lvbhhAIAEoCRIPCgdzZXJ2aWNlGEEgASgJEg4KBnNvdXJjZRhCIAEoCRIPCgdzdG9yYWdlGEMgASgJEicKB3RheFR5cGUYRCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSDwoHdGVuYW5jeRhFIAEoCRIOCgZ1cHRpbWUYRiABKAESEQoJdXNhZ2VUeXBlGEcgASgJEgwKBHZjcHUYSCABKAkSDwoHdmVyc2lvbhhJIAEoCRIcChR2cGNOZXR3b3JraW5nU3VwcG9ydBhKIAEoCBIUCgxpbnN0YW5jZVR5cGUYSyABKAkSGgoSaW5zdGFuY2VUeXBlRmFtaWx5GEwgASgJEjYKC2RhaWx5VXNhZ2VzGE0gAygLMiEuYmx1ZWFwaS5nYy52MS5SZXNvdXJjZURhaWx5VXNhZ2UiVwofTGlzdFJlc2VydmFibGVSZXNvdXJjZXNSZXNwb25zZRI0CglyZXNvdXJjZXMYASADKAsyIS5ibHVlYXBpLmdjLnYxLlJlc2VydmFibGVSZXNvdXJjZSJ0CgdTZWdtZW50EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSKQoIcHJvdmlkZXIYAyABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyEhEKCWlzRGVmYXVsdBgEIAEoCBIRCgljcmVhdGVkQXQYBSABKAkiQAoOU2VnbWVudENyZWF0b3ISCgoCaWQYASABKAkSEAoIdXNlcm5hbWUYAiABKAkSEAoIZnVsbE5hbWUYAyABKAkiSwoMUHVyY2hhc2VQbGFuEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSDgoGc3RhdHVzGAMgASgJEhEKCWlzUmVuZXdhbBgEIAEoCCKlBQoOU2VnbWVudERldGFpbHMSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIpCghwcm92aWRlchgEIAEoDjIXLmJsdWVhcGkuZ2MudjEuUHJvdmlkZXISFgoOY2xvdWRQcm92aWRlcnMYBSADKAkSEQoJaXNEZWZhdWx0GAYgASgIEhEKCWNyZWF0ZWRBdBgHIAEoCRIwCgljcmVhdGVkQnkYCCABKAsyHS5ibHVlYXBpLmdjLnYxLlNlZ21lbnRDcmVhdG9yEhAKCHBhcmVudElkGAkgASgJEg4KBnN0YXR1cxgKIAEoCRIUCgxzZWdtZW50Q2xhc3MYCyABKAkSJwoGcGFyYW1zGAwgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBITCgttb250aGx5Q29zdBgNIAEoARIWCg5tb250aGx5TmV0Q29zdBgOIAEoARIgChhtb250aGx5SWZBbGxPbmRlbWFuZENvc3QYDyABKAESGwoTbW9udGhseU9uZGVtYW5kQ29zdBgQIAEoARIbChNtb250aGx5UmVzZXJ2ZWRDb3N0GBEgASgBEhcKD21vbnRobHlTcG90Q29zdBgSIAEoARIWCg5tb250aGx5U2F2aW5ncxgTIAEoARIVCg1tb250aGx5QnVkZ2V0GBQgASgBEhAKCGNvdmVyYWdlGBUgASgBEhsKE3JlY29tbWVuZGVkQ292ZXJhZ2UYFiABKAESFgoOdGFyZ2V0Q292ZXJhZ2UYFyABKAESHAoUbW9udGhseVJlc291cmNlQ291bnQYGCABKAUSMgoNcHVyY2hhc2VQbGFucxgZIAMoCzIbLmJsdWVhcGkuZ2MudjEuUHVyY2hhc2VQbGFuIngKDENvbnRyYWN0U3BlYxIWCg5jb21taXRtZW50VHlwZRgBIAEoCRIVCg1wYXltZW50T3B0aW9uGAIgASgJEgwKBHRlcm0YAyABKAkSKwoKcHJvcGVydGllcxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi3gIKC1BsYW5TdW1tYXJ5EgsKA2tleRgBIAEoCRIQCghwcm92aWRlchgCIAEoCRIWCg5udW1Db21taXRtZW50cxgDIAEoBRIVCg1taW5Db21taXRtZW50GAQgASgBEhkKEW1vbnRobHlDb21taXRtZW50GAUgASgBEhMKC3VwZnJvbnRDb3N0GAYgASgBEhIKCm1pblNhdmluZ3MYByABKAESEgoKbWF4U2F2aW5ncxgIIAEoARIWCg5tb250aGx5U2F2aW5ncxgJIAEoARIUCgxtaW5UZXJtSG91cnMYCiABKAUSFAoMbWF4VGVybUhvdXJzGAsgASgFEhMKC2dyaVByZW1pdW1zGAwgASgBEhoKEmJlZm9yZU9uZGVtYW5kQ29zdBgNIAEoARIZChFhZnRlck9uZGVtYW5kQ29zdBgOIAEoARIZChFpZkFsbE9uZGVtYW5kQ29zdBgPIAEoASLlAgoOU2VydmljZVN1bW1hcnkSCwoDa2V5GAEgASgJEgwKBG5hbWUYAiABKAkSEwoLc2VydmljZU5hbWUYAyABKAkSEAoIcHJvdmlkZXIYBCABKAkSFgoObnVtQ29tbWl0bWVudHMYBSABKAUSFwoPY3VycmVudENvdmVyYWdlGAYgASgBEhkKEXBvdGVudGlhbENvdmVyYWdlGAcgASgBEhUKDW1pbkNvbW1pdG1lbnQYCCABKAESGQoRbW9udGhseUNvbW1pdG1lbnQYCSABKAESEwoLdXBmcm9udENvc3QYCiABKAESEgoKbWluU2F2aW5ncxgLIAEoARISCgptYXhTYXZpbmdzGAwgASgBEhYKDm1vbnRobHlTYXZpbmdzGA0gASgBEhQKDG1pblRlcm1Ib3VycxgOIAEoBRIUCgxtYXhUZXJtSG91cnMYDyABKAUSEgoKZ3JpUHJlbWl1bRgQIAEoASLaAQoQQWdncmVnYXRlTWV0cmljcxIXCg9jdXJyZW50Q292ZXJhZ2UYASABKAESGQoRcG90ZW50aWFsQ292ZXJhZ2UYAiABKAESQQoJc3VtbWFyaWVzGAMgAygLMi4uYmx1ZWFwaS5nYy52MS5BZ2dyZWdhdGVNZXRyaWNzLlN1bW1hcmllc0VudHJ5Gk8KDlN1bW1hcmllc0VudHJ5EgsKA2tleRgBIAEoCRIsCgV2YWx1ZRgCIAEoCzIdLmJsdWVhcGkuZ2MudjEuU2VydmljZVN1bW1hcnk6AjgBIs4LChNEZWZhdWx0UHVyY2hhc2VQbGFuEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDQoFb3JnSWQYBCABKAkSEQoJc2VnbWVudElkGAUgASgJEicKB3NlZ21lbnQYBiABKAsyFi5ibHVlYXBpLmdjLnYxLlNlZ21lbnQSDgoGc3RhdHVzGAcgASgJEhAKCHBsYW5UeXBlGAggASgJEhEKCWNyZWF0ZWRBdBgJIAEoCRIUCgxsYXN0TW9kaWZpZWQYCiABKAkSKQoJY3JlYXRlZEJ5GAsgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEi8KD2V4ZWN1dGlvblBvbGljeRgMIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIRCglpc0RlZmF1bHQYDSABKAgSFQoNaXNSZWNvbW1lbmRlZBgOIAEoCBIRCglpc1JlbmV3YWwYDyABKAgSFQoNaXNDYWxjdWxhdGluZxgQIAEoCBIQCghpc0xvY2tlZBgRIAEoCBIPCgdpc1NhdmVkGBIgASgIEjoKFWluY2x1ZGVkQ29udHJhY3RTcGVjcxgTIAMoCzIbLmJsdWVhcGkuZ2MudjEuQ29udHJhY3RTcGVjEh0KFWluY2x1ZGVkQ29udHJhY3RUZXJtcxgUIAMoCRIPCgdtYXhUZXJtGBUgASgJEh4KFnByZWZlcnJlZFBheW1lbnRPcHRpb24YFiABKAkSFgoObWF4VXBmcm9udENvc3QYFyABKAESIgoabWluaW11bVVwZnJvbnRJbnRlcmVzdFJhdGUYGCABKAESPgoecmVjb21tZW5kV2l0aGluQ292ZXJlZEFjY291bnRzGBkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhEKCXN0YXJ0RGF0ZRgaIAEoCRIPCgdlbmREYXRlGBsgASgJEhIKCmRhdGFTb3VyY2UYHCABKAkSEgoKYmVmb3JlQ29zdBgdIAEoARIRCglhZnRlckNvc3QYHiABKAESGgoSYmVmb3JlT25kZW1hbmRDb3N0GB8gASgBEhoKEmJlZm9yZVJlc2VydmVkQ29zdBggIAEoARIbChNjb3ZlcmVkT25kZW1hbmRDb3N0GCEgASgBEhUKDWFtb3J0aXplZENvc3QYIiABKAESFQoNcmVjdXJyaW5nQ29zdBgjIAEoARITCgt1cGZyb250Q29zdBgkIAEoARIRCgl0b3RhbENvc3QYJSABKAESHgoWdG90YWxNb250aGx5QmVmb3JlQ29zdBgmIAEoARIPCgdzYXZpbmdzGCcgASgBEhYKDm1vbnRobHlTYXZpbmdzGCggASgBEhQKDHRvdGFsU2F2aW5ncxgpIAEoARILCgNmZWUYKiABKAESGgoSY29tbWl0bWVudENvdmVyYWdlGCsgASgBEh0KFW1pbmltdW1Db21taXRtZW50Q29zdBgsIAEoARIWCg5icmVha2V2ZW5Ib3VycxgtIAEoARI5ChBhZ2dyZWdhdGVNZXRyaWNzGC4gASgLMh8uYmx1ZWFwaS5nYy52MS5BZ2dyZWdhdGVNZXRyaWNzEi0KCXN1bW1hcmllcxgvIAMoCzIaLmJsdWVhcGkuZ2MudjEuUGxhblN1bW1hcnkSFgoOcmVzZXJ2YXRpb25JZHMYMCADKAkSEwoLcmVzb3VyY2VJZHMYMSADKAkSFgoOZmxhZ2dlZEFjdGlvbnMYMiADKAkSEgoKbWV0YVBsYW5JZBgzIAEoCRISCgpjb3ZlcmFnZUlkGDQgASgJEhgKEG1vbnRobHlBZnRlckNvc3QYNSABKAESHAoUbW9udGhseUFtb3J0aXplZENvc3QYNiABKAESGQoRbW9udGhseUJlZm9yZUNvc3QYNyABKAESEgoKbW9udGhseUZlZRg4IAEoARIQCghhbGxUZXJtcxg5IAMoCSJXCiJMaXN0UHVyY2hhc2VQbGFuc0J5U2VnbWVudFJlc3BvbnNlEjEKBXBsYW5zGAEgAygLMiIuYmx1ZWFwaS5nYy52MS5EZWZhdWx0UHVyY2hhc2VQbGFuIl0KKEdldFVwZGF0ZWRQdXJjaGFzZVBsYW5zQnlTZWdtZW50UmVzcG9uc2USMQoFcGxhbnMYASADKAsyIi5ibHVlYXBpLmdjLnYxLkRlZmF1bHRQdXJjaGFzZVBsYW4iQQoPUGxhbkhpc3RvcnlVc2VyEgoKAmlkGAEgASgJEhAKCHVzZXJuYW1lGAIgASgJEhAKCGZ1bGxOYW1lGAMgASgJIvcBChBQbGFuSGlzdG9yeUVudHJ5EgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSDQoFb3JnSWQYAyABKAkSFwoPcmVsYXRlZE9iamVjdElkGAQgASgJEhkKEXJlbGF0ZWRPYmplY3RUeXBlGAUgASgJEhEKCXRpbWVzdGFtcBgGIAEoCRIMCgR0eXBlGAcgASgJEg4KBnVzZXJJZBgIIAEoCRIkCgRkYXRhGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEiwKBHVzZXIYCiABKAsyHi5ibHVlYXBpLmdjLnYxLlBsYW5IaXN0b3J5VXNlciKEAgoTUmVnaXN0ZXJPcmdSZXNwb25zZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEi4KC21lbWJlcnNoaXBzGAMgAygLMhkuYmx1ZWFwaS5nYy52MS5NZW1iZXJzaGlwEg4KBmRvbWFpbhgEIAEoCRIuCg5wcmltYXJ5QWRkcmVzcxgFIAEoCzIWLmJsdWVhcGkuZ2MudjEuQWRkcmVzcxIfChdhd3NNYXJrZXRwbGFjZU9mZmVyTGluaxgGIAEoCRIhChlhenVyZU1hcmtldHBsYWNlT2ZmZXJMaW5rGAcgASgJEh8KF2djcE1hcmtldHBsYWNlT2ZmZXJMaW5rGAggASgJIjIKGlN0YXJ0QXdzT25ib2FyZGluZ1Jlc3BvbnNlEhQKDG9uYm9hcmRpbmdJZBgBIAEoCSJRCiRHZXRBd3NDbG91ZEZvcm1hdGlvblRlbXBsYXRlUmVzcG9uc2USKQoIdGVtcGxhdGUYASABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IisKHEdldEF3c0xhdW5jaFN0YWNrVXJsUmVzcG9uc2USCwoDdXJsGAEgASgJIo8EChtWZXJpZnlBd3NPbmJvYXJkaW5nUmVzcG9uc2USVAoGY2hlY2tzGAEgAygLMkQuYmx1ZWFwaS5nYy52MS5WZXJpZnlBd3NPbmJvYXJkaW5nUmVzcG9uc2UuQXdzT25ib2FyZGluZ0ZlYXR1cmVDaGVjaxqZAwoZQXdzT25ib2FyZGluZ0ZlYXR1cmVDaGVjaxIPCgdmZWF0dXJlGAEgASgJEm8KBnN0YXR1cxgCIAEoDjJfLmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlLkF3c09uYm9hcmRpbmdGZWF0dXJlQ2hlY2suQXdzT25ib2FyZGluZ0ZlYXR1cmVTdGF0dXMi+QEKGkF3c09uYm9hcmRpbmdGZWF0dXJlU3RhdHVzEi0KKUFXU19PTkJPQVJESU5HX0ZFQVRVUkVfU1RBVFVTX1VOU1BFQ0lGSUVEEAASKwonQVdTX09OQk9BUkRJTkdfRkVBVFVSRV9TVEFUVVNfQVZBSUxBQkxFEAESKQolQVdTX09OQk9BUkRJTkdfRkVBVFVSRV9TVEFUVVNfV0FSTklORxACEikKJUFXU19PTkJPQVJESU5HX0ZFQVRVUkVfU1RBVFVTX01JU1NJTkcQAxIpCiVBV1NfT05CT0FSRElOR19GRUFUVVJFX1NUQVRVU19VTktOT1dOEAQinAUKG0dldE9uYm9hcmRpbmdTdGF0dXNSZXNwb25zZRINCgVmb3VuZBgBIAEoCBINCgVpc01zcBgCIAEoCBIpCghwcm92aWRlchgDIAEoDjIXLmJsdWVhcGkuZ2MudjEuUHJvdmlkZXISDwoHZ2NPcmdJZBgEIAEoCRIUCgxvbmJvYXJkaW5nSWQYBSABKAkSVQoQb25ib2FyZGluZ1N0YXR1cxgGIAEoDjI7LmJsdWVhcGkuZ2MudjEuR2V0T25ib2FyZGluZ1N0YXR1c1Jlc3BvbnNlLk9uYm9hcmRpbmdTdGF0dXMSEQoJYWNjb3VudElkGAcgASgJEhYKDmJpbGxpbmdHcm91cElkGAggASgJEhEKCWNvbXBhbnlJZBgJIAEoCRJgChJ2ZXJpZmljYXRpb25DaGVja3MYCiADKAsyRC5ibHVlYXBpLmdjLnYxLlZlcmlmeUF3c09uYm9hcmRpbmdSZXNwb25zZS5Bd3NPbmJvYXJkaW5nRmVhdHVyZUNoZWNrIpUCChBPbmJvYXJkaW5nU3RhdHVzEiEKHU9OQk9BUkRJTkdfU1RBVFVTX1VOU1BFQ0lGSUVEEAASJAogT05CT0FSRElOR19TVEFUVVNfTk9UX1JFR0lTVEVSRUQQARIgChxPTkJPQVJESU5HX1NUQVRVU19SRUdJU1RFUkVEEAISKAokT05CT0FSRElOR19TVEFUVVNfT05CT0FSRElOR19TVEFSVEVEEAMSHgoaT05CT0FSRElOR19TVEFUVVNfVkVSSUZJRUQQBBInCiNPTkJPQVJESU5HX1NUQVRVU19WRVJJRllfSU5DT01QTEVURRAFEiMKH09OQk9BUkRJTkdfU1RBVFVTX1ZFUklGWV9GQUlMRUQQBiKOAwoTUGF5ZXJBY2NvdW50RGV0YWlscxIRCglhY2NvdW50SWQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSIAoYcmlwcGxlUmVnaXN0cmF0aW9uU3RhdHVzGAMgASgJElIKDWdjU2V0dXBTdGF0dXMYBCABKA4yOy5ibHVlYXBpLmdjLnYxLkdldE9uYm9hcmRpbmdTdGF0dXNSZXNwb25zZS5PbmJvYXJkaW5nU3RhdHVzEmAKEnZlcmlmaWNhdGlvbkNoZWNrcxgFIAMoCzJELmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlLkF3c09uYm9hcmRpbmdGZWF0dXJlQ2hlY2sSJQodbWFya2V0cGxhY2VQcml2YXRlT2ZmZXJTdGF0dXMYBiABKAkSIQoZbWFya2V0cGxhY2VQcml2YXRlT2ZmZXJJZBgHIAEoCRItCiVtYXJrZXRwbGFjZVByaXZhdGVPZmZlckV4cGlyYXRpb25EYXRlGAggASgJIqgFChlMaXN0UGF5ZXJBY2NvdW50c1Jlc3BvbnNlEkwKDXBheWVyQWNjb3VudHMYASADKAsyNS5ibHVlYXBpLmdjLnYxLkxpc3RQYXllckFjY291bnRzUmVzcG9uc2UuUGF5ZXJBY2NvdW50Ej8KE3BheWVyQWNjb3VudERldGFpbHMYAiADKAsyIi5ibHVlYXBpLmdjLnYxLlBheWVyQWNjb3VudERldGFpbHMa+gIKDFBheWVyQWNjb3VudBIRCglhY2NvdW50SWQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAyABKAkSEQoJc2VnbWVudElkGAQgASgJEksKBnN0YXR1cxgFIAEoDjI7LmJsdWVhcGkuZ2MudjEuTGlzdFBheWVyQWNjb3VudHNSZXNwb25zZS5QYXllckFjY291bnRTdGF0dXMSEQoJY29tcGFueUlkGAYgASgJElUKEG9uYm9hcmRpbmdTdGF0dXMYByABKA4yOy5ibHVlYXBpLmdjLnYxLkdldE9uYm9hcmRpbmdTdGF0dXNSZXNwb25zZS5PbmJvYXJkaW5nU3RhdHVzEmAKEnZlcmlmaWNhdGlvbkNoZWNrcxgIIAMoCzJELmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlLkF3c09uYm9hcmRpbmdGZWF0dXJlQ2hlY2sifwoSUGF5ZXJBY2NvdW50U3RhdHVzEiQKIFBBWUVSX0FDQ09VTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIAocUEFZRVJfQUNDT1VOVF9TVEFUVVNfRU5BQkxFRBABEiEKHVBBWUVSX0FDQ09VTlRfU1RBVFVTX0RJU0FCTEVEEAIibQoeU2V0UGF5ZXJBY2NvdW50RW5hYmxlZFJlc3BvbnNlEksKDHBheWVyQWNjb3VudBgBIAEoCzI1LmJsdWVhcGkuZ2MudjEuTGlzdFBheWVyQWNjb3VudHNSZXNwb25zZS5QYXllckFjY291bnQibAodR2V0UGF5ZXJBY2NvdW50U3RhdHVzUmVzcG9uc2USSwoMcGF5ZXJBY2NvdW50GAEgASgLMjUuYmx1ZWFwaS5nYy52MS5MaXN0UGF5ZXJBY2NvdW50c1Jlc3BvbnNlLlBheWVyQWNjb3VudCK2BQoZTGlzdEJpbGxpbmdHcm91cHNSZXNwb25zZRJMCg1iaWxsaW5nR3JvdXBzGAEgAygLMjUuYmx1ZWFwaS5nYy52MS5MaXN0QmlsbGluZ0dyb3Vwc1Jlc3BvbnNlLkJpbGxpbmdHcm91cBrJAwoMQmlsbGluZ0dyb3VwEhEKCWNvbXBhbnlJZBgBIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIYChBiaWxsaW5nR3JvdXBOYW1lGAMgASgJEhMKC2NvbXBhbnlOYW1lGAQgASgJEhYKDnBheWVyQWNjb3VudElkGAUgASgJEhgKEHBheWVyQWNjb3VudE5hbWUYBiABKAkSEQoJc2VnbWVudElkGAcgASgJEhQKDHJlc291cmNlVHlwZRgIIAEoCRJLCgZzdGF0dXMYCSABKA4yOy5ibHVlYXBpLmdjLnYxLkxpc3RCaWxsaW5nR3JvdXBzUmVzcG9uc2UuQmlsbGluZ0dyb3VwU3RhdHVzElUKEG9uYm9hcmRpbmdTdGF0dXMYCiABKA4yOy5ibHVlYXBpLmdjLnYxLkdldE9uYm9hcmRpbmdTdGF0dXNSZXNwb25zZS5PbmJvYXJkaW5nU3RhdHVzEmAKEnZlcmlmaWNhdGlvbkNoZWNrcxgLIAMoCzJELmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlLkF3c09uYm9hcmRpbmdGZWF0dXJlQ2hlY2sifwoSQmlsbGluZ0dyb3VwU3RhdHVzEiQKIEJJTExJTkdfR1JPVVBfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIAocQklMTElOR19HUk9VUF9TVEFUVVNfRU5BQkxFRBABEiEKHUJJTExJTkdfR1JPVVBfU1RBVFVTX0RJU0FCTEVEEAIibAodU2V0QmlsbGluZ0dyb3VwU3RhdHVzUmVzcG9uc2USSwoMYmlsbGluZ0dyb3VwGAEgASgLMjUuYmx1ZWFwaS5nYy52MS5MaXN0QmlsbGluZ0dyb3Vwc1Jlc3BvbnNlLkJpbGxpbmdHcm91cCJsCh1HZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXNwb25zZRJLCgxiaWxsaW5nR3JvdXAYASABKAsyNS5ibHVlYXBpLmdjLnYxLkxpc3RCaWxsaW5nR3JvdXBzUmVzcG9uc2UuQmlsbGluZ0dyb3VwIloKHFZhbGlkYXRlQmlsbGluZ0dyb3VwUmVzcG9uc2USCgoCb2sYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIMCgRjb2RlGAMgASgJEg8KB2RldGFpbHMYBCADKAkizgEKGkdldEF3c1ByaXZhdGVPZmZlclJlc3BvbnNlEhYKDnBheWVyQWNjb3VudElkGAEgASgJEg8KB29mZmVySWQYAiABKAkSEQoJb2ZmZXJOYW1lGAMgASgJEg4KBnN0YXR1cxgEIAEoCRIQCghvZmZlclVybBgFIAEoCRIRCglwcm9kdWN0SWQYBiABKAkSFAoMcHJpY2VQZXJVbml0GAcgASgBEhEKCWNyZWF0ZWRBdBgIIAEoCRIWCg5leHBpcmF0aW9uRGF0ZRgJIAEoCSJTCh5MaXN0RHJhZnRQdXJjaGFzZVBsYW5zUmVzcG9uc2USMQoFcGxhbnMYASADKAsyIi5ibHVlYXBpLmdjLnYxLkRlZmF1bHRQdXJjaGFzZVBsYW4iQgofRGVsZXRlRHJhZnRQdXJjaGFzZVBsYW5SZXNwb25zZRIOCgZwbGFuSWQYASABKAkSDwoHc3VjY2VzcxgCIAEoCCI0CiNHZXRBdmFpbGFibGVDb21taXRtZW50VHlwZXNSZXNwb25zZRINCgV0eXBlcxgBIAMoCSLdAQoqR2V0R3VhcmFudGVlZENvbW1pdG1lbnRUZW1wbGF0ZVVybFJlc3BvbnNlEhEKCWxhdW5jaFVybBgBIAEoCRITCgt0ZW1wbGF0ZVVybBgCIAEoCRIRCglzdGFja05hbWUYAyABKAkSEQoJcHJpbmNpcGFsGAQgASgJEhIKCmV4dGVybmFsSWQYBSABKAkSJQodZ3VhcmFudGVlZENvbW1pdG1lbnRQcmluY2lwYWwYBiABKAkSJgoeZ3VhcmFudGVlZENvbW1pdG1lbnRFeHRlcm5hbElkGAcgASgJIr4CCihDcmVhdGVHdWFyYW50ZWVkQ29tbWl0bWVudEFjY2Vzc1Jlc3BvbnNlEg4KBnRhcmdldBgBIAEoCRIVCg1yaXBwbGVSb2xlQXJuGAIgASgJEhgKEHJpcHBsZUV4dGVybmFsSWQYAyABKAkSIwobZ3VhcmFudGVlZENvbW1pdG1lbnRSb2xlQXJuGAQgASgJEiYKHmd1YXJhbnRlZWRDb21taXRtZW50RXh0ZXJuYWxJZBgFIAEoCRIPCgdzdGFja0lkGAYgASgJEhMKC3N0YWNrUmVnaW9uGAcgASgJEhMKC3RlbXBsYXRlVXJsGAggASgJEg4KBnN0YXR1cxgJIAEoCRITCgtsYXN0VXBkYXRlZBgKIAEoCRIkChxndWFyYW50ZWVkQ29tbWl0bWVudFZlcmlmaWVkGAsgASgIIoQCCh9HZXRQdXJjaGFzZVBsYW5zRGV0YWlsc1Jlc3BvbnNlEjAKBHBsYW4YASABKAsyIi5ibHVlYXBpLmdjLnYxLkRlZmF1bHRQdXJjaGFzZVBsYW4SOAoJbGluZUl0ZW1zGAIgAygLMiUuYmx1ZWFwaS5nYy52MS5Db21taXRtZW50UGxhbkxpbmVJdGVtEkMKD3Jlc291cmNlTWF0Y2hlcxgDIAMoCzIqLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudFBsYW5SZXNvdXJjZU1hdGNoEjAKB2hpc3RvcnkYBCADKAsyHy5ibHVlYXBpLmdjLnYxLlBsYW5IaXN0b3J5RW50cnkiVwoiQ3JlYXRlQ3VzdG9tQ29tbWl0bWVudFBsYW5SZXNwb25zZRIxCgVwbGFucxgBIAMoCzIiLmJsdWVhcGkuZ2MudjEuRGVmYXVsdFB1cmNoYXNlUGxhbiJ6ChxBenVyZUFyY2hlcmFPcmdGZWF0dXJlU3RhdHVzEiYKBmRldGFpbBgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIPCgdmZWF0dXJlGAIgASgJEg4KBnN0YXR1cxgDIAEoCRIRCgl1cGRhdGVkQXQYBCABKAkiVgoaQXp1cmVBcmNoZXJhT3JnTGVhc2VCdWRnZXQSDgoGYnVkZ2V0GAEgASgBEhEKCWNyZWF0ZWRBdBgCIAEoCRIVCg1taW5UZXJtTW9udGhzGAMgASgFIp4LCg9BenVyZUFyY2hlcmFPcmcSHgoWYXBwbHlCYWxhbmNlVG9QcmVtaXVtcxgBIAEoCBITCgthdXRoU3NvT25seRgCIAEoCBI3Chdhd3NNYXJrZXRwbGFjZU9mZmVyTGluaxgDIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI5ChlhenVyZU1hcmtldHBsYWNlT2ZmZXJMaW5rGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg8KB2JhbGFuY2UYBSABKAESFQoNYmlsbGluZ0FjdGl2ZRgGIAEoCBIaChJjaGFubmVsUGFydG5lclR5cGUYByABKAkSMgoSY2hhbm5lbFBhcnRuZXJzaGlwGAggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEisKC2NvbnRyYWN0RW5kGAkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhEKCWNyZWF0ZWRBdBgKIAEoCRIoCghjdXJyZW5jeRgLIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIXCg9kZWZhdWx0VXNlclJvbGUYDCABKAkSLAoMZGlzY291bnRJbmZvGA0gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg4KBmRvbWFpbhgOIAEoCRItCg1lZmZlY3RpdmVEYXRlGA8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEkQKD2ZlYXR1cmVTdGF0dXNlcxgQIAMoCzIrLmJsdWVhcGkuZ2MudjEuQXp1cmVBcmNoZXJhT3JnRmVhdHVyZVN0YXR1cxIQCghmZWF0dXJlcxgRIAMoCRIqCgpmcnVnYWxNb2RlGBIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjcKF2djcE1hcmtldHBsYWNlT2ZmZXJMaW5rGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhMKC2hhc0Rpc2NvdW50GBQgASgIEg8KB2hhc0dyaXMYFSABKAgSIQoZaGFzVGRzUGFjUHJveHlDcmVkZW50aWFscxgWIAEoCBIKCgJpZBgXIAEoCRIfChdpc0xlYXNlQnV5YmFja0F1dG9tYXRlZBgYIAEoCBIcChRpc0xlYXNlU3dhcEF1dG9tYXRlZBgZIAEoCBIVCg1pc1Rkc1BhY1Byb3h5GBogASgIEj4KC2xlYXNlQnVkZ2V0GBsgASgLMikuYmx1ZWFwaS5nYy52MS5BenVyZUFyY2hlcmFPcmdMZWFzZUJ1ZGdldBIgChhsZWFzZUJ1eWJhY2tMb29rYmFja0RheXMYHCABKAUSHQoVbGVhc2VTd2FwTG9va2JhY2tEYXlzGB0gASgFEgwKBG5hbWUYHiABKAkSKQoJcGFydG5lcklkGB8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhEKCXBsYW5UcmlhbBggIAEoCBIYChBwbGFuVHJpYWxFeHBpcmVzGCEgASgJEhYKDnBsYW5UeXBlQ2hvc2VuGCIgASgJEhkKEXBsYW5UeXBlRWZmZWN0aXZlGCMgASgJEi4KDnByaW1hcnlBZGRyZXNzGCQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEi0KDXByb21vdGlvbkNvZGUYJSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSWgoWcHJvdmlkZXJSb290U2VnbWVudElkcxgmIAMoCzI6LmJsdWVhcGkuZ2MudjEuQXp1cmVBcmNoZXJhT3JnLlByb3ZpZGVyUm9vdFNlZ21lbnRJZHNFbnRyeRo9ChtQcm92aWRlclJvb3RTZWdtZW50SWRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJUChhBenVyZU9uYm9hcmRpbmdDcmVhdGVkQnkSFAoMb25ib2FyZGluZ0lkGAEgASgJEhAKCHVzZXJuYW1lGAIgASgJEhAKCGZ1bGxOYW1lGAMgASgJIrIHChRBenVyZU9uYm9hcmRpbmdTdGF0ZRIUCgxvbmJvYXJkaW5nSWQYASABKAkSDQoFb3JnSWQYAiABKAkSEAoIcHJvdmlkZXIYAyABKAkSEQoJY29tcGxldGVkGAQgASgIEhEKCWNyZWF0ZWRBdBgFIAEoCRI6CgljcmVhdGVkQnkYBiABKAsyJy5ibHVlYXBpLmdjLnYxLkF6dXJlT25ib2FyZGluZ0NyZWF0ZWRCeRIrCgtpbnRlZ3JhdGlvbhgHIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIVCg1pbnRlZ3JhdGlvbklkGAggASgJEhoKEmFyY2hlcmFPdXRib3VuZElwcxgJIAMoCRIQCgh0ZW5hbnRJZBgKIAEoCRIWCg5zdWJzY3JpcHRpb25JZBgLIAEoCRISCgphY2NvdW50SWRzGAwgAygJEhMKC2FjY291bnRLaW5kGA0gASgJEjAKEGFwcEF1dGhWYWxpZGF0ZWQYDiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSLQoNYXBwQXV0aG9yaXplZBgPIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIVCg1ibG9iQ29udGFpbmVyGBAgASgJEhUKDXJlc291cmNlR3JvdXAYESABKAkSFgoOc3RvcmFnZUFjY291bnQYEiABKAkSEAoIcm9sZU5hbWUYEyABKAkSLwoPY3JlYXRlUmVzb3VyY2VzGBQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjQKFG1hcmtldHBsYWNlQ29tcGxldGVkGBUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEi8KD3Blcm1pc3Npb25MZXZlbBgWIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIzChNyZXNvdXJjZUdyb3VwUmVnaW9uGBcgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjQKFHN0b3JhZ2VBY2NvdW50UmVnaW9uGBggASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjEKEXJlc291cmNlR3JvdXBUYWdzGBkgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjIKEnN0b3JhZ2VBY2NvdW50VGFncxgaIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIrCgNvcmcYGyABKAsyHi5ibHVlYXBpLmdjLnYxLkF6dXJlQXJjaGVyYU9yZyKTAQocU3RhcnRBenVyZU9uYm9hcmRpbmdSZXNwb25zZRIUCgxvbmJvYXJkaW5nSWQYASABKAkSMgoFc3RhdGUYAiABKAsyIy5ibHVlYXBpLmdjLnYxLkF6dXJlT25ib2FyZGluZ1N0YXRlEhYKDmJpbGxpbmdHcm91cElkGAMgASgJEhEKCWNvbXBhbnlJZBgEIAEoCSIwCiFHZXRBenVyZU9uYm9hcmRpbmdBdXRoVXJsUmVzcG9uc2USCwoDdXJsGAEgASgJInYKDEF6dXJlQWNjb3VudBIRCglhY2NvdW50SWQYASABKAkSEwoLYWNjb3VudE5hbWUYAiABKAkSFQoNYWNjb3VudFN0YXR1cxgDIAEoCRITCgthY2NvdW50VHlwZRgEIAEoCRISCgppc0VsaWdpYmxlGAUgASgIIlQKI0xpc3RBenVyZU9uYm9hcmRpbmdBY2NvdW50c1Jlc3BvbnNlEi0KCGFjY291bnRzGAEgAygLMhsuYmx1ZWFwaS5nYy52MS5BenVyZUFjY291bnQiUAodQXp1cmVJbnRlZ3JhdGlvbkZlYXR1cmVTdGF0dXMSDwoHZmVhdHVyZRgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDgoGZGV0YWlsGAMgAygJIsIBChpBenVyZUludGVncmF0aW9uT25ib2FyZGluZxIKCgJpZBgBIAEoCRINCgVvcmdJZBgCIAEoCRIQCghwcm92aWRlchgDIAEoCRIVCg1pbnRlZ3JhdGlvbklkGAQgASgJEhEKCWNvbXBsZXRlZBgFIAEoCBIRCgljcmVhdGVkQXQYBiABKAkSOgoJY3JlYXRlZEJ5GAcgASgLMicuYmx1ZWFwaS5nYy52MS5BenVyZU9uYm9hcmRpbmdDcmVhdGVkQnki7gQKEEF6dXJlSW50ZWdyYXRpb24SCgoCaWQYASABKAkSDgoGYWN0aXZlGAIgASgIEgwKBG5hbWUYAyABKAkSEAoIcHJvdmlkZXIYBCABKAkSDAoEdHlwZRgFIAEoCRINCgVvcmdJZBgGIAEoCRIOCgZ1c2VySWQYByABKAkSEQoJY3JlYXRlZEF0GAggASgJEhEKCXVwZGF0ZWRBdBgJIAEoCRIgChhtYW5hZ2VtZW50U3Vic2NyaXB0aW9uSWQYCiABKAkSHgoWcHJvdmlkZXJPcmdhbml6YXRpb25JZBgLIAEoCRIVCg1ibG9iQ29udGFpbmVyGAwgASgJEhUKDXJlc291cmNlR3JvdXAYDSABKAkSFgoOc3RvcmFnZUFjY291bnQYDiABKAkSGAoQY29zdEV4cG9ydEZvcm1hdBgPIAEoCRIXCg9jdXJFYXJsaWVzdERhdGEYECABKAkSFQoNY3VyUmVwb3J0TmFtZRgRIAEoCRIRCgljdXJVc2FibGUYEiABKAgSFAoMaGFzQ3VyQWNjZXNzGBMgASgIEiAKGGhhc0Z1bGxSZXNlcnZhdGlvbkFjY2VzcxgUIAEoCBJFCg9mZWF0dXJlU3RhdHVzZXMYFSADKAsyLC5ibHVlYXBpLmdjLnYxLkF6dXJlSW50ZWdyYXRpb25GZWF0dXJlU3RhdHVzEj4KC29uYm9hcmRpbmdzGBYgAygLMikuYmx1ZWFwaS5nYy52MS5BenVyZUludGVncmF0aW9uT25ib2FyZGluZxInCgZjb25maWcYFyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrQBCh5DcmVhdGVBenVyZUludGVncmF0aW9uUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIRCgllcnJvckNvZGUYAiABKAkSFAoMZXJyb3JNZXNzYWdlGAMgASgJEhUKDWludGVncmF0aW9uSWQYBCABKAkSFgoOYmlsbGluZ0dyb3VwSWQYBSABKAkSEQoJY29tcGFueUlkGAYgASgJEhYKDnBheWVyQWNjb3VudElkGAcgASgJIlYKHUxpc3RBenVyZUludGVncmF0aW9uc1Jlc3BvbnNlEjUKDGludGVncmF0aW9ucxgBIAMoCzIfLmJsdWVhcGkuZ2MudjEuQXp1cmVJbnRlZ3JhdGlvbipeCghQcm92aWRlchIYChRQUk9WSURFUl9VTlNQRUNJRklFRBAAEgcKA0FXUxABEgkKBUFaVVJFEAISBwoDR0NQEAMSDgoKS1VCRVJORVRFUxAEEgsKB1VOS05PV04QBSqYAQoQQ29tbWl0bWVudFN0YXR1cxIhCh1DT01NSVRNRU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEgcKA05FVxABEgwKCFJFVklFV0VEEAISDQoJU0NIRURVTEVEEAMSDQoJQ09NUExFVEVEEAQSCQoFRFJBRlQQBRIQCgxORUVEU19SRVZJRVcQBhIPCgtJTl9QUk9HUkVTUxAHKooBChlDb21taXRtZW50SW52ZW50b3J5U3RhdHVzEisKJ0NPTU1JVE1FTlRfSU5WRU5UT1JZX1NUQVRVU19VTlNQRUNJRklFRBAAEgoKBkFDVElWRRABEgsKB1JFVElSRUQQAhITCg9QQVlNRU5UX1BFTkRJTkcQAxISCg5QQVlNRU5UX0ZBSUxFRBAEKkMKBVNjb3BlEhUKEVNDT1BFX1VOU1BFQ0lGSUVEEAASCgoGU0hBUkVEEAESDAoIUkVHSU9OQUwQAhIJCgVaT05BTBADKkEKCVVzYWdlVHlwZRIaChZVU0FHRV9UWVBFX1VOU1BFQ0lGSUVEEAASCwoHUlVOTklORxABEgsKB1NUT1BQRUQQAjL+MwoVR3VhcmFudGVlZENvbW1pdG1lbnRzEmMKCExpc3RPcmdzEh4uYmx1ZWFwaS5nYy52MS5MaXN0T3Jnc1JlcXVlc3QaEi5ibHVlYXBpLmdjLnYxLk9yZyIhgtPkkwIbOgEqIhYvdjEvb3JnYW5pemF0aW9uczpyZWFkMAESlwEKFENvbW1pdG1lbnRzUGxhbkFwcGx5EikuYmx1ZWFwaS5nYy52MS5Db21taXRtZW50UGxhbkFwcGx5UmVxdWVzdBokLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudFBsYW5EZXRhaWxzIi6C0+STAig6ASoiIy92MS9jb21taXRtZW50cy9wbGFuL3twbGFuSWR9L2FwcGx5EnkKD0xpc3RDb21taXRtZW50cxIlLmJsdWVhcGkuZ2MudjEuTGlzdENvbW1pdG1lbnRzUmVxdWVzdBomLmJsdWVhcGkuZ2MudjEuTGlzdENvbW1pdG1lbnRzUmVzcG9uc2UiF4LT5JMCERIPL3YxL2NvbW1pdG1lbnRzEpcBChNHZXRDb21taXRtZW50c0NoYXJ0EikuYmx1ZWFwaS5nYy52MS5HZXRDb21taXRtZW50c0NoYXJ0UmVxdWVzdBonLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudHNDaGFydFJlc3BvbnNlIiyC0+STAiYSJC92MS9jb21taXRtZW50cy97Y29tbWl0bWVudElkfS9jaGFydBKvAQoZR2V0Q29tbWl0bWVudHNVdGlsaXphdGlvbhIvLmJsdWVhcGkuZ2MudjEuR2V0Q29tbWl0bWVudHNVdGlsaXphdGlvblJlcXVlc3QaLS5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnRzVXRpbGl6YXRpb25SZXNwb25zZSIygtPkkwIsEiovdjEvY29tbWl0bWVudHMve2NvbW1pdG1lbnRJZH0vdXRpbGl6YXRpb24SYwoKR2V0TWV0cmljcxIgLmJsdWVhcGkuZ2MudjEuR2V0TWV0cmljc1JlcXVlc3QaHi5ibHVlYXBpLmdjLnYxLk1ldHJpY3NSZXNwb25zZSITgtPkkwINEgsvdjEvbWV0cmljcxJxCg1MaXN0UmVzb3VyY2VzEiMuYmx1ZWFwaS5nYy52MS5MaXN0UmVzb3VyY2VzUmVxdWVzdBokLmJsdWVhcGkuZ2MudjEuTGlzdFJlc291cmNlc1Jlc3BvbnNlIhWC0+STAg8SDS92MS9yZXNvdXJjZXMSoQEKFUdldFJlc291cmNlRGFpbHlVc2FnZRIrLmJsdWVhcGkuZ2MudjEuR2V0UmVzb3VyY2VEYWlseVVzYWdlUmVxdWVzdBosLmJsdWVhcGkuZ2MudjEuR2V0UmVzb3VyY2VEYWlseVVzYWdlUmVzcG9uc2UiLYLT5JMCJxIlL3YxL3Jlc291cmNlcy97cmVzb3VyY2VJZH0vZGFpbHl1c2FnZRKbAQoXTGlzdFJlc2VydmFibGVSZXNvdXJjZXMSLS5ibHVlYXBpLmdjLnYxLkxpc3RSZXNlcnZhYmxlUmVzb3VyY2VzUmVxdWVzdBouLmJsdWVhcGkuZ2MudjEuTGlzdFJlc2VydmFibGVSZXNvdXJjZXNSZXNwb25zZSIhgtPkkwIbEhkvdjEvY29tbWl0bWVudHMvcmVzb3VyY2VzEqgBChpMaXN0UHVyY2hhc2VQbGFuc0J5U2VnbWVudBIwLmJsdWVhcGkuZ2MudjEuTGlzdFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXF1ZXN0GjEuYmx1ZWFwaS5nYy52MS5MaXN0UHVyY2hhc2VQbGFuc0J5U2VnbWVudFJlc3BvbnNlIiWC0+STAh8SHS92MS9jb21taXRtZW50cy9wdXJjaGFzZXBsYW5zEsQBCiBHZXRVcGRhdGVkUHVyY2hhc2VQbGFuc0J5U2VnbWVudBI2LmJsdWVhcGkuZ2MudjEuR2V0VXBkYXRlZFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXF1ZXN0GjcuYmx1ZWFwaS5nYy52MS5HZXRVcGRhdGVkUHVyY2hhc2VQbGFuc0J5U2VnbWVudFJlc3BvbnNlIi+C0+STAik6ASoiJC92MS9jb21taXRtZW50cy9wdXJjaGFzZXBsYW5zOnVwZGF0ZRKoAQoXR2V0UHVyY2hhc2VQbGFuc0RldGFpbHMSLS5ibHVlYXBpLmdjLnYxLkdldFB1cmNoYXNlUGxhbnNEZXRhaWxzUmVxdWVzdBouLmJsdWVhcGkuZ2MudjEuR2V0UHVyY2hhc2VQbGFuc0RldGFpbHNSZXNwb25zZSIugtPkkwIoEiYvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucy97cGxhbklkfRKrAQoaU2F2ZUNvbW1pdG1lbnRzUGxhbkFzRHJhZnQSMC5ibHVlYXBpLmdjLnYxLlNhdmVDb21taXRtZW50c1BsYW5Bc0RyYWZ0UmVxdWVzdBoiLmJsdWVhcGkuZ2MudjEuRGVmYXVsdFB1cmNoYXNlUGxhbiI3gtPkkwIxOgEqIiwvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucy9kcmFmdC97cGxhbklkfRKiAQoWTGlzdERyYWZ0UHVyY2hhc2VQbGFucxIsLmJsdWVhcGkuZ2MudjEuTGlzdERyYWZ0UHVyY2hhc2VQbGFuc1JlcXVlc3QaLS5ibHVlYXBpLmdjLnYxLkxpc3REcmFmdFB1cmNoYXNlUGxhbnNSZXNwb25zZSIrgtPkkwIlEiMvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucy9kcmFmdBKzAQoXRGVsZXRlRHJhZnRQdXJjaGFzZVBsYW4SLS5ibHVlYXBpLmdjLnYxLkRlbGV0ZURyYWZ0UHVyY2hhc2VQbGFuUmVxdWVzdBouLmJsdWVhcGkuZ2MudjEuRGVsZXRlRHJhZnRQdXJjaGFzZVBsYW5SZXNwb25zZSI5gtPkkwIzKjEvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucy9kcmFmdC97ZHJhZnRQbGFuSWR9EroBChtHZXRBdmFpbGFibGVDb21taXRtZW50VHlwZXMSMS5ibHVlYXBpLmdjLnYxLkdldEF2YWlsYWJsZUNvbW1pdG1lbnRUeXBlc1JlcXVlc3QaMi5ibHVlYXBpLmdjLnYxLkdldEF2YWlsYWJsZUNvbW1pdG1lbnRUeXBlc1Jlc3BvbnNlIjSC0+STAi4SLC92MS9jb21taXRtZW50cy9wdXJjaGFzZXBsYW5zL2F2YWlsYWJsZXR5cGVzErIBChpDcmVhdGVDdXN0b21Db21taXRtZW50UGxhbhIwLmJsdWVhcGkuZ2MudjEuQ3JlYXRlQ3VzdG9tQ29tbWl0bWVudFBsYW5SZXF1ZXN0GjEuYmx1ZWFwaS5nYy52MS5DcmVhdGVDdXN0b21Db21taXRtZW50UGxhblJlc3BvbnNlIi+C0+STAik6ASoiJC92MS9jb21taXRtZW50cy9wdXJjaGFzZXBsYW5zL2N1c3RvbRJvCgtSZWdpc3Rlck9yZxIhLmJsdWVhcGkuZ2MudjEuUmVnaXN0ZXJPcmdSZXF1ZXN0GiIuYmx1ZWFwaS5nYy52MS5SZWdpc3Rlck9yZ1Jlc3BvbnNlIhmC0+STAhM6ASoiDi92MS9vbmJvYXJkaW5nEo4BChJTdGFydEF3c09uYm9hcmRpbmcSKC5ibHVlYXBpLmdjLnYxLlN0YXJ0QXdzT25ib2FyZGluZ1JlcXVlc3QaKS5ibHVlYXBpLmdjLnYxLlN0YXJ0QXdzT25ib2FyZGluZ1Jlc3BvbnNlIiOC0+STAh06ASoiGC92MS9vbmJvYXJkaW5nL2F3cy9zdGFydBK7AQocR2V0QXdzQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZRIyLmJsdWVhcGkuZ2MudjEuR2V0QXdzQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZVJlcXVlc3QaMy5ibHVlYXBpLmdjLnYxLkdldEF3c0Nsb3VkRm9ybWF0aW9uVGVtcGxhdGVSZXNwb25zZSIygtPkkwIsEiovdjEvb25ib2FyZGluZy9hd3MvY2xvdWRmb3JtYXRpb24vdGVtcGxhdGUSqQEKFEdldEF3c0xhdW5jaFN0YWNrVXJsEiouYmx1ZWFwaS5nYy52MS5HZXRBd3NMYXVuY2hTdGFja1VybFJlcXVlc3QaKy5ibHVlYXBpLmdjLnYxLkdldEF3c0xhdW5jaFN0YWNrVXJsUmVzcG9uc2UiOILT5JMCMhIwL3YxL29uYm9hcmRpbmcvYXdzL2Nsb3VkZm9ybWF0aW9uL2xhdW5jaHN0YWNrdXJsEpIBChNWZXJpZnlBd3NPbmJvYXJkaW5nEikuYmx1ZWFwaS5nYy52MS5WZXJpZnlBd3NPbmJvYXJkaW5nUmVxdWVzdBoqLmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlIiSC0+STAh46ASoiGS92MS9vbmJvYXJkaW5nL2F3cy92ZXJpZnkSkwEKE0dldE9uYm9hcmRpbmdTdGF0dXMSKS5ibHVlYXBpLmdjLnYxLkdldE9uYm9hcmRpbmdTdGF0dXNSZXF1ZXN0GiouYmx1ZWFwaS5nYy52MS5HZXRPbmJvYXJkaW5nU3RhdHVzUmVzcG9uc2UiJYLT5JMCHzoBKiIaL3YxL29uYm9hcmRpbmcvc3RhdHVzOnJlYWQSiAEKEUxpc3RQYXllckFjY291bnRzEicuYmx1ZWFwaS5nYy52MS5MaXN0UGF5ZXJBY2NvdW50c1JlcXVlc3QaKC5ibHVlYXBpLmdjLnYxLkxpc3RQYXllckFjY291bnRzUmVzcG9uc2UiIILT5JMCGhIYL3YxL21hbmFnZW1lbnRzL2FjY291bnRzEqYBChZTZXRQYXllckFjY291bnRFbmFibGVkEiwuYmx1ZWFwaS5nYy52MS5TZXRQYXllckFjY291bnRFbmFibGVkUmVxdWVzdBotLmJsdWVhcGkuZ2MudjEuU2V0UGF5ZXJBY2NvdW50RW5hYmxlZFJlc3BvbnNlIi+C0+STAik6ASoiJC92MS9tYW5hZ2VtZW50cy9hY2NvdW50cy97Y29tcGFueUlkfRKbAQoVR2V0UGF5ZXJBY2NvdW50U3RhdHVzEisuYmx1ZWFwaS5nYy52MS5HZXRQYXllckFjY291bnRTdGF0dXNSZXF1ZXN0GiwuYmx1ZWFwaS5nYy52MS5HZXRQYXllckFjY291bnRTdGF0dXNSZXNwb25zZSIngtPkkwIhEh8vdjEvbWFuYWdlbWVudHMvYWNjb3VudHMvc3RhdHVzEo0BChFMaXN0QmlsbGluZ0dyb3VwcxInLmJsdWVhcGkuZ2MudjEuTGlzdEJpbGxpbmdHcm91cHNSZXF1ZXN0GiguYmx1ZWFwaS5nYy52MS5MaXN0QmlsbGluZ0dyb3Vwc1Jlc3BvbnNlIiWC0+STAh8SHS92MS9tYW5hZ2VtZW50cy9iaWxsaW5nZ3JvdXBzEqgBChVTZXRCaWxsaW5nR3JvdXBTdGF0dXMSKy5ibHVlYXBpLmdjLnYxLlNldEJpbGxpbmdHcm91cFN0YXR1c1JlcXVlc3QaLC5ibHVlYXBpLmdjLnYxLlNldEJpbGxpbmdHcm91cFN0YXR1c1Jlc3BvbnNlIjSC0+STAi46ASoiKS92MS9tYW5hZ2VtZW50cy9iaWxsaW5nZ3JvdXBzL3tjb21wYW55SWR9EqABChVHZXRCaWxsaW5nR3JvdXBTdGF0dXMSKy5ibHVlYXBpLmdjLnYxLkdldEJpbGxpbmdHcm91cFN0YXR1c1JlcXVlc3QaLC5ibHVlYXBpLmdjLnYxLkdldEJpbGxpbmdHcm91cFN0YXR1c1Jlc3BvbnNlIiyC0+STAiYSJC92MS9tYW5hZ2VtZW50cy9iaWxsaW5nZ3JvdXBzL3N0YXR1cxKgAQoUVmFsaWRhdGVCaWxsaW5nR3JvdXASKi5ibHVlYXBpLmdjLnYxLlZhbGlkYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBorLmJsdWVhcGkuZ2MudjEuVmFsaWRhdGVCaWxsaW5nR3JvdXBSZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvb25ib2FyZGluZy9iaWxsaW5nZ3JvdXA6dmFsaWRhdGUSowEKEkdldEF3c1ByaXZhdGVPZmZlchIoLmJsdWVhcGkuZ2MudjEuR2V0QXdzUHJpdmF0ZU9mZmVyUmVxdWVzdBopLmJsdWVhcGkuZ2MudjEuR2V0QXdzUHJpdmF0ZU9mZmVyUmVzcG9uc2UiOILT5JMCMhIwL3YxL29uYm9hcmRpbmcvYXdzL3ByaXZhdGVvZmZlci97cGF5ZXJBY2NvdW50SWR9Es8BCiJHZXRHdWFyYW50ZWVkQ29tbWl0bWVudFRlbXBsYXRlVXJsEjguYmx1ZWFwaS5nYy52MS5HZXRHdWFyYW50ZWVkQ29tbWl0bWVudFRlbXBsYXRlVXJsUmVxdWVzdBo5LmJsdWVhcGkuZ2MudjEuR2V0R3VhcmFudGVlZENvbW1pdG1lbnRUZW1wbGF0ZVVybFJlc3BvbnNlIjSC0+STAi4SLC92MS9vbmJvYXJkaW5nL2F3cy9jZnRlbXBsYXRlL2d1YXJhbnRlZWQ6dXJsEsgBCiBDcmVhdGVHdWFyYW50ZWVkQ29tbWl0bWVudEFjY2VzcxI2LmJsdWVhcGkuZ2MudjEuQ3JlYXRlR3VhcmFudGVlZENvbW1pdG1lbnRBY2Nlc3NSZXF1ZXN0GjcuYmx1ZWFwaS5nYy52MS5DcmVhdGVHdWFyYW50ZWVkQ29tbWl0bWVudEFjY2Vzc1Jlc3BvbnNlIjOC0+STAi06ASoiKC92MS9vbmJvYXJkaW5nL2F3cy9jZnRlbXBsYXRlL2d1YXJhbnRlZWQSlgEKFFN0YXJ0QXp1cmVPbmJvYXJkaW5nEiouYmx1ZWFwaS5nYy52MS5TdGFydEF6dXJlT25ib2FyZGluZ1JlcXVlc3QaKy5ibHVlYXBpLmdjLnYxLlN0YXJ0QXp1cmVPbmJvYXJkaW5nUmVzcG9uc2UiJYLT5JMCHzoBKiIaL3YxL29uYm9hcmRpbmcvYXp1cmUvc3RhcnQSoAEKFVVwZGF0ZUF6dXJlT25ib2FyZGluZxIrLmJsdWVhcGkuZ2MudjEuVXBkYXRlQXp1cmVPbmJvYXJkaW5nUmVxdWVzdBojLmJsdWVhcGkuZ2MudjEuQXp1cmVPbmJvYXJkaW5nU3RhdGUiNYLT5JMCLzoBKiIqL3YxL29uYm9hcmRpbmcvYXp1cmUve29uYm9hcmRpbmdJZH06dXBkYXRlErMBChlHZXRBenVyZU9uYm9hcmRpbmdBdXRoVXJsEi8uYmx1ZWFwaS5nYy52MS5HZXRBenVyZU9uYm9hcmRpbmdBdXRoVXJsUmVxdWVzdBowLmJsdWVhcGkuZ2MudjEuR2V0QXp1cmVPbmJvYXJkaW5nQXV0aFVybFJlc3BvbnNlIjOC0+STAi0SKy92MS9vbmJvYXJkaW5nL2F6dXJlL3tvbmJvYXJkaW5nSWR9L2F1dGh1cmwSpgEKF1ZhbGlkYXRlQXp1cmVBcHBJbnN0YWxsEi0uYmx1ZWFwaS5nYy52MS5WYWxpZGF0ZUF6dXJlQXBwSW5zdGFsbFJlcXVlc3QaIy5ibHVlYXBpLmdjLnYxLkF6dXJlT25ib2FyZGluZ1N0YXRlIjeC0+STAjE6ASoiLC92MS9vbmJvYXJkaW5nL2F6dXJlL3tvbmJvYXJkaW5nSWR9L3ZhbGlkYXRlEroBChtMaXN0QXp1cmVPbmJvYXJkaW5nQWNjb3VudHMSMS5ibHVlYXBpLmdjLnYxLkxpc3RBenVyZU9uYm9hcmRpbmdBY2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmdjLnYxLkxpc3RBenVyZU9uYm9hcmRpbmdBY2NvdW50c1Jlc3BvbnNlIjSC0+STAi4SLC92MS9vbmJvYXJkaW5nL2F6dXJlL3tvbmJvYXJkaW5nSWR9L2FjY291bnRzEqIBChZDcmVhdGVBenVyZUludGVncmF0aW9uEiwuYmx1ZWFwaS5nYy52MS5DcmVhdGVBenVyZUludGVncmF0aW9uUmVxdWVzdBotLmJsdWVhcGkuZ2MudjEuQ3JlYXRlQXp1cmVJbnRlZ3JhdGlvblJlc3BvbnNlIiuC0+STAiU6ASoiIC92MS9vbmJvYXJkaW5nL2F6dXJlL2ludGVncmF0aW9uEp0BChVMaXN0QXp1cmVJbnRlZ3JhdGlvbnMSKy5ibHVlYXBpLmdjLnYxLkxpc3RBenVyZUludGVncmF0aW9uc1JlcXVlc3QaLC5ibHVlYXBpLmdjLnYxLkxpc3RBenVyZUludGVncmF0aW9uc1Jlc3BvbnNlIimC0+STAiMSIS92MS9vbmJvYXJkaW5nL2F6dXJlL2ludGVncmF0aW9ucxqiAZJBngESUChBbHBoYSkgR3VhcmFudGVlZENvbW1pdG1lbnRzIEFQSS4gQmFzZSBVUkw6IGh0dHBzOi8vYXBpLmFscGhhdXMuY2xvdWQvbS9ibHVlL2djGkoKElNlcnZpY2UgZGVmaW5pdGlvbhI0aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvdHJlZS9tYWluL2djL0JVChRjbG91ZC5hbHBoYXVzLmFwaS5nY0IaR3VhcmFudGVlZENvbW1pdG1lbnRzUHJvdG9aIWdpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS9nY2IGcHJvdG8z", [file_google_api_annotations, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
18
+ fileDesc("Cg5nYy92MS9nYy5wcm90bxINYmx1ZWFwaS5nYy52MSIRCg9MaXN0T3Jnc1JlcXVlc3QiLAoaQ29tbWl0bWVudFBsYW5BcHBseVJlcXVlc3QSDgoGcGxhbklkGAEgASgJIhgKFkxpc3RDb21taXRtZW50c1JlcXVlc3QiZwoaR2V0Q29tbWl0bWVudHNDaGFydFJlcXVlc3QSFAoMY29tbWl0bWVudElkGAEgASgJEg8KB2dyb3VwQnkYAiABKAkSEQoJc3RhcnREYXRlGAMgASgJEg8KB2VuZERhdGUYBCABKAkiOAogR2V0Q29tbWl0bWVudHNVdGlsaXphdGlvblJlcXVlc3QSFAoMY29tbWl0bWVudElkGAEgASgJIh4KHFJlYWRDb21taXRtZW50UmVwb3J0c1JlcXVlc3QiOgojUmVhZENvbW1pdG1lbnRSZXBvcnRBY2NvdW50c1JlcXVlc3QSEwoFbW9udGgYASABKAlCBOJBAQIiPgoRR2V0TWV0cmljc1JlcXVlc3QSKQoIcHJvdmlkZXIYASABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyIqMBChRMaXN0UmVzb3VyY2VzUmVxdWVzdBIpCghwcm92aWRlchgBIAEoDjIXLmJsdWVhcGkuZ2MudjEuUHJvdmlkZXISEQoJc2VnbWVudElkGAIgASgJEg4KBnNlYXJjaBgDIAEoCRIMCgRkZXNjGAQgASgIEg8KB29yZGVyQnkYBSABKAkSDAoEcGFnZRgGIAEoBRIQCghwYWdlU2l6ZRgHIAEoBSKMAQocR2V0UmVzb3VyY2VEYWlseVVzYWdlUmVxdWVzdBISCgpyZXNvdXJjZUlkGAEgASgJEhEKCXN0YXJ0RGF0ZRgCIAEoCRIPCgdlbmREYXRlGAMgASgJEhQKDGNhdGFsb2dTa3VJZBgEIAEoCRIMCgRwYWdlGAUgASgFEhAKCHBhZ2VTaXplGAYgASgFIjMKHkxpc3RSZXNlcnZhYmxlUmVzb3VyY2VzUmVxdWVzdBIRCgljb21wYW55SWQYASABKAkiIwohTGlzdFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXF1ZXN0IjAKHkdldFB1cmNoYXNlUGxhbnNEZXRhaWxzUmVxdWVzdBIOCgZwbGFuSWQYASABKAkiKQonR2V0VXBkYXRlZFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXF1ZXN0IiYKB09yZ1VzZXISDQoFZW1haWwYASABKAkSDAoEcm9sZRgCIAEoCSIsCgpNZW1iZXJzaGlwEgwKBHJvbGUYASABKAkSEAoIdXNlcm5hbWUYAiABKAkiYgoHQWRkcmVzcxINCgVsaW5lMRgBIAEoCRIMCgRjaXR5GAIgASgJEg0KBXN0YXRlGAMgASgJEgsKA3ppcBgEIAEoCRIPCgdjb3VudHJ5GAUgASgJEg0KBWxpbmUyGAYgASgJIlQKDkF3c0V4aXN0aW5nQ3VyEg4KBnJlZ2lvbhgBIAEoCRIOCgZidWNrZXQYAiABKAkSDgoGcHJlZml4GAMgASgJEhIKCnJlcG9ydE5hbWUYBCABKAkiSwoPVGVybXNBY2NlcHRhbmNlEhAKCGFjY2VwdGVkGAEgASgIEhIKCmFjY2VwdGVkQXQYAiABKAkSEgoKYWNjZXB0ZWRCeRgDIAEoCSKLAgoSUmVnaXN0ZXJPcmdSZXF1ZXN0EgwKBG5hbWUYASABKAkSGwoTbGFicmFTdWJzY3JpcHRpb25JZBgCIAEoCRIlCgV1c2VycxgDIAMoCzIWLmJsdWVhcGkuZ2MudjEuT3JnVXNlchIOCgZkb21haW4YBCABKAkSLgoOcHJpbWFyeUFkZHJlc3MYBSABKAsyFi5ibHVlYXBpLmdjLnYxLkFkZHJlc3MSHwoXYXdzTWFya2V0cGxhY2VPZmZlckxpbmsYBiABKAkSIQoZYXp1cmVNYXJrZXRwbGFjZU9mZmVyTGluaxgHIAEoCRIfChdnY3BNYXJrZXRwbGFjZU9mZmVyTGluaxgIIAEoCSKJAQoZU3RhcnRBd3NPbmJvYXJkaW5nUmVxdWVzdBIWCg5iaWxsaW5nR3JvdXBJZBgBIAEoCRIRCgljb21wYW55SWQYAiABKAkSDwoHZ2NPcmdJZBgDIAEoCRIWCg5wYXllckFjY291bnRJZBgEIAEoCRIYChBwYXllckFjY291bnROYW1lGAUgASgJIpMBCiNHZXRBd3NDbG91ZEZvcm1hdGlvblRlbXBsYXRlUmVxdWVzdBIWCg5iaWxsaW5nR3JvdXBJZBgBIAEoCRIRCgljb21wYW55SWQYAiABKAkSDwoHZ2NPcmdJZBgDIAEoCRIWCg5wYXllckFjY291bnRJZBgEIAEoCRIYChBwYXllckFjY291bnROYW1lGAUgASgJIosBChtHZXRBd3NMYXVuY2hTdGFja1VybFJlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSEQoJY29tcGFueUlkGAIgASgJEg8KB2djT3JnSWQYAyABKAkSFgoOcGF5ZXJBY2NvdW50SWQYBCABKAkSGAoQcGF5ZXJBY2NvdW50TmFtZRgFIAEoCSK1AQoaVmVyaWZ5QXdzT25ib2FyZGluZ1JlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSEQoJY29tcGFueUlkGAIgASgJEg8KB2djT3JnSWQYAyABKAkSFAoMb25ib2FyZGluZ0lkGAQgASgJEhEKCWFjY291bnRJZBgFIAEoCRIyCgtleGlzdGluZ0N1chgGIAEoCzIdLmJsdWVhcGkuZ2MudjEuQXdzRXhpc3RpbmdDdXIiXwoaR2V0T25ib2FyZGluZ1N0YXR1c1JlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSEQoJY29tcGFueUlkGAIgASgJEhYKDnBheWVyQWNjb3VudElkGAMgASgJIhoKGExpc3RQYXllckFjY291bnRzUmVxdWVzdCJDCh1TZXRQYXllckFjY291bnRFbmFibGVkUmVxdWVzdBIRCgljb21wYW55SWQYASABKAkSDwoHZW5hYmxlZBgCIAEoCCIeChxHZXRQYXllckFjY291bnRTdGF0dXNSZXF1ZXN0IhoKGExpc3RCaWxsaW5nR3JvdXBzUmVxdWVzdCJWChxTZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXF1ZXN0EhEKCWNvbXBhbnlJZBgBIAEoCRIPCgdlbmFibGVkGAIgASgIEhIKCm5ld1ZlcnNpb24YAyABKAgiHgocR2V0QmlsbGluZ0dyb3VwU3RhdHVzUmVxdWVzdCJEChtWYWxpZGF0ZUJpbGxpbmdHcm91cFJlcXVlc3QSEQoJY29tcGFueUlkGAEgASgJEhIKCm5ld1ZlcnNpb24YAiABKAgiRQoZR2V0QXdzUHJpdmF0ZU9mZmVyUmVxdWVzdBIWCg5wYXllckFjY291bnRJZBgBIAEoCRIQCghyZWNyZWF0ZRgCIAEoCCIgCh5BY2NlcHRCaWxsaW5nR3JvdXBUZXJtc1JlcXVlc3QiwgcKIVNhdmVDb21taXRtZW50c1BsYW5Bc0RyYWZ0UmVxdWVzdBIOCgZwbGFuSWQYASABKAkSFgoOcmVzZXJ2YXRpb25JZHMYAiADKAkSEwoLcmVzb3VyY2VJZHMYAyADKAkSFgoObWF4VXBmcm9udENvc3QYBCABKAESKQoIcHJvdmlkZXIYBSABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyEg8KB2VuZERhdGUYBiABKAkSEQoJc3RhcnREYXRlGAcgASgJEhEKCXNlZ21lbnRJZBgIIAEoCRIOCgZzdGF0dXMYCSABKAkSEwoLZGVzY3JpcHRpb24YCiABKAkSDAoEbmFtZRgLIAEoCRIeChZwcmVmZXJyZWRQYXltZW50T3B0aW9uGAwgASgJEh0KFWluY2x1ZGVkQ29udHJhY3RUZXJtcxgNIAMoCRI6ChVpbmNsdWRlZENvbnRyYWN0U3BlY3MYDiADKAsyGy5ibHVlYXBpLmdjLnYxLkNvbnRyYWN0U3BlYxIqCgpjb3ZlcmFnZUlkGA8gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhEKCWNyZWF0ZWRBdBgQIAEoCRIpCgljcmVhdGVkQnkYESABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEgoKZGF0YVNvdXJjZRgSIAEoCRIvCg9leGVjdXRpb25Qb2xpY3kYEyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFgoOZmxhZ2dlZEFjdGlvbnMYFCADKAkSCgoCaWQYFSABKAkSFQoNaXNDYWxjdWxhdGluZxgWIAEoCBIRCglpc0RlZmF1bHQYFyABKAgSEAoIaXNMb2NrZWQYGCABKAgSFQoNaXNSZWNvbW1lbmRlZBgZIAEoCBIRCglpc1JlbmV3YWwYGiABKAgSDwoHaXNTYXZlZBgbIAEoCBIUCgxsYXN0TW9kaWZpZWQYHCABKAkSEgoKbWV0YVBsYW5JZBgdIAEoCRI6ChptaW5pbXVtVXBmcm9udEludGVyZXN0UmF0ZRgeIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRINCgVvcmdJZBgfIAEoCRIQCghwbGFuVHlwZRggIAEoCRI+Ch5yZWNvbW1lbmRXaXRoaW5Db3ZlcmVkQWNjb3VudHMYISABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSJwoHc2VnbWVudBgiIAEoCzIWLmJsdWVhcGkuZ2MudjEuU2VnbWVudCJDCh1MaXN0RHJhZnRQdXJjaGFzZVBsYW5zUmVxdWVzdBIPCgdpc0RyYWZ0GAEgASgIEhEKCWNvbXBhbnlJZBgCIAEoCSJICh5EZWxldGVEcmFmdFB1cmNoYXNlUGxhblJlcXVlc3QSEwoLZHJhZnRQbGFuSWQYASABKAkSEQoJY29tcGFueUlkGAIgASgJIjYKIkdldEF2YWlsYWJsZUNvbW1pdG1lbnRUeXBlc1JlcXVlc3QSEAoIcHJvdmlkZXIYASABKAkiowIKIUNyZWF0ZUN1c3RvbUNvbW1pdG1lbnRQbGFuUmVxdWVzdBIQCghwcm92aWRlchgBIAEoCRIRCglzdGFydERhdGUYAiABKAkSDwoHZW5kRGF0ZRgDIAEoCRIRCgljb21wYW55SWQYBCABKAkSDgoGc3RhdHVzGAUgASgJEhMKC2Rlc2NyaXB0aW9uGAYgASgJEgwKBG5hbWUYByABKAkSOgoVaW5jbHVkZWRDb250cmFjdFNwZWNzGAggAygLMhsuYmx1ZWFwaS5nYy52MS5Db250cmFjdFNwZWMSHQoVaW5jbHVkZWRDb250cmFjdFRlcm1zGAkgAygJEhMKC3Jlc291cmNlSWRzGAogAygJEhIKCmNvbXBhbnlJZHMYCyADKAkiPwopR2V0R3VhcmFudGVlZENvbW1pdG1lbnRUZW1wbGF0ZVVybFJlcXVlc3QSEgoKZXh0ZXJuYWxJZBgBIAEoCSJNCidDcmVhdGVHdWFyYW50ZWVkQ29tbWl0bWVudEFjY2Vzc1JlcXVlc3QSDgoGdGFyZ2V0GAEgASgJEhIKCmV4dGVybmFsSWQYAiABKAkigwEKG1N0YXJ0QXp1cmVPbmJvYXJkaW5nUmVxdWVzdBIWCg5iaWxsaW5nR3JvdXBJZBgBIAEoCRIRCgljb21wYW55SWQYAiABKAkSDwoHZ2NPcmdJZBgDIAEoCRIQCgh0ZW5hbnRJZBgEIAEoCRIWCg5zdWJzY3JpcHRpb25JZBgFIAEoCSLSBQocVXBkYXRlQXp1cmVPbmJvYXJkaW5nUmVxdWVzdBIUCgxvbmJvYXJkaW5nSWQYASABKAkSDwoHZ2NPcmdJZBgCIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgDIAEoCRIRCgljb21wYW55SWQYBCABKAkSEAoIdGVuYW50SWQYBSABKAkSFgoOc3Vic2NyaXB0aW9uSWQYBiABKAkSEwoLYWNjb3VudEtpbmQYByABKAkSEgoKYWNjb3VudElkcxgIIAMoCRIVCg1ibG9iQ29udGFpbmVyGAkgASgJEhUKDXJlc291cmNlR3JvdXAYCiABKAkSFgoOc3RvcmFnZUFjY291bnQYCyABKAkSEAoIcm9sZU5hbWUYDCABKAkSMwoTcmVzb3VyY2VHcm91cFJlZ2lvbhgNIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI0ChRzdG9yYWdlQWNjb3VudFJlZ2lvbhgOIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIxChFyZXNvdXJjZUdyb3VwVGFncxgPIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIyChJzdG9yYWdlQWNjb3VudFRhZ3MYECABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEQoJY29tcGxldGVkGBEgASgIEhEKCWNyZWF0ZWRBdBgSIAEoCRI6CgljcmVhdGVkQnkYEyABKAsyJy5ibHVlYXBpLmdjLnYxLkF6dXJlT25ib2FyZGluZ0NyZWF0ZWRCeRIrCgtpbnRlZ3JhdGlvbhgUIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIVCg1pbnRlZ3JhdGlvbklkGBUgASgJEhAKCHByb3ZpZGVyGBYgASgJEisKA29yZxgXIAEoCzIeLmJsdWVhcGkuZ2MudjEuQXp1cmVBcmNoZXJhT3JnInMKIEdldEF6dXJlT25ib2FyZGluZ0F1dGhVcmxSZXF1ZXN0EhQKDG9uYm9hcmRpbmdJZBgBIAEoCRIPCgdnY09yZ0lkGAIgASgJEhAKCHRlbmFudElkGAMgASgJEhYKDnN1YnNjcmlwdGlvbklkGAQgASgJIrcFCh5WYWxpZGF0ZUF6dXJlQXBwSW5zdGFsbFJlcXVlc3QSFAoMb25ib2FyZGluZ0lkGAEgASgJEg8KB2djT3JnSWQYAiABKAkSDAoEdHlwZRgDIAEoCRIQCgh0ZW5hbnRJZBgEIAEoCRIWCg5zdWJzY3JpcHRpb25JZBgFIAEoCRITCgthY2NvdW50S2luZBgGIAEoCRISCgphY2NvdW50SWRzGAcgAygJEhUKDWJsb2JDb250YWluZXIYCCABKAkSFQoNcmVzb3VyY2VHcm91cBgJIAEoCRIWCg5zdG9yYWdlQWNjb3VudBgKIAEoCRIQCghyb2xlTmFtZRgLIAEoCRIzChNyZXNvdXJjZUdyb3VwUmVnaW9uGAwgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjQKFHN0b3JhZ2VBY2NvdW50UmVnaW9uGA0gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjEKEXJlc291cmNlR3JvdXBUYWdzGA4gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEjIKEnN0b3JhZ2VBY2NvdW50VGFncxgPIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIRCgljb21wbGV0ZWQYECABKAgSEQoJY3JlYXRlZEF0GBEgASgJEjoKCWNyZWF0ZWRCeRgSIAEoCzInLmJsdWVhcGkuZ2MudjEuQXp1cmVPbmJvYXJkaW5nQ3JlYXRlZEJ5EisKC2ludGVncmF0aW9uGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhUKDWludGVncmF0aW9uSWQYFCABKAkSEAoIcHJvdmlkZXIYFSABKAkSKwoDb3JnGBYgASgLMh4uYmx1ZWFwaS5nYy52MS5BenVyZUFyY2hlcmFPcmciSwoiTGlzdEF6dXJlT25ib2FyZGluZ0FjY291bnRzUmVxdWVzdBIUCgxvbmJvYXJkaW5nSWQYASABKAkSDwoHZ2NPcmdJZBgCIAEoCSKUBAodQ3JlYXRlQXp1cmVJbnRlZ3JhdGlvblJlcXVlc3QSDwoHZ2NPcmdJZBgBIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIRCgljb21wYW55SWQYAyABKAkSFgoOcGF5ZXJBY2NvdW50SWQYBCABKAkSDAoEdHlwZRgFIAEoCRIQCgh0ZW5hbnRJZBgGIAEoCRIWCg5zdWJzY3JpcHRpb25JZBgHIAEoCRIUCgxvbmJvYXJkaW5nSWQYCCABKAkSEwoLYWNjb3VudEtpbmQYCSABKAkSEgoKYWNjb3VudElkcxgKIAMoCRIVCg1ibG9iQ29udGFpbmVyGAsgASgJEhUKDXJlc291cmNlR3JvdXAYDCABKAkSFgoOc3RvcmFnZUFjY291bnQYDSABKAkSEAoIcm9sZU5hbWUYDiABKAkSMwoTcmVzb3VyY2VHcm91cFJlZ2lvbhgPIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI0ChRzdG9yYWdlQWNjb3VudFJlZ2lvbhgQIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIxChFyZXNvdXJjZUdyb3VwVGFncxgRIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIyChJzdG9yYWdlQWNjb3VudFRhZ3MYEiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUiLwocTGlzdEF6dXJlSW50ZWdyYXRpb25zUmVxdWVzdBIPCgdnY09yZ0lkGAEgASgJIjEKA09yZxINCgVvcmdJZBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWVtYWlsGAMgASgJIvMEChVDb21taXRtZW50UGxhbkRldGFpbHMSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRINCgVvcmdJZBgEIAEoCRIRCgljcmVhdGVkQXQYBSABKAkSFQoNaXNDYWxjdWxhdGluZxgGIAEoCBIOCgZzdGF0dXMYByABKAkSDwoHbWF4VGVybRgIIAEoCRIhChljb3ZlcmVkT25kZW1hbmRDb3N0SG91cmx5GAkgASgBEiAKGGJlZm9yZU9uZGVtYW5kQ29zdEhvdXJseRgKIAEoARIgChhiZWZvcmVSZXNlcnZlZENvc3RIb3VybHkYCyABKAESGwoTYW1vcnRpemVkQ29zdEhvdXJseRgMIAEoARIbChNyZWN1cnJpbmdDb3N0SG91cmx5GA0gASgBEhkKEXVwZnJvbnRDb3N0SG91cmx5GA4gASgBEhgKEGJlZm9yZUNvc3RIb3VybHkYDyABKAESFwoPYWZ0ZXJDb3N0SG91cmx5GBAgASgBEhcKD3RvdGFsQ29zdEhvdXJseRgRIAEoARIVCg1zYXZpbmdzSG91cmx5GBIgASgBEhEKCWZlZUhvdXJseRgTIAEoARIaChJjb21taXRtZW50Q292ZXJhZ2UYFCABKAESHQoVbWluaW11bUNvbW1pdG1lbnRDb3N0GBUgASgBEhYKDmJyZWFrZXZlbkhvdXJzGBYgASgBEhQKDHRvdGFsU2F2aW5ncxgXIAEoARIWCg5tb250aGx5U2F2aW5ncxgYIAEoARIeChZ0b3RhbE1vbnRobHlCZWZvcmVDb3N0GBkgASgBIrQGChZDb21taXRtZW50UGxhbkxpbmVJdGVtEgoKAmlkGAEgASgJEg4KBnBsYW5JZBgCIAEoCRIPCgdvZmZlcklkGAMgASgJEhcKD2xlYXNlTWVudUl0ZW1JZBgEIAEoCRIRCglhY2NvdW50SWQYBSABKAkSGwoTcmVjb21tZW5kZWRRdWFudGl0eRgGIAEoARIYChBzZWxlY3RlZFF1YW50aXR5GAcgASgBEh0KFXJlY29tbWVuZGVkQ29tbWl0bWVudBgIIAEoARIaChJzZWxlY3RlZENvbW1pdG1lbnQYCSABKAESEgoKaXNTZWxlY3RlZBgKIAEoCBIaChJhZnRlckFtb3J0aXplZENvc3QYCyABKAESEwoLdXBmcm9udENvc3QYDCABKAESFQoNcmVjdXJyaW5nQ29zdBgNIAEoARISCgpiZWZvcmVDb3N0GA4gASgBEhoKEmJlZm9yZU9uZGVtYW5kQ29zdBgPIAEoARIaChJiZWZvcmVSZXNlcnZlZENvc3QYECABKAESGwoTY292ZXJlZE9uZGVtYW5kQ29zdBgRIAEoARIZChFhZnRlckNvdmVyZWRVbml0cxgSIAEoARIRCgl0b3RhbENvc3QYEyABKAESEwoLbW9udGhseUNvc3QYFCABKAESDwoHc2F2aW5ncxgVIAEoARIWCg5tb250aGx5U2F2aW5ncxgWIAEoARIUCgx0b3RhbFNhdmluZ3MYFyABKAESCwoDZmVlGBggASgBEhQKDGRpc2NvdW50UmF0ZRgZIAEoARIWCg5icmVha2V2ZW5Ib3VycxgaIAEoARIUCgxjb250cmFjdFRlcm0YGyABKAkSFQoNcGF5bWVudE9wdGlvbhgcIAEoCRItCgxjb250cmFjdFNwZWMYHSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiYKBW9mZmVyGB4gASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIcChRyZW5ld2FsUmVzZXJ2YXRpb25JZBgfIAEoCRIUCgxjb3ZlcmVkVW5pdHMYICABKAESFQoNYW1vcnRpemVkQ29zdBghIAEoASLXBQobQ29tbWl0bWVudFBsYW5SZXNvdXJjZU1hdGNoEgoKAmlkGAEgASgJEhIKCnRvdGFsVW5pdHMYAiABKAESHAoUYmVmb3JlVW5jb3ZlcmVkVW5pdHMYAyABKAESGQoRYWZ0ZXJDb3ZlcmVkVW5pdHMYBCABKAESGwoTYWZ0ZXJVbmNvdmVyZWRVbml0cxgFIAEoARIVCg1vbmRlbWFuZFByaWNlGAYgASgBEhkKEWlmQWxsT25kZW1hbmRDb3N0GAcgASgBEhoKEmJlZm9yZU9uZGVtYW5kQ29zdBgIIAEoARIZChFhZnRlck9uZGVtYW5kQ29zdBgJIAEoARIbChNjb3ZlcmVkT25kZW1hbmRDb3N0GAogASgBEhoKEmJlZm9yZVJlc2VydmVkQ29zdBgLIAEoARIZChFhZnRlclJlc2VydmVkQ29zdBgMIAEoARISCgpiZWZvcmVDb3N0GA0gASgBEhEKCWFmdGVyQ29zdBgOIAEoARIZChFtb250aGx5QmVmb3JlQ29zdBgPIAEoARIYChBtb250aGx5QWZ0ZXJDb3N0GBAgASgBEiAKGG1vbnRobHlBZnRlclJlc2VydmVkQ29zdBgRIAEoARIgChhtb250aGx5QWZ0ZXJPbmRlbWFuZENvc3QYEiABKAESFgoOYXZlcmFnZVNhdmluZ3MYEyABKAESHQoVYXZlcmFnZU1vbnRobHlTYXZpbmdzGBQgASgBEhEKCXVzYWdlVHlwZRgVIAEoCRIQCghjb3ZlcmFnZRgWIAEoARIpCghyZXNvdXJjZRgXIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSFAoMY292ZXJlZFVuaXRzGBggASgBEhwKFGV4cGxhbmF0aW9uVW5tYXRjaGVkGBkgASgBEhQKDG9uZGVtYW5kQ29zdBgaIAEoARIUCgxyZXNlcnZlZENvc3QYGyABKAEi7gEKBUxlYXNlEgoKAmlkGAEgASgJEg0KBW9yZ0lkGAIgASgJEh0KFXByb3ZpZGVyUmVzZXJ2YXRpb25JZBgDIAEoCRIRCglhY2NvdW50SWQYBCABKAkSDgoGc3RhdHVzGAUgASgJEhEKCXN0YXJ0RGF0ZRgGIAEoCRIPCgdlbmREYXRlGAcgASgJEhIKCmxvY2tpbkRhdGUYCCABKAkSEwoLdXBmcm9udENvc3QYCSABKAESFQoNcmVjdXJyaW5nQ29zdBgKIAEoARIRCgljcmVhdGVkQXQYCyABKAkSEQoJdXBkYXRlZEF0GAwgASgJIkkKEERhaWx5VXRpbGl6YXRpb24SDAoEZGF0ZRgBIAEoCRITCgt1dGlsaXphdGlvbhgCIAEoARISCgpuZXRTYXZpbmdzGAMgASgBItAHCgpDb21taXRtZW50EgoKAmlkGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRIVCg1hbW9ydGl6ZWRDb3N0GAMgASgBEhgKEGJpbGxpbmdBY2NvdW50SWQYBCABKAkSEQoJY2FuUmViYXRlGAUgASgIEhQKDGNvbnRyYWN0VGVybRgGIAEoCRITCgtkaXNwbGF5TmFtZRgHIAEoCRIXCg9kdXJhdGlvblNlY29uZHMYCCABKAESHgoWZWZmZWN0aXZlSW5zdGFuY2VDb3VudBgJIAEoAxIPCgdlbmREYXRlGAogASgJEhUKDWluc3RhbmNlQ291bnQYCyABKAMSFgoOaW5zdGFuY2VGYW1pbHkYDCABKAkSFAoMaW5zdGFuY2VUeXBlGA0gASgJEhAKCGlzQWN0aXZlGA4gASgIEhIKCmlzRmxleGlibGUYDyABKAgSEAoIaXNMZWFzZWQYECABKAgSEQoJaXNNdWx0aUF6GBEgASgIEhcKD2xlYXNlTG9ja2luRGF0ZRgSIAEoCRISCgpsZWFzZVN0YXJ0GBMgASgJEhkKEWxlYXNlZERpc3BsYXlOYW1lGBQgASgJEhMKC21vbnRobHlDb3N0GBUgASgBEhYKDm1vbnRobHlTYXZpbmdzGBYgASgBEgwKBG5hbWUYFyABKAkSEgoKbmV0U2F2aW5ncxgYIAEoARISCgpvZmZlcmluZ0lkGBkgASgJEhUKDXBheW1lbnRPcHRpb24YGiABKAkSGAoQcG90ZW50aWFsU2F2aW5ncxgbIAEoARIaChJwcm9kdWN0RGVzY3JpcHRpb24YHCABKAkSEAoIcHJvdmlkZXIYHSABKAkSHgoWcHJvdmlkZXJSZXNlcnZhdGlvbl9pZBgeIAEoCRIVCg1yZWN1cnJpbmdDb3N0GB8gASgBEg4KBnJlZ2lvbhggIAEoCRITCgtyZW5ld2FsUGxhbhghIAEoCRIWCg5yZXNlcnZhdGlvbkVuZBgiIAEoCRIYChByZXNlcnZhdGlvblN0YXJ0GCMgASgJEhQKDHJ1bm5pbmdIb3VycxgkIAEoARIPCgdzYXZpbmdzGCUgASgBEhEKCXN0YXJ0RGF0ZRgmIAEoCRIOCgZzdGF0dXMYJyABKAkSHgoWdHJhbnNmZXJSZXNlcnZhdGlvbkVuZBgoIAEoCRIgChh0cmFuc2ZlclJlc2VydmF0aW9uU3RhcnQYKSABKAkSDAoEdHlwZRgqIAEoCRITCgt1cGZyb250Q29zdBgrIAEoARITCgt1dGlsaXphdGlvbhgsIAEoASJJChdMaXN0Q29tbWl0bWVudHNSZXNwb25zZRIuCgtjb21taXRtZW50cxgBIAMoCzIZLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudCJKChRDb21taXRtZW50c0NoYXJ0RGF0YRIMCgRkYXRlGAEgASgJEhAKCGNoYXJ0S2V5GAIgASgJEhIKCmNoYXJ0VmFsdWUYAyABKAEiTQoYQ29tbWl0bWVudHNDaGFydFJlc3BvbnNlEjEKBGRhdGEYASADKAsyIy5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnRzQ2hhcnREYXRhIvwBChpDb21taXRtZW50c1V0aWxpemF0aW9uRGF0YRIXCg91dGlsaXphdGlvbkRhdGUYASABKAkSDAoEY29zdBgCIAEoARITCgtjb3ZlcmVkQ29zdBgDIAEoARIPCgdncmlGZWVzGAQgASgBEhIKCm5ldFNhdmluZ3MYBSABKAESGAoQcG90ZW50aWFsU2F2aW5ncxgGIAEoARIeChZyZXNlcnZhdGlvblV0aWxpemF0aW9uGAcgASgBEhQKDHJ1bm5pbmdIb3VycxgIIAEoARIPCgdzYXZpbmdzGAkgASgBEhwKFHVudXRpbGl6ZWRDb21taXRtZW50GAogASgBIlkKHkNvbW1pdG1lbnRzVXRpbGl6YXRpb25SZXNwb25zZRI3CgRkYXRhGAEgAygLMikuYmx1ZWFwaS5nYy52MS5Db21taXRtZW50c1V0aWxpemF0aW9uRGF0YSLQAQoQQ29tbWl0bWVudFJlcG9ydBINCgVtb250aBgBIAEoCRIWCg5iaWxsVW5hZGp1c3RlZBgCIAEoARIVCg1iaWxsT3B0aW1pemVkGAMgASgBEhQKDGdyb3NzU2F2aW5ncxgEIAEoARITCgtyaXNrUHJlbWl1bRgFIAEoARIPCgdyZWJhdGVzGAYgASgBEhIKCm5ldFNhdmluZ3MYByABKAESFAoMcmV2ZW51ZVNoYXJlGAggASgBEhgKEHJldmVudWVTaGFyZVJhdGUYCSABKAEi6AEKF0NvbW1pdG1lbnRSZXBvcnRBY2NvdW50EhYKDmJpbGxpbmdHcm91cElkGAEgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEhMKC2FjY291bnROYW1lGAQgASgJEg0KBWNsb3VkGAUgASgJEhQKDGdyb3NzU2F2aW5ncxgGIAEoARITCgtyaXNrUHJlbWl1bRgHIAEoARIPCgdyZWJhdGVzGAggASgBEhIKCm5ldFNhdmluZ3MYCSABKAESFAoMcmV2ZW51ZVNoYXJlGAogASgBIs0DCg9NZXRyaWNzUmVzcG9uc2USFwoPbGlmZXRpbWVTYXZpbmdzGAEgASgBEhIKCm10ZFNhdmluZ3MYAiABKAESIQoZcHVyY2hhc2VBdXRvbWF0aW9uRW5hYmxlZBgDIAEoCBIgChhidXliYWNrQXV0b21hdGlvbkVuYWJsZWQYBCABKAgSFwoPaGFzQWN0aW9uZWRQbGFuGAUgASgIEhkKEWhhc1BlbmRpbmdBY3Rpb25zGAYgASgIEhsKE2xhdGVzdEV4ZWN1dGlvbkRhdGUYByABKAkSHQoVcHVyY2hhc2VNaXNzZWRTYXZpbmdzGAggASgBEhwKFGJ1eWJhY2tNaXNzZWRTYXZpbmdzGAkgASgBEh8KF3RvdGFsRGFpbHlNaXNzZWRTYXZpbmdzGAogASgBEhsKE2hvdXJseU1pc3NlZFNhdmluZ3MYCyABKAESHgoWbWlzc2VkU2F2aW5nc1N0YXJ0RGF0ZRgMIAEoCRIcChRtaXNzZWRTYXZpbmdzRW5kRGF0ZRgNIAEoCRIXCg9leHBpcmluZ1NhdmluZ3MYDiABKAESEAoIY292ZXJhZ2UYDyABKAESEwoLdXRpbGl6YXRpb24YECABKAEiiAgKCFJlc291cmNlEgoKAmlkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSKQoIcHJvdmlkZXIYAyABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyEhoKEnByb3ZpZGVyUmVzb3VyY2VJZBgEIAEoCRIOCgZpc1Nwb3QYBSABKAgSDAoEbmFtZRgGIAEoCRIVCg1yZXNvdXJjZUdyb3VwGAcgASgJEhAKCHVzYWdlRW5kGAggASgJEhIKCnVzYWdlU3RhcnQYCSABKAkSJQoEdGFncxgKIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEQoJY3JlYXRlZEF0GAsgASgJEhEKCXVwZGF0ZWRBdBgMIAEoCRISCgppbnN0YW5jZUlkGA0gASgJEhgKEGJpbGxpbmdBY2NvdW50SWQYDiABKAkSFAoMc3ViQWNjb3VudElkGA8gASgJEhsKE21hbmFnZW1lbnRBY2NvdW50SWQYECABKAkSFgoOb3duZXJBY2NvdW50SWQYESABKAkSEAoIc2t1VGl0bGUYEiABKAkSDwoHc2t1TmFtZRgTIAEoCRIYChBhdmFpbGFiaWxpdHlab25lGBQgASgJEhMKC2NhY2hlRW5naW5lGBUgASgJEhYKDmRhdGFiYXNlRW5naW5lGBYgASgJEhMKC2Rlc2NyaXB0aW9uGBcgASgJEg4KBmZhbWlseRgYIAEoCRIWCg5mdWxsUmVnaW9uTmFtZRgZIAEoCRIYChBoYXNPbmRlbWFuZFRlcm1zGBogASgIEhQKDGluc3RhbmNlVHlwZRgbIAEoCRIaChJpbnN0YW5jZVR5cGVGYW1pbHkYHCABKAkSFAoMaXNSZXNlcnZhYmxlGB0gASgIEhQKDGxpY2Vuc2VNb2RlbBgeIAEoCRIUCgxsb2NhdGlvblR5cGUYHyABKAkSHwoXbm9ybWFsaXphdGlvblNpemVGYWN0b3IYICABKAkSFwoPb3BlcmF0aW5nU3lzdGVtGCEgASgJEhYKDnByZUluc3RhbGxlZFN3GCIgASgJEhUKDXByaWNlQ3VycmVuY3kYIyABKAkSFwoPcHJvdmlkZXJTZXJ2aWNlGCQgASgJEhUKDXByb3ZpZGVyU2t1SWQYJSABKAkSFwoPcHVibGljYXRpb25EYXRlGCYgASgJEg4KBnJlZ2lvbhgnIAEoCRIPCgdzZXJ2aWNlGCggASgJEg8KB3RlbmFuY3kYKSABKAkSEQoJdXNhZ2VUeXBlGCogASgJEg8KB3ZlcnNpb24YKyABKAkSHAoUdnBjTmV0d29ya2luZ1N1cHBvcnQYLCABKAgSGQoRb25kZW1hbmRVc2FnZVVuaXQYLSABKAkiQwoVTGlzdFJlc291cmNlc1Jlc3BvbnNlEioKCXJlc291cmNlcxgBIAMoCzIXLmJsdWVhcGkuZ2MudjEuUmVzb3VyY2Ui7wIKElJlc291cmNlRGFpbHlVc2FnZRIMCgRkYXRlGAEgASgJEhYKDnVzYWdlQWNjb3VudElkGAIgASgJEhQKDHN1YkFjY291bnRJZBgDIAEoCRINCgV1c2FnZRgEIAEoARIYChByZXNlcnZhdGlvblVzYWdlGAUgASgBEhUKDWZyZWVUaWVyVXNhZ2UYBiABKAESFAoMb25kZW1hbmRDb3N0GAcgASgBEhQKDHJlc2VydmVkQ29zdBgIIAEoARIZChFpZkFsbE9uZGVtYW5kQ29zdBgJIAEoARIQCghzcG90Q29zdBgKIAEoARIXCg9mcmVlVGllclNhdmluZ3MYCyABKAESEQoJdXNhZ2VUeXBlGAwgASgJEhcKD2NvbW1vblVzYWdlVHlwZRgNIAEoCRIUCgxjb3ZlcmVkVXNhZ2UYDiABKAESDgoGdXB0aW1lGA8gASgBEhkKEXByb3ZpZGVyVXNhZ2VUeXBlGBAgASgJIlYKHUdldFJlc291cmNlRGFpbHlVc2FnZVJlc3BvbnNlEjUKCmRhaWx5VXNhZ2UYASADKAsyIS5ibHVlYXBpLmdjLnYxLlJlc291cmNlRGFpbHlVc2FnZSKDEAoSUmVzZXJ2YWJsZVJlc291cmNlEgoKAmlkGAEgASgJEhIKCnJlc291cmNlSWQYAiABKAkSGAoQYmlsbGluZ0FjY291bnRJZBgDIAEoCRIUCgxzdWJBY2NvdW50SWQYBCABKAkSEAoIcHJvdmlkZXIYBSABKAkSGgoScHJvdmlkZXJSZXNvdXJjZUlkGAYgASgJEhcKD3Byb3ZpZGVyU2VydmljZRgHIAEoCRIVCg1wcm92aWRlclNrdUlkGAggASgJEg4KBmlzU3BvdBgJIAEoCBIUCgxpc1Jlc2VydmFibGUYCiABKAgSJAoEbmFtZRgLIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRItCg1yZXNvdXJjZUdyb3VwGAwgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhAKCHVzYWdlRW5kGA0gASgJEhIKCnVzYWdlU3RhcnQYDiABKAkSJQoEdGFncxgPIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLQoMcHJvdmlkZXJUYWdzGBAgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIpCgh1c2VyVGFncxgRIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEQoJY3JlYXRlZEF0GBIgASgJEhEKCXVwZGF0ZWRBdBgTIAEoCRISCgppbnN0YW5jZUlkGBQgASgJEjAKEGF2YWlsYWJpbGl0eVpvbmUYFSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSKwoLY2FjaGVFbmdpbmUYFiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFAoMY2F0YWxvZ1NrdUlkGBcgASgJEhcKD2NhdGFsb2dTa3VPcmdJZBgYIAEoCRIgChhjbGFzc2ljTmV0d29ya2luZ1N1cHBvcnQYGSABKAgSEgoKY2xvY2tTcGVlZBgaIAEoCRIXCg9jb21tb25Vc2FnZVR5cGUYGyABKAkSFAoMY292ZXJlZFVzYWdlGBwgASgBEi4KDmRhdGFiYXNlRW5naW5lGB0gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEh4KFmRlZGljYXRlZEVic1Rocm91Z2hwdXQYHiABKAkSKwoLZGVzY3JpcHRpb24YHyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSCwoDZWN1GCAgASgJEiMKG2VuaGFuY2VkTmV0d29ya2luZ1N1cHBvcnRlZBghIAEoCBIOCgZmYW1pbHkYIiABKAkSFgoOZnVsbFJlZ2lvbk5hbWUYIyABKAkSGAoQaGFzT25kZW1hbmRUZXJtcxgkIAEoCBIPCgdpY29uVXJsGCUgASgJEhUKDWludGVncmF0aW9uSWQYJiABKAkSGgoSaW50ZWxBdngyQXZhaWxhYmxlGCcgASgIEhkKEWludGVsQXZ4QXZhaWxhYmxlGCggASgIEhsKE2ludGVsVHVyYm9BdmFpbGFibGUYKSABKAgSIgoCaW8YKiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSGwoTaXNDdXJyZW50R2VuZXJhdGlvbhgrIAEoCBIpCglpc011bHRpQXoYLCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFAoMbGljZW5zZU1vZGVsGC0gASgJEhQKDGxvY2F0aW9uVHlwZRguIAEoCRIOCgZtZW1vcnkYLyABKAkSJwoHc2t1TmFtZRgwIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIQCghza3VUaXRsZRgxIAEoCRIPCgduZXRDb3N0GDIgASgBEhIKCm5ldFNhdmluZ3MYMyABKAESGgoSbmV0d29ya1BlcmZvcm1hbmNlGDQgASgJEh8KF25vcm1hbGl6YXRpb25TaXplRmFjdG9yGDUgASgJEhQKDG9uZGVtYW5kQ29zdBg2IAEoARIZChFvbmRlbWFuZFVzYWdlVW5pdBg3IAEoCRIXCg9vcGVyYXRpbmdTeXN0ZW0YOCABKAkSEQoJb3BlcmF0aW9uGDkgASgJEhkKEXBoeXNpY2FsUHJvY2Vzc29yGDogASgJEhYKDnByZUluc3RhbGxlZFN3GDsgASgJEhUKDXByaWNlQ3VycmVuY3kYPCABKAkSHQoVcHJvY2Vzc29yQXJjaGl0ZWN0dXJlGD0gASgJEhkKEXByb2Nlc3NvckZlYXR1cmVzGD4gASgJEhcKD3B1YmxpY2F0aW9uRGF0ZRg/IAEoCRIOCgZyZWdpb24YQCABKAkSDwoHc2VydmljZRhBIAEoCRIOCgZzb3VyY2UYQiABKAkSDwoHc3RvcmFnZRhDIAEoCRInCgd0YXhUeXBlGEQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEg8KB3RlbmFuY3kYRSABKAkSDgoGdXB0aW1lGEYgASgBEhEKCXVzYWdlVHlwZRhHIAEoCRIMCgR2Y3B1GEggASgJEg8KB3ZlcnNpb24YSSABKAkSHAoUdnBjTmV0d29ya2luZ1N1cHBvcnQYSiABKAgSFAoMaW5zdGFuY2VUeXBlGEsgASgJEhoKEmluc3RhbmNlVHlwZUZhbWlseRhMIAEoCRI2CgtkYWlseVVzYWdlcxhNIAMoCzIhLmJsdWVhcGkuZ2MudjEuUmVzb3VyY2VEYWlseVVzYWdlIlcKH0xpc3RSZXNlcnZhYmxlUmVzb3VyY2VzUmVzcG9uc2USNAoJcmVzb3VyY2VzGAEgAygLMiEuYmx1ZWFwaS5nYy52MS5SZXNlcnZhYmxlUmVzb3VyY2UidAoHU2VnbWVudBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEikKCHByb3ZpZGVyGAMgASgOMhcuYmx1ZWFwaS5nYy52MS5Qcm92aWRlchIRCglpc0RlZmF1bHQYBCABKAgSEQoJY3JlYXRlZEF0GAUgASgJIkAKDlNlZ21lbnRDcmVhdG9yEgoKAmlkGAEgASgJEhAKCHVzZXJuYW1lGAIgASgJEhAKCGZ1bGxOYW1lGAMgASgJIksKDFB1cmNoYXNlUGxhbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBnN0YXR1cxgDIAEoCRIRCglpc1JlbmV3YWwYBCABKAgipQUKDlNlZ21lbnREZXRhaWxzEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSKQoIcHJvdmlkZXIYBCABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyEhYKDmNsb3VkUHJvdmlkZXJzGAUgAygJEhEKCWlzRGVmYXVsdBgGIAEoCBIRCgljcmVhdGVkQXQYByABKAkSMAoJY3JlYXRlZEJ5GAggASgLMh0uYmx1ZWFwaS5nYy52MS5TZWdtZW50Q3JlYXRvchIQCghwYXJlbnRJZBgJIAEoCRIOCgZzdGF0dXMYCiABKAkSFAoMc2VnbWVudENsYXNzGAsgASgJEicKBnBhcmFtcxgMIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEwoLbW9udGhseUNvc3QYDSABKAESFgoObW9udGhseU5ldENvc3QYDiABKAESIAoYbW9udGhseUlmQWxsT25kZW1hbmRDb3N0GA8gASgBEhsKE21vbnRobHlPbmRlbWFuZENvc3QYECABKAESGwoTbW9udGhseVJlc2VydmVkQ29zdBgRIAEoARIXCg9tb250aGx5U3BvdENvc3QYEiABKAESFgoObW9udGhseVNhdmluZ3MYEyABKAESFQoNbW9udGhseUJ1ZGdldBgUIAEoARIQCghjb3ZlcmFnZRgVIAEoARIbChNyZWNvbW1lbmRlZENvdmVyYWdlGBYgASgBEhYKDnRhcmdldENvdmVyYWdlGBcgASgBEhwKFG1vbnRobHlSZXNvdXJjZUNvdW50GBggASgFEjIKDXB1cmNoYXNlUGxhbnMYGSADKAsyGy5ibHVlYXBpLmdjLnYxLlB1cmNoYXNlUGxhbiJ4CgxDb250cmFjdFNwZWMSFgoOY29tbWl0bWVudFR5cGUYASABKAkSFQoNcGF5bWVudE9wdGlvbhgCIAEoCRIMCgR0ZXJtGAMgASgJEisKCnByb3BlcnRpZXMYBCABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0It4CCgtQbGFuU3VtbWFyeRILCgNrZXkYASABKAkSEAoIcHJvdmlkZXIYAiABKAkSFgoObnVtQ29tbWl0bWVudHMYAyABKAUSFQoNbWluQ29tbWl0bWVudBgEIAEoARIZChFtb250aGx5Q29tbWl0bWVudBgFIAEoARITCgt1cGZyb250Q29zdBgGIAEoARISCgptaW5TYXZpbmdzGAcgASgBEhIKCm1heFNhdmluZ3MYCCABKAESFgoObW9udGhseVNhdmluZ3MYCSABKAESFAoMbWluVGVybUhvdXJzGAogASgFEhQKDG1heFRlcm1Ib3VycxgLIAEoBRITCgtncmlQcmVtaXVtcxgMIAEoARIaChJiZWZvcmVPbmRlbWFuZENvc3QYDSABKAESGQoRYWZ0ZXJPbmRlbWFuZENvc3QYDiABKAESGQoRaWZBbGxPbmRlbWFuZENvc3QYDyABKAEi5QIKDlNlcnZpY2VTdW1tYXJ5EgsKA2tleRgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC3NlcnZpY2VOYW1lGAMgASgJEhAKCHByb3ZpZGVyGAQgASgJEhYKDm51bUNvbW1pdG1lbnRzGAUgASgFEhcKD2N1cnJlbnRDb3ZlcmFnZRgGIAEoARIZChFwb3RlbnRpYWxDb3ZlcmFnZRgHIAEoARIVCg1taW5Db21taXRtZW50GAggASgBEhkKEW1vbnRobHlDb21taXRtZW50GAkgASgBEhMKC3VwZnJvbnRDb3N0GAogASgBEhIKCm1pblNhdmluZ3MYCyABKAESEgoKbWF4U2F2aW5ncxgMIAEoARIWCg5tb250aGx5U2F2aW5ncxgNIAEoARIUCgxtaW5UZXJtSG91cnMYDiABKAUSFAoMbWF4VGVybUhvdXJzGA8gASgFEhIKCmdyaVByZW1pdW0YECABKAEi2gEKEEFnZ3JlZ2F0ZU1ldHJpY3MSFwoPY3VycmVudENvdmVyYWdlGAEgASgBEhkKEXBvdGVudGlhbENvdmVyYWdlGAIgASgBEkEKCXN1bW1hcmllcxgDIAMoCzIuLmJsdWVhcGkuZ2MudjEuQWdncmVnYXRlTWV0cmljcy5TdW1tYXJpZXNFbnRyeRpPCg5TdW1tYXJpZXNFbnRyeRILCgNrZXkYASABKAkSLAoFdmFsdWUYAiABKAsyHS5ibHVlYXBpLmdjLnYxLlNlcnZpY2VTdW1tYXJ5OgI4ASLOCwoTRGVmYXVsdFB1cmNoYXNlUGxhbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg0KBW9yZ0lkGAQgASgJEhEKCXNlZ21lbnRJZBgFIAEoCRInCgdzZWdtZW50GAYgASgLMhYuYmx1ZWFwaS5nYy52MS5TZWdtZW50Eg4KBnN0YXR1cxgHIAEoCRIQCghwbGFuVHlwZRgIIAEoCRIRCgljcmVhdGVkQXQYCSABKAkSFAoMbGFzdE1vZGlmaWVkGAogASgJEikKCWNyZWF0ZWRCeRgLIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIvCg9leGVjdXRpb25Qb2xpY3kYDCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSEQoJaXNEZWZhdWx0GA0gASgIEhUKDWlzUmVjb21tZW5kZWQYDiABKAgSEQoJaXNSZW5ld2FsGA8gASgIEhUKDWlzQ2FsY3VsYXRpbmcYECABKAgSEAoIaXNMb2NrZWQYESABKAgSDwoHaXNTYXZlZBgSIAEoCBI6ChVpbmNsdWRlZENvbnRyYWN0U3BlY3MYEyADKAsyGy5ibHVlYXBpLmdjLnYxLkNvbnRyYWN0U3BlYxIdChVpbmNsdWRlZENvbnRyYWN0VGVybXMYFCADKAkSDwoHbWF4VGVybRgVIAEoCRIeChZwcmVmZXJyZWRQYXltZW50T3B0aW9uGBYgASgJEhYKDm1heFVwZnJvbnRDb3N0GBcgASgBEiIKGm1pbmltdW1VcGZyb250SW50ZXJlc3RSYXRlGBggASgBEj4KHnJlY29tbWVuZFdpdGhpbkNvdmVyZWRBY2NvdW50cxgZIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIRCglzdGFydERhdGUYGiABKAkSDwoHZW5kRGF0ZRgbIAEoCRISCgpkYXRhU291cmNlGBwgASgJEhIKCmJlZm9yZUNvc3QYHSABKAESEQoJYWZ0ZXJDb3N0GB4gASgBEhoKEmJlZm9yZU9uZGVtYW5kQ29zdBgfIAEoARIaChJiZWZvcmVSZXNlcnZlZENvc3QYICABKAESGwoTY292ZXJlZE9uZGVtYW5kQ29zdBghIAEoARIVCg1hbW9ydGl6ZWRDb3N0GCIgASgBEhUKDXJlY3VycmluZ0Nvc3QYIyABKAESEwoLdXBmcm9udENvc3QYJCABKAESEQoJdG90YWxDb3N0GCUgASgBEh4KFnRvdGFsTW9udGhseUJlZm9yZUNvc3QYJiABKAESDwoHc2F2aW5ncxgnIAEoARIWCg5tb250aGx5U2F2aW5ncxgoIAEoARIUCgx0b3RhbFNhdmluZ3MYKSABKAESCwoDZmVlGCogASgBEhoKEmNvbW1pdG1lbnRDb3ZlcmFnZRgrIAEoARIdChVtaW5pbXVtQ29tbWl0bWVudENvc3QYLCABKAESFgoOYnJlYWtldmVuSG91cnMYLSABKAESOQoQYWdncmVnYXRlTWV0cmljcxguIAEoCzIfLmJsdWVhcGkuZ2MudjEuQWdncmVnYXRlTWV0cmljcxItCglzdW1tYXJpZXMYLyADKAsyGi5ibHVlYXBpLmdjLnYxLlBsYW5TdW1tYXJ5EhYKDnJlc2VydmF0aW9uSWRzGDAgAygJEhMKC3Jlc291cmNlSWRzGDEgAygJEhYKDmZsYWdnZWRBY3Rpb25zGDIgAygJEhIKCm1ldGFQbGFuSWQYMyABKAkSEgoKY292ZXJhZ2VJZBg0IAEoCRIYChBtb250aGx5QWZ0ZXJDb3N0GDUgASgBEhwKFG1vbnRobHlBbW9ydGl6ZWRDb3N0GDYgASgBEhkKEW1vbnRobHlCZWZvcmVDb3N0GDcgASgBEhIKCm1vbnRobHlGZWUYOCABKAESEAoIYWxsVGVybXMYOSADKAkiVwoiTGlzdFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXNwb25zZRIxCgVwbGFucxgBIAMoCzIiLmJsdWVhcGkuZ2MudjEuRGVmYXVsdFB1cmNoYXNlUGxhbiJdCihHZXRVcGRhdGVkUHVyY2hhc2VQbGFuc0J5U2VnbWVudFJlc3BvbnNlEjEKBXBsYW5zGAEgAygLMiIuYmx1ZWFwaS5nYy52MS5EZWZhdWx0UHVyY2hhc2VQbGFuIkEKD1BsYW5IaXN0b3J5VXNlchIKCgJpZBgBIAEoCRIQCgh1c2VybmFtZRgCIAEoCRIQCghmdWxsTmFtZRgDIAEoCSL3AQoQUGxhbkhpc3RvcnlFbnRyeRIKCgJpZBgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEg0KBW9yZ0lkGAMgASgJEhcKD3JlbGF0ZWRPYmplY3RJZBgEIAEoCRIZChFyZWxhdGVkT2JqZWN0VHlwZRgFIAEoCRIRCgl0aW1lc3RhbXAYBiABKAkSDAoEdHlwZRgHIAEoCRIOCgZ1c2VySWQYCCABKAkSJAoEZGF0YRgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIsCgR1c2VyGAogASgLMh4uYmx1ZWFwaS5nYy52MS5QbGFuSGlzdG9yeVVzZXIihAIKE1JlZ2lzdGVyT3JnUmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIuCgttZW1iZXJzaGlwcxgDIAMoCzIZLmJsdWVhcGkuZ2MudjEuTWVtYmVyc2hpcBIOCgZkb21haW4YBCABKAkSLgoOcHJpbWFyeUFkZHJlc3MYBSABKAsyFi5ibHVlYXBpLmdjLnYxLkFkZHJlc3MSHwoXYXdzTWFya2V0cGxhY2VPZmZlckxpbmsYBiABKAkSIQoZYXp1cmVNYXJrZXRwbGFjZU9mZmVyTGluaxgHIAEoCRIfChdnY3BNYXJrZXRwbGFjZU9mZmVyTGluaxgIIAEoCSIyChpTdGFydEF3c09uYm9hcmRpbmdSZXNwb25zZRIUCgxvbmJvYXJkaW5nSWQYASABKAkiUQokR2V0QXdzQ2xvdWRGb3JtYXRpb25UZW1wbGF0ZVJlc3BvbnNlEikKCHRlbXBsYXRlGAEgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCIrChxHZXRBd3NMYXVuY2hTdGFja1VybFJlc3BvbnNlEgsKA3VybBgBIAEoCSKPBAobVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlElQKBmNoZWNrcxgBIAMoCzJELmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1Jlc3BvbnNlLkF3c09uYm9hcmRpbmdGZWF0dXJlQ2hlY2samQMKGUF3c09uYm9hcmRpbmdGZWF0dXJlQ2hlY2sSDwoHZmVhdHVyZRgBIAEoCRJvCgZzdGF0dXMYAiABKA4yXy5ibHVlYXBpLmdjLnYxLlZlcmlmeUF3c09uYm9hcmRpbmdSZXNwb25zZS5Bd3NPbmJvYXJkaW5nRmVhdHVyZUNoZWNrLkF3c09uYm9hcmRpbmdGZWF0dXJlU3RhdHVzIvkBChpBd3NPbmJvYXJkaW5nRmVhdHVyZVN0YXR1cxItCilBV1NfT05CT0FSRElOR19GRUFUVVJFX1NUQVRVU19VTlNQRUNJRklFRBAAEisKJ0FXU19PTkJPQVJESU5HX0ZFQVRVUkVfU1RBVFVTX0FWQUlMQUJMRRABEikKJUFXU19PTkJPQVJESU5HX0ZFQVRVUkVfU1RBVFVTX1dBUk5JTkcQAhIpCiVBV1NfT05CT0FSRElOR19GRUFUVVJFX1NUQVRVU19NSVNTSU5HEAMSKQolQVdTX09OQk9BUkRJTkdfRkVBVFVSRV9TVEFUVVNfVU5LTk9XThAEItUFChtHZXRPbmJvYXJkaW5nU3RhdHVzUmVzcG9uc2USDQoFZm91bmQYASABKAgSDQoFaXNNc3AYAiABKAgSKQoIcHJvdmlkZXIYAyABKA4yFy5ibHVlYXBpLmdjLnYxLlByb3ZpZGVyEg8KB2djT3JnSWQYBCABKAkSFAoMb25ib2FyZGluZ0lkGAUgASgJElUKEG9uYm9hcmRpbmdTdGF0dXMYBiABKA4yOy5ibHVlYXBpLmdjLnYxLkdldE9uYm9hcmRpbmdTdGF0dXNSZXNwb25zZS5PbmJvYXJkaW5nU3RhdHVzEhEKCWFjY291bnRJZBgHIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgIIAEoCRIRCgljb21wYW55SWQYCSABKAkSYAoSdmVyaWZpY2F0aW9uQ2hlY2tzGAogAygLMkQuYmx1ZWFwaS5nYy52MS5WZXJpZnlBd3NPbmJvYXJkaW5nUmVzcG9uc2UuQXdzT25ib2FyZGluZ0ZlYXR1cmVDaGVjaxI3Cg90ZXJtc0FjY2VwdGFuY2UYCyABKAsyHi5ibHVlYXBpLmdjLnYxLlRlcm1zQWNjZXB0YW5jZSKVAgoQT25ib2FyZGluZ1N0YXR1cxIhCh1PTkJPQVJESU5HX1NUQVRVU19VTlNQRUNJRklFRBAAEiQKIE9OQk9BUkRJTkdfU1RBVFVTX05PVF9SRUdJU1RFUkVEEAESIAocT05CT0FSRElOR19TVEFUVVNfUkVHSVNURVJFRBACEigKJE9OQk9BUkRJTkdfU1RBVFVTX09OQk9BUkRJTkdfU1RBUlRFRBADEh4KGk9OQk9BUkRJTkdfU1RBVFVTX1ZFUklGSUVEEAQSJwojT05CT0FSRElOR19TVEFUVVNfVkVSSUZZX0lOQ09NUExFVEUQBRIjCh9PTkJPQVJESU5HX1NUQVRVU19WRVJJRllfRkFJTEVEEAYijgMKE1BheWVyQWNjb3VudERldGFpbHMSEQoJYWNjb3VudElkGAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJEiAKGHJpcHBsZVJlZ2lzdHJhdGlvblN0YXR1cxgDIAEoCRJSCg1nY1NldHVwU3RhdHVzGAQgASgOMjsuYmx1ZWFwaS5nYy52MS5HZXRPbmJvYXJkaW5nU3RhdHVzUmVzcG9uc2UuT25ib2FyZGluZ1N0YXR1cxJgChJ2ZXJpZmljYXRpb25DaGVja3MYBSADKAsyRC5ibHVlYXBpLmdjLnYxLlZlcmlmeUF3c09uYm9hcmRpbmdSZXNwb25zZS5Bd3NPbmJvYXJkaW5nRmVhdHVyZUNoZWNrEiUKHW1hcmtldHBsYWNlUHJpdmF0ZU9mZmVyU3RhdHVzGAYgASgJEiEKGW1hcmtldHBsYWNlUHJpdmF0ZU9mZmVySWQYByABKAkSLQolbWFya2V0cGxhY2VQcml2YXRlT2ZmZXJFeHBpcmF0aW9uRGF0ZRgIIAEoCSKoBQoZTGlzdFBheWVyQWNjb3VudHNSZXNwb25zZRJMCg1wYXllckFjY291bnRzGAEgAygLMjUuYmx1ZWFwaS5nYy52MS5MaXN0UGF5ZXJBY2NvdW50c1Jlc3BvbnNlLlBheWVyQWNjb3VudBI/ChNwYXllckFjY291bnREZXRhaWxzGAIgAygLMiIuYmx1ZWFwaS5nYy52MS5QYXllckFjY291bnREZXRhaWxzGvoCCgxQYXllckFjY291bnQSEQoJYWNjb3VudElkGAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJEhYKDmJpbGxpbmdHcm91cElkGAMgASgJEhEKCXNlZ21lbnRJZBgEIAEoCRJLCgZzdGF0dXMYBSABKA4yOy5ibHVlYXBpLmdjLnYxLkxpc3RQYXllckFjY291bnRzUmVzcG9uc2UuUGF5ZXJBY2NvdW50U3RhdHVzEhEKCWNvbXBhbnlJZBgGIAEoCRJVChBvbmJvYXJkaW5nU3RhdHVzGAcgASgOMjsuYmx1ZWFwaS5nYy52MS5HZXRPbmJvYXJkaW5nU3RhdHVzUmVzcG9uc2UuT25ib2FyZGluZ1N0YXR1cxJgChJ2ZXJpZmljYXRpb25DaGVja3MYCCADKAsyRC5ibHVlYXBpLmdjLnYxLlZlcmlmeUF3c09uYm9hcmRpbmdSZXNwb25zZS5Bd3NPbmJvYXJkaW5nRmVhdHVyZUNoZWNrIn8KElBheWVyQWNjb3VudFN0YXR1cxIkCiBQQVlFUl9BQ0NPVU5UX1NUQVRVU19VTlNQRUNJRklFRBAAEiAKHFBBWUVSX0FDQ09VTlRfU1RBVFVTX0VOQUJMRUQQARIhCh1QQVlFUl9BQ0NPVU5UX1NUQVRVU19ESVNBQkxFRBACIm0KHlNldFBheWVyQWNjb3VudEVuYWJsZWRSZXNwb25zZRJLCgxwYXllckFjY291bnQYASABKAsyNS5ibHVlYXBpLmdjLnYxLkxpc3RQYXllckFjY291bnRzUmVzcG9uc2UuUGF5ZXJBY2NvdW50ImwKHUdldFBheWVyQWNjb3VudFN0YXR1c1Jlc3BvbnNlEksKDHBheWVyQWNjb3VudBgBIAEoCzI1LmJsdWVhcGkuZ2MudjEuTGlzdFBheWVyQWNjb3VudHNSZXNwb25zZS5QYXllckFjY291bnQitgUKGUxpc3RCaWxsaW5nR3JvdXBzUmVzcG9uc2USTAoNYmlsbGluZ0dyb3VwcxgBIAMoCzI1LmJsdWVhcGkuZ2MudjEuTGlzdEJpbGxpbmdHcm91cHNSZXNwb25zZS5CaWxsaW5nR3JvdXAayQMKDEJpbGxpbmdHcm91cBIRCgljb21wYW55SWQYASABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgDIAEoCRITCgtjb21wYW55TmFtZRgEIAEoCRIWCg5wYXllckFjY291bnRJZBgFIAEoCRIYChBwYXllckFjY291bnROYW1lGAYgASgJEhEKCXNlZ21lbnRJZBgHIAEoCRIUCgxyZXNvdXJjZVR5cGUYCCABKAkSSwoGc3RhdHVzGAkgASgOMjsuYmx1ZWFwaS5nYy52MS5MaXN0QmlsbGluZ0dyb3Vwc1Jlc3BvbnNlLkJpbGxpbmdHcm91cFN0YXR1cxJVChBvbmJvYXJkaW5nU3RhdHVzGAogASgOMjsuYmx1ZWFwaS5nYy52MS5HZXRPbmJvYXJkaW5nU3RhdHVzUmVzcG9uc2UuT25ib2FyZGluZ1N0YXR1cxJgChJ2ZXJpZmljYXRpb25DaGVja3MYCyADKAsyRC5ibHVlYXBpLmdjLnYxLlZlcmlmeUF3c09uYm9hcmRpbmdSZXNwb25zZS5Bd3NPbmJvYXJkaW5nRmVhdHVyZUNoZWNrIn8KEkJpbGxpbmdHcm91cFN0YXR1cxIkCiBCSUxMSU5HX0dST1VQX1NUQVRVU19VTlNQRUNJRklFRBAAEiAKHEJJTExJTkdfR1JPVVBfU1RBVFVTX0VOQUJMRUQQARIhCh1CSUxMSU5HX0dST1VQX1NUQVRVU19ESVNBQkxFRBACImwKHVNldEJpbGxpbmdHcm91cFN0YXR1c1Jlc3BvbnNlEksKDGJpbGxpbmdHcm91cBgBIAEoCzI1LmJsdWVhcGkuZ2MudjEuTGlzdEJpbGxpbmdHcm91cHNSZXNwb25zZS5CaWxsaW5nR3JvdXAipQEKHUdldEJpbGxpbmdHcm91cFN0YXR1c1Jlc3BvbnNlEksKDGJpbGxpbmdHcm91cBgBIAEoCzI1LmJsdWVhcGkuZ2MudjEuTGlzdEJpbGxpbmdHcm91cHNSZXNwb25zZS5CaWxsaW5nR3JvdXASNwoPdGVybXNBY2NlcHRhbmNlGAIgASgLMh4uYmx1ZWFwaS5nYy52MS5UZXJtc0FjY2VwdGFuY2UiWgocVmFsaWRhdGVCaWxsaW5nR3JvdXBSZXNwb25zZRIKCgJvaxgBIAEoCBIPCgdtZXNzYWdlGAIgASgJEgwKBGNvZGUYAyABKAkSDwoHZGV0YWlscxgEIAMoCSLOAQoaR2V0QXdzUHJpdmF0ZU9mZmVyUmVzcG9uc2USFgoOcGF5ZXJBY2NvdW50SWQYASABKAkSDwoHb2ZmZXJJZBgCIAEoCRIRCglvZmZlck5hbWUYAyABKAkSDgoGc3RhdHVzGAQgASgJEhAKCG9mZmVyVXJsGAUgASgJEhEKCXByb2R1Y3RJZBgGIAEoCRIUCgxwcmljZVBlclVuaXQYByABKAESEQoJY3JlYXRlZEF0GAggASgJEhYKDmV4cGlyYXRpb25EYXRlGAkgASgJIloKH0FjY2VwdEJpbGxpbmdHcm91cFRlcm1zUmVzcG9uc2USNwoPdGVybXNBY2NlcHRhbmNlGAEgASgLMh4uYmx1ZWFwaS5nYy52MS5UZXJtc0FjY2VwdGFuY2UiUwoeTGlzdERyYWZ0UHVyY2hhc2VQbGFuc1Jlc3BvbnNlEjEKBXBsYW5zGAEgAygLMiIuYmx1ZWFwaS5nYy52MS5EZWZhdWx0UHVyY2hhc2VQbGFuIkIKH0RlbGV0ZURyYWZ0UHVyY2hhc2VQbGFuUmVzcG9uc2USDgoGcGxhbklkGAEgASgJEg8KB3N1Y2Nlc3MYAiABKAgiNAojR2V0QXZhaWxhYmxlQ29tbWl0bWVudFR5cGVzUmVzcG9uc2USDQoFdHlwZXMYASADKAki3QEKKkdldEd1YXJhbnRlZWRDb21taXRtZW50VGVtcGxhdGVVcmxSZXNwb25zZRIRCglsYXVuY2hVcmwYASABKAkSEwoLdGVtcGxhdGVVcmwYAiABKAkSEQoJc3RhY2tOYW1lGAMgASgJEhEKCXByaW5jaXBhbBgEIAEoCRISCgpleHRlcm5hbElkGAUgASgJEiUKHWd1YXJhbnRlZWRDb21taXRtZW50UHJpbmNpcGFsGAYgASgJEiYKHmd1YXJhbnRlZWRDb21taXRtZW50RXh0ZXJuYWxJZBgHIAEoCSK+AgooQ3JlYXRlR3VhcmFudGVlZENvbW1pdG1lbnRBY2Nlc3NSZXNwb25zZRIOCgZ0YXJnZXQYASABKAkSFQoNcmlwcGxlUm9sZUFybhgCIAEoCRIYChByaXBwbGVFeHRlcm5hbElkGAMgASgJEiMKG2d1YXJhbnRlZWRDb21taXRtZW50Um9sZUFybhgEIAEoCRImCh5ndWFyYW50ZWVkQ29tbWl0bWVudEV4dGVybmFsSWQYBSABKAkSDwoHc3RhY2tJZBgGIAEoCRITCgtzdGFja1JlZ2lvbhgHIAEoCRITCgt0ZW1wbGF0ZVVybBgIIAEoCRIOCgZzdGF0dXMYCSABKAkSEwoLbGFzdFVwZGF0ZWQYCiABKAkSJAocZ3VhcmFudGVlZENvbW1pdG1lbnRWZXJpZmllZBgLIAEoCCKEAgofR2V0UHVyY2hhc2VQbGFuc0RldGFpbHNSZXNwb25zZRIwCgRwbGFuGAEgASgLMiIuYmx1ZWFwaS5nYy52MS5EZWZhdWx0UHVyY2hhc2VQbGFuEjgKCWxpbmVJdGVtcxgCIAMoCzIlLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudFBsYW5MaW5lSXRlbRJDCg9yZXNvdXJjZU1hdGNoZXMYAyADKAsyKi5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnRQbGFuUmVzb3VyY2VNYXRjaBIwCgdoaXN0b3J5GAQgAygLMh8uYmx1ZWFwaS5nYy52MS5QbGFuSGlzdG9yeUVudHJ5IlcKIkNyZWF0ZUN1c3RvbUNvbW1pdG1lbnRQbGFuUmVzcG9uc2USMQoFcGxhbnMYASADKAsyIi5ibHVlYXBpLmdjLnYxLkRlZmF1bHRQdXJjaGFzZVBsYW4iegocQXp1cmVBcmNoZXJhT3JnRmVhdHVyZVN0YXR1cxImCgZkZXRhaWwYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSDwoHZmVhdHVyZRgCIAEoCRIOCgZzdGF0dXMYAyABKAkSEQoJdXBkYXRlZEF0GAQgASgJIlYKGkF6dXJlQXJjaGVyYU9yZ0xlYXNlQnVkZ2V0Eg4KBmJ1ZGdldBgBIAEoARIRCgljcmVhdGVkQXQYAiABKAkSFQoNbWluVGVybU1vbnRocxgDIAEoBSKeCwoPQXp1cmVBcmNoZXJhT3JnEh4KFmFwcGx5QmFsYW5jZVRvUHJlbWl1bXMYASABKAgSEwoLYXV0aFNzb09ubHkYAiABKAgSNwoXYXdzTWFya2V0cGxhY2VPZmZlckxpbmsYAyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSOQoZYXp1cmVNYXJrZXRwbGFjZU9mZmVyTGluaxgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIPCgdiYWxhbmNlGAUgASgBEhUKDWJpbGxpbmdBY3RpdmUYBiABKAgSGgoSY2hhbm5lbFBhcnRuZXJUeXBlGAcgASgJEjIKEmNoYW5uZWxQYXJ0bmVyc2hpcBgIIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIrCgtjb250cmFjdEVuZBgJIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIRCgljcmVhdGVkQXQYCiABKAkSKAoIY3VycmVuY3kYCyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFwoPZGVmYXVsdFVzZXJSb2xlGAwgASgJEiwKDGRpc2NvdW50SW5mbxgNIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIOCgZkb21haW4YDiABKAkSLQoNZWZmZWN0aXZlRGF0ZRgPIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRJECg9mZWF0dXJlU3RhdHVzZXMYECADKAsyKy5ibHVlYXBpLmdjLnYxLkF6dXJlQXJjaGVyYU9yZ0ZlYXR1cmVTdGF0dXMSEAoIZmVhdHVyZXMYESADKAkSKgoKZnJ1Z2FsTW9kZRgSIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI3ChdnY3BNYXJrZXRwbGFjZU9mZmVyTGluaxgTIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRITCgtoYXNEaXNjb3VudBgUIAEoCBIPCgdoYXNHcmlzGBUgASgIEiEKGWhhc1Rkc1BhY1Byb3h5Q3JlZGVudGlhbHMYFiABKAgSCgoCaWQYFyABKAkSHwoXaXNMZWFzZUJ1eWJhY2tBdXRvbWF0ZWQYGCABKAgSHAoUaXNMZWFzZVN3YXBBdXRvbWF0ZWQYGSABKAgSFQoNaXNUZHNQYWNQcm94eRgaIAEoCBI+CgtsZWFzZUJ1ZGdldBgbIAEoCzIpLmJsdWVhcGkuZ2MudjEuQXp1cmVBcmNoZXJhT3JnTGVhc2VCdWRnZXQSIAoYbGVhc2VCdXliYWNrTG9va2JhY2tEYXlzGBwgASgFEh0KFWxlYXNlU3dhcExvb2tiYWNrRGF5cxgdIAEoBRIMCgRuYW1lGB4gASgJEikKCXBhcnRuZXJJZBgfIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIRCglwbGFuVHJpYWwYICABKAgSGAoQcGxhblRyaWFsRXhwaXJlcxghIAEoCRIWCg5wbGFuVHlwZUNob3NlbhgiIAEoCRIZChFwbGFuVHlwZUVmZmVjdGl2ZRgjIAEoCRIuCg5wcmltYXJ5QWRkcmVzcxgkIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRItCg1wcm9tb3Rpb25Db2RlGCUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEloKFnByb3ZpZGVyUm9vdFNlZ21lbnRJZHMYJiADKAsyOi5ibHVlYXBpLmdjLnYxLkF6dXJlQXJjaGVyYU9yZy5Qcm92aWRlclJvb3RTZWdtZW50SWRzRW50cnkaPQobUHJvdmlkZXJSb290U2VnbWVudElkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiVAoYQXp1cmVPbmJvYXJkaW5nQ3JlYXRlZEJ5EhQKDG9uYm9hcmRpbmdJZBgBIAEoCRIQCgh1c2VybmFtZRgCIAEoCRIQCghmdWxsTmFtZRgDIAEoCSKyBwoUQXp1cmVPbmJvYXJkaW5nU3RhdGUSFAoMb25ib2FyZGluZ0lkGAEgASgJEg0KBW9yZ0lkGAIgASgJEhAKCHByb3ZpZGVyGAMgASgJEhEKCWNvbXBsZXRlZBgEIAEoCBIRCgljcmVhdGVkQXQYBSABKAkSOgoJY3JlYXRlZEJ5GAYgASgLMicuYmx1ZWFwaS5nYy52MS5BenVyZU9uYm9hcmRpbmdDcmVhdGVkQnkSKwoLaW50ZWdyYXRpb24YByABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFQoNaW50ZWdyYXRpb25JZBgIIAEoCRIaChJhcmNoZXJhT3V0Ym91bmRJcHMYCSADKAkSEAoIdGVuYW50SWQYCiABKAkSFgoOc3Vic2NyaXB0aW9uSWQYCyABKAkSEgoKYWNjb3VudElkcxgMIAMoCRITCgthY2NvdW50S2luZBgNIAEoCRIwChBhcHBBdXRoVmFsaWRhdGVkGA4gASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEi0KDWFwcEF1dGhvcml6ZWQYDyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFQoNYmxvYkNvbnRhaW5lchgQIAEoCRIVCg1yZXNvdXJjZUdyb3VwGBEgASgJEhYKDnN0b3JhZ2VBY2NvdW50GBIgASgJEhAKCHJvbGVOYW1lGBMgASgJEi8KD2NyZWF0ZVJlc291cmNlcxgUIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI0ChRtYXJrZXRwbGFjZUNvbXBsZXRlZBgVIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIvCg9wZXJtaXNzaW9uTGV2ZWwYFiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSMwoTcmVzb3VyY2VHcm91cFJlZ2lvbhgXIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRI0ChRzdG9yYWdlQWNjb3VudFJlZ2lvbhgYIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIxChFyZXNvdXJjZUdyb3VwVGFncxgZIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIyChJzdG9yYWdlQWNjb3VudFRhZ3MYGiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSKwoDb3JnGBsgASgLMh4uYmx1ZWFwaS5nYy52MS5BenVyZUFyY2hlcmFPcmcikwEKHFN0YXJ0QXp1cmVPbmJvYXJkaW5nUmVzcG9uc2USFAoMb25ib2FyZGluZ0lkGAEgASgJEjIKBXN0YXRlGAIgASgLMiMuYmx1ZWFwaS5nYy52MS5BenVyZU9uYm9hcmRpbmdTdGF0ZRIWCg5iaWxsaW5nR3JvdXBJZBgDIAEoCRIRCgljb21wYW55SWQYBCABKAkiMAohR2V0QXp1cmVPbmJvYXJkaW5nQXV0aFVybFJlc3BvbnNlEgsKA3VybBgBIAEoCSJ2CgxBenVyZUFjY291bnQSEQoJYWNjb3VudElkGAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJEhUKDWFjY291bnRTdGF0dXMYAyABKAkSEwoLYWNjb3VudFR5cGUYBCABKAkSEgoKaXNFbGlnaWJsZRgFIAEoCCJUCiNMaXN0QXp1cmVPbmJvYXJkaW5nQWNjb3VudHNSZXNwb25zZRItCghhY2NvdW50cxgBIAMoCzIbLmJsdWVhcGkuZ2MudjEuQXp1cmVBY2NvdW50IlAKHUF6dXJlSW50ZWdyYXRpb25GZWF0dXJlU3RhdHVzEg8KB2ZlYXR1cmUYASABKAkSDgoGc3RhdHVzGAIgASgJEg4KBmRldGFpbBgDIAMoCSLCAQoaQXp1cmVJbnRlZ3JhdGlvbk9uYm9hcmRpbmcSCgoCaWQYASABKAkSDQoFb3JnSWQYAiABKAkSEAoIcHJvdmlkZXIYAyABKAkSFQoNaW50ZWdyYXRpb25JZBgEIAEoCRIRCgljb21wbGV0ZWQYBSABKAgSEQoJY3JlYXRlZEF0GAYgASgJEjoKCWNyZWF0ZWRCeRgHIAEoCzInLmJsdWVhcGkuZ2MudjEuQXp1cmVPbmJvYXJkaW5nQ3JlYXRlZEJ5Iu4EChBBenVyZUludGVncmF0aW9uEgoKAmlkGAEgASgJEg4KBmFjdGl2ZRgCIAEoCBIMCgRuYW1lGAMgASgJEhAKCHByb3ZpZGVyGAQgASgJEgwKBHR5cGUYBSABKAkSDQoFb3JnSWQYBiABKAkSDgoGdXNlcklkGAcgASgJEhEKCWNyZWF0ZWRBdBgIIAEoCRIRCgl1cGRhdGVkQXQYCSABKAkSIAoYbWFuYWdlbWVudFN1YnNjcmlwdGlvbklkGAogASgJEh4KFnByb3ZpZGVyT3JnYW5pemF0aW9uSWQYCyABKAkSFQoNYmxvYkNvbnRhaW5lchgMIAEoCRIVCg1yZXNvdXJjZUdyb3VwGA0gASgJEhYKDnN0b3JhZ2VBY2NvdW50GA4gASgJEhgKEGNvc3RFeHBvcnRGb3JtYXQYDyABKAkSFwoPY3VyRWFybGllc3REYXRhGBAgASgJEhUKDWN1clJlcG9ydE5hbWUYESABKAkSEQoJY3VyVXNhYmxlGBIgASgIEhQKDGhhc0N1ckFjY2VzcxgTIAEoCBIgChhoYXNGdWxsUmVzZXJ2YXRpb25BY2Nlc3MYFCABKAgSRQoPZmVhdHVyZVN0YXR1c2VzGBUgAygLMiwuYmx1ZWFwaS5nYy52MS5BenVyZUludGVncmF0aW9uRmVhdHVyZVN0YXR1cxI+CgtvbmJvYXJkaW5ncxgWIAMoCzIpLmJsdWVhcGkuZ2MudjEuQXp1cmVJbnRlZ3JhdGlvbk9uYm9hcmRpbmcSJwoGY29uZmlnGBcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCK0AQoeQ3JlYXRlQXp1cmVJbnRlZ3JhdGlvblJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEQoJZXJyb3JDb2RlGAIgASgJEhQKDGVycm9yTWVzc2FnZRgDIAEoCRIVCg1pbnRlZ3JhdGlvbklkGAQgASgJEhYKDmJpbGxpbmdHcm91cElkGAUgASgJEhEKCWNvbXBhbnlJZBgGIAEoCRIWCg5wYXllckFjY291bnRJZBgHIAEoCSJWCh1MaXN0QXp1cmVJbnRlZ3JhdGlvbnNSZXNwb25zZRI1CgxpbnRlZ3JhdGlvbnMYASADKAsyHy5ibHVlYXBpLmdjLnYxLkF6dXJlSW50ZWdyYXRpb24qXgoIUHJvdmlkZXISGAoUUFJPVklERVJfVU5TUEVDSUZJRUQQABIHCgNBV1MQARIJCgVBWlVSRRACEgcKA0dDUBADEg4KCktVQkVSTkVURVMQBBILCgdVTktOT1dOEAUqmAEKEENvbW1pdG1lbnRTdGF0dXMSIQodQ09NTUlUTUVOVF9TVEFUVVNfVU5TUEVDSUZJRUQQABIHCgNORVcQARIMCghSRVZJRVdFRBACEg0KCVNDSEVEVUxFRBADEg0KCUNPTVBMRVRFRBAEEgkKBURSQUZUEAUSEAoMTkVFRFNfUkVWSUVXEAYSDwoLSU5fUFJPR1JFU1MQByqKAQoZQ29tbWl0bWVudEludmVudG9yeVN0YXR1cxIrCidDT01NSVRNRU5UX0lOVkVOVE9SWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIKCgZBQ1RJVkUQARILCgdSRVRJUkVEEAISEwoPUEFZTUVOVF9QRU5ESU5HEAMSEgoOUEFZTUVOVF9GQUlMRUQQBCpDCgVTY29wZRIVChFTQ09QRV9VTlNQRUNJRklFRBAAEgoKBlNIQVJFRBABEgwKCFJFR0lPTkFMEAISCQoFWk9OQUwQAypBCglVc2FnZVR5cGUSGgoWVVNBR0VfVFlQRV9VTlNQRUNJRklFRBAAEgsKB1JVTk5JTkcQARILCgdTVE9QUEVEEAIy9DcKFUd1YXJhbnRlZWRDb21taXRtZW50cxJjCghMaXN0T3JncxIeLmJsdWVhcGkuZ2MudjEuTGlzdE9yZ3NSZXF1ZXN0GhIuYmx1ZWFwaS5nYy52MS5PcmciIYLT5JMCGzoBKiIWL3YxL29yZ2FuaXphdGlvbnM6cmVhZDABEpcBChRDb21taXRtZW50c1BsYW5BcHBseRIpLmJsdWVhcGkuZ2MudjEuQ29tbWl0bWVudFBsYW5BcHBseVJlcXVlc3QaJC5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnRQbGFuRGV0YWlscyIugtPkkwIoOgEqIiMvdjEvY29tbWl0bWVudHMvcGxhbi97cGxhbklkfS9hcHBseRJ5Cg9MaXN0Q29tbWl0bWVudHMSJS5ibHVlYXBpLmdjLnYxLkxpc3RDb21taXRtZW50c1JlcXVlc3QaJi5ibHVlYXBpLmdjLnYxLkxpc3RDb21taXRtZW50c1Jlc3BvbnNlIheC0+STAhESDy92MS9jb21taXRtZW50cxKXAQoTR2V0Q29tbWl0bWVudHNDaGFydBIpLmJsdWVhcGkuZ2MudjEuR2V0Q29tbWl0bWVudHNDaGFydFJlcXVlc3QaJy5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnRzQ2hhcnRSZXNwb25zZSIsgtPkkwImEiQvdjEvY29tbWl0bWVudHMve2NvbW1pdG1lbnRJZH0vY2hhcnQSrwEKGUdldENvbW1pdG1lbnRzVXRpbGl6YXRpb24SLy5ibHVlYXBpLmdjLnYxLkdldENvbW1pdG1lbnRzVXRpbGl6YXRpb25SZXF1ZXN0Gi0uYmx1ZWFwaS5nYy52MS5Db21taXRtZW50c1V0aWxpemF0aW9uUmVzcG9uc2UiMoLT5JMCLBIqL3YxL2NvbW1pdG1lbnRzL3tjb21taXRtZW50SWR9L3V0aWxpemF0aW9uEowBChVSZWFkQ29tbWl0bWVudFJlcG9ydHMSKy5ibHVlYXBpLmdjLnYxLlJlYWRDb21taXRtZW50UmVwb3J0c1JlcXVlc3QaHy5ibHVlYXBpLmdjLnYxLkNvbW1pdG1lbnRSZXBvcnQiI4LT5JMCHToBKiIYL3YxL3JlcG9ydHMvaW52b2ljZTpyZWFkMAESsgEKHFJlYWRDb21taXRtZW50UmVwb3J0QWNjb3VudHMSMi5ibHVlYXBpLmdjLnYxLlJlYWRDb21taXRtZW50UmVwb3J0QWNjb3VudHNSZXF1ZXN0GiYuYmx1ZWFwaS5nYy52MS5Db21taXRtZW50UmVwb3J0QWNjb3VudCI0gtPkkwIuOgEqIikvdjEvcmVwb3J0cy9pbnZvaWNlL3ttb250aH0vYWNjb3VudHM6cmVhZDABEmMKCkdldE1ldHJpY3MSIC5ibHVlYXBpLmdjLnYxLkdldE1ldHJpY3NSZXF1ZXN0Gh4uYmx1ZWFwaS5nYy52MS5NZXRyaWNzUmVzcG9uc2UiE4LT5JMCDRILL3YxL21ldHJpY3MScQoNTGlzdFJlc291cmNlcxIjLmJsdWVhcGkuZ2MudjEuTGlzdFJlc291cmNlc1JlcXVlc3QaJC5ibHVlYXBpLmdjLnYxLkxpc3RSZXNvdXJjZXNSZXNwb25zZSIVgtPkkwIPEg0vdjEvcmVzb3VyY2VzEqEBChVHZXRSZXNvdXJjZURhaWx5VXNhZ2USKy5ibHVlYXBpLmdjLnYxLkdldFJlc291cmNlRGFpbHlVc2FnZVJlcXVlc3QaLC5ibHVlYXBpLmdjLnYxLkdldFJlc291cmNlRGFpbHlVc2FnZVJlc3BvbnNlIi2C0+STAicSJS92MS9yZXNvdXJjZXMve3Jlc291cmNlSWR9L2RhaWx5dXNhZ2USmwEKF0xpc3RSZXNlcnZhYmxlUmVzb3VyY2VzEi0uYmx1ZWFwaS5nYy52MS5MaXN0UmVzZXJ2YWJsZVJlc291cmNlc1JlcXVlc3QaLi5ibHVlYXBpLmdjLnYxLkxpc3RSZXNlcnZhYmxlUmVzb3VyY2VzUmVzcG9uc2UiIYLT5JMCGxIZL3YxL2NvbW1pdG1lbnRzL3Jlc291cmNlcxKoAQoaTGlzdFB1cmNoYXNlUGxhbnNCeVNlZ21lbnQSMC5ibHVlYXBpLmdjLnYxLkxpc3RQdXJjaGFzZVBsYW5zQnlTZWdtZW50UmVxdWVzdBoxLmJsdWVhcGkuZ2MudjEuTGlzdFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXNwb25zZSIlgtPkkwIfEh0vdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucxLEAQogR2V0VXBkYXRlZFB1cmNoYXNlUGxhbnNCeVNlZ21lbnQSNi5ibHVlYXBpLmdjLnYxLkdldFVwZGF0ZWRQdXJjaGFzZVBsYW5zQnlTZWdtZW50UmVxdWVzdBo3LmJsdWVhcGkuZ2MudjEuR2V0VXBkYXRlZFB1cmNoYXNlUGxhbnNCeVNlZ21lbnRSZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFuczp1cGRhdGUSqAEKF0dldFB1cmNoYXNlUGxhbnNEZXRhaWxzEi0uYmx1ZWFwaS5nYy52MS5HZXRQdXJjaGFzZVBsYW5zRGV0YWlsc1JlcXVlc3QaLi5ibHVlYXBpLmdjLnYxLkdldFB1cmNoYXNlUGxhbnNEZXRhaWxzUmVzcG9uc2UiLoLT5JMCKBImL3YxL2NvbW1pdG1lbnRzL3B1cmNoYXNlcGxhbnMve3BsYW5JZH0SqwEKGlNhdmVDb21taXRtZW50c1BsYW5Bc0RyYWZ0EjAuYmx1ZWFwaS5nYy52MS5TYXZlQ29tbWl0bWVudHNQbGFuQXNEcmFmdFJlcXVlc3QaIi5ibHVlYXBpLmdjLnYxLkRlZmF1bHRQdXJjaGFzZVBsYW4iN4LT5JMCMToBKiIsL3YxL2NvbW1pdG1lbnRzL3B1cmNoYXNlcGxhbnMvZHJhZnQve3BsYW5JZH0SogEKFkxpc3REcmFmdFB1cmNoYXNlUGxhbnMSLC5ibHVlYXBpLmdjLnYxLkxpc3REcmFmdFB1cmNoYXNlUGxhbnNSZXF1ZXN0Gi0uYmx1ZWFwaS5nYy52MS5MaXN0RHJhZnRQdXJjaGFzZVBsYW5zUmVzcG9uc2UiK4LT5JMCJRIjL3YxL2NvbW1pdG1lbnRzL3B1cmNoYXNlcGxhbnMvZHJhZnQSswEKF0RlbGV0ZURyYWZ0UHVyY2hhc2VQbGFuEi0uYmx1ZWFwaS5nYy52MS5EZWxldGVEcmFmdFB1cmNoYXNlUGxhblJlcXVlc3QaLi5ibHVlYXBpLmdjLnYxLkRlbGV0ZURyYWZ0UHVyY2hhc2VQbGFuUmVzcG9uc2UiOYLT5JMCMyoxL3YxL2NvbW1pdG1lbnRzL3B1cmNoYXNlcGxhbnMvZHJhZnQve2RyYWZ0UGxhbklkfRK6AQobR2V0QXZhaWxhYmxlQ29tbWl0bWVudFR5cGVzEjEuYmx1ZWFwaS5nYy52MS5HZXRBdmFpbGFibGVDb21taXRtZW50VHlwZXNSZXF1ZXN0GjIuYmx1ZWFwaS5nYy52MS5HZXRBdmFpbGFibGVDb21taXRtZW50VHlwZXNSZXNwb25zZSI0gtPkkwIuEiwvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucy9hdmFpbGFibGV0eXBlcxKyAQoaQ3JlYXRlQ3VzdG9tQ29tbWl0bWVudFBsYW4SMC5ibHVlYXBpLmdjLnYxLkNyZWF0ZUN1c3RvbUNvbW1pdG1lbnRQbGFuUmVxdWVzdBoxLmJsdWVhcGkuZ2MudjEuQ3JlYXRlQ3VzdG9tQ29tbWl0bWVudFBsYW5SZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvY29tbWl0bWVudHMvcHVyY2hhc2VwbGFucy9jdXN0b20SbwoLUmVnaXN0ZXJPcmcSIS5ibHVlYXBpLmdjLnYxLlJlZ2lzdGVyT3JnUmVxdWVzdBoiLmJsdWVhcGkuZ2MudjEuUmVnaXN0ZXJPcmdSZXNwb25zZSIZgtPkkwITOgEqIg4vdjEvb25ib2FyZGluZxKOAQoSU3RhcnRBd3NPbmJvYXJkaW5nEiguYmx1ZWFwaS5nYy52MS5TdGFydEF3c09uYm9hcmRpbmdSZXF1ZXN0GikuYmx1ZWFwaS5nYy52MS5TdGFydEF3c09uYm9hcmRpbmdSZXNwb25zZSIjgtPkkwIdOgEqIhgvdjEvb25ib2FyZGluZy9hd3Mvc3RhcnQSuwEKHEdldEF3c0Nsb3VkRm9ybWF0aW9uVGVtcGxhdGUSMi5ibHVlYXBpLmdjLnYxLkdldEF3c0Nsb3VkRm9ybWF0aW9uVGVtcGxhdGVSZXF1ZXN0GjMuYmx1ZWFwaS5nYy52MS5HZXRBd3NDbG91ZEZvcm1hdGlvblRlbXBsYXRlUmVzcG9uc2UiMoLT5JMCLBIqL3YxL29uYm9hcmRpbmcvYXdzL2Nsb3VkZm9ybWF0aW9uL3RlbXBsYXRlEqkBChRHZXRBd3NMYXVuY2hTdGFja1VybBIqLmJsdWVhcGkuZ2MudjEuR2V0QXdzTGF1bmNoU3RhY2tVcmxSZXF1ZXN0GisuYmx1ZWFwaS5nYy52MS5HZXRBd3NMYXVuY2hTdGFja1VybFJlc3BvbnNlIjiC0+STAjISMC92MS9vbmJvYXJkaW5nL2F3cy9jbG91ZGZvcm1hdGlvbi9sYXVuY2hzdGFja3VybBKSAQoTVmVyaWZ5QXdzT25ib2FyZGluZxIpLmJsdWVhcGkuZ2MudjEuVmVyaWZ5QXdzT25ib2FyZGluZ1JlcXVlc3QaKi5ibHVlYXBpLmdjLnYxLlZlcmlmeUF3c09uYm9hcmRpbmdSZXNwb25zZSIkgtPkkwIeOgEqIhkvdjEvb25ib2FyZGluZy9hd3MvdmVyaWZ5EpMBChNHZXRPbmJvYXJkaW5nU3RhdHVzEikuYmx1ZWFwaS5nYy52MS5HZXRPbmJvYXJkaW5nU3RhdHVzUmVxdWVzdBoqLmJsdWVhcGkuZ2MudjEuR2V0T25ib2FyZGluZ1N0YXR1c1Jlc3BvbnNlIiWC0+STAh86ASoiGi92MS9vbmJvYXJkaW5nL3N0YXR1czpyZWFkEogBChFMaXN0UGF5ZXJBY2NvdW50cxInLmJsdWVhcGkuZ2MudjEuTGlzdFBheWVyQWNjb3VudHNSZXF1ZXN0GiguYmx1ZWFwaS5nYy52MS5MaXN0UGF5ZXJBY2NvdW50c1Jlc3BvbnNlIiCC0+STAhoSGC92MS9tYW5hZ2VtZW50cy9hY2NvdW50cxKmAQoWU2V0UGF5ZXJBY2NvdW50RW5hYmxlZBIsLmJsdWVhcGkuZ2MudjEuU2V0UGF5ZXJBY2NvdW50RW5hYmxlZFJlcXVlc3QaLS5ibHVlYXBpLmdjLnYxLlNldFBheWVyQWNjb3VudEVuYWJsZWRSZXNwb25zZSIvgtPkkwIpOgEqIiQvdjEvbWFuYWdlbWVudHMvYWNjb3VudHMve2NvbXBhbnlJZH0SmwEKFUdldFBheWVyQWNjb3VudFN0YXR1cxIrLmJsdWVhcGkuZ2MudjEuR2V0UGF5ZXJBY2NvdW50U3RhdHVzUmVxdWVzdBosLmJsdWVhcGkuZ2MudjEuR2V0UGF5ZXJBY2NvdW50U3RhdHVzUmVzcG9uc2UiJ4LT5JMCIRIfL3YxL21hbmFnZW1lbnRzL2FjY291bnRzL3N0YXR1cxKNAQoRTGlzdEJpbGxpbmdHcm91cHMSJy5ibHVlYXBpLmdjLnYxLkxpc3RCaWxsaW5nR3JvdXBzUmVxdWVzdBooLmJsdWVhcGkuZ2MudjEuTGlzdEJpbGxpbmdHcm91cHNSZXNwb25zZSIlgtPkkwIfEh0vdjEvbWFuYWdlbWVudHMvYmlsbGluZ2dyb3VwcxKoAQoVU2V0QmlsbGluZ0dyb3VwU3RhdHVzEisuYmx1ZWFwaS5nYy52MS5TZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXF1ZXN0GiwuYmx1ZWFwaS5nYy52MS5TZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXNwb25zZSI0gtPkkwIuOgEqIikvdjEvbWFuYWdlbWVudHMvYmlsbGluZ2dyb3Vwcy97Y29tcGFueUlkfRKgAQoVR2V0QmlsbGluZ0dyb3VwU3RhdHVzEisuYmx1ZWFwaS5nYy52MS5HZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXF1ZXN0GiwuYmx1ZWFwaS5nYy52MS5HZXRCaWxsaW5nR3JvdXBTdGF0dXNSZXNwb25zZSIsgtPkkwImEiQvdjEvbWFuYWdlbWVudHMvYmlsbGluZ2dyb3Vwcy9zdGF0dXMSoAEKFFZhbGlkYXRlQmlsbGluZ0dyb3VwEiouYmx1ZWFwaS5nYy52MS5WYWxpZGF0ZUJpbGxpbmdHcm91cFJlcXVlc3QaKy5ibHVlYXBpLmdjLnYxLlZhbGlkYXRlQmlsbGluZ0dyb3VwUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL29uYm9hcmRpbmcvYmlsbGluZ2dyb3VwOnZhbGlkYXRlEqMBChJHZXRBd3NQcml2YXRlT2ZmZXISKC5ibHVlYXBpLmdjLnYxLkdldEF3c1ByaXZhdGVPZmZlclJlcXVlc3QaKS5ibHVlYXBpLmdjLnYxLkdldEF3c1ByaXZhdGVPZmZlclJlc3BvbnNlIjiC0+STAjISMC92MS9vbmJvYXJkaW5nL2F3cy9wcml2YXRlb2ZmZXIve3BheWVyQWNjb3VudElkfRKvAQoXQWNjZXB0QmlsbGluZ0dyb3VwVGVybXMSLS5ibHVlYXBpLmdjLnYxLkFjY2VwdEJpbGxpbmdHcm91cFRlcm1zUmVxdWVzdBouLmJsdWVhcGkuZ2MudjEuQWNjZXB0QmlsbGluZ0dyb3VwVGVybXNSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEvbWFuYWdlbWVudHMvYmlsbGluZ2dyb3Vwcy90ZXJtczphY2NlcHQSzwEKIkdldEd1YXJhbnRlZWRDb21taXRtZW50VGVtcGxhdGVVcmwSOC5ibHVlYXBpLmdjLnYxLkdldEd1YXJhbnRlZWRDb21taXRtZW50VGVtcGxhdGVVcmxSZXF1ZXN0GjkuYmx1ZWFwaS5nYy52MS5HZXRHdWFyYW50ZWVkQ29tbWl0bWVudFRlbXBsYXRlVXJsUmVzcG9uc2UiNILT5JMCLhIsL3YxL29uYm9hcmRpbmcvYXdzL2NmdGVtcGxhdGUvZ3VhcmFudGVlZDp1cmwSyAEKIENyZWF0ZUd1YXJhbnRlZWRDb21taXRtZW50QWNjZXNzEjYuYmx1ZWFwaS5nYy52MS5DcmVhdGVHdWFyYW50ZWVkQ29tbWl0bWVudEFjY2Vzc1JlcXVlc3QaNy5ibHVlYXBpLmdjLnYxLkNyZWF0ZUd1YXJhbnRlZWRDb21taXRtZW50QWNjZXNzUmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL29uYm9hcmRpbmcvYXdzL2NmdGVtcGxhdGUvZ3VhcmFudGVlZBKWAQoUU3RhcnRBenVyZU9uYm9hcmRpbmcSKi5ibHVlYXBpLmdjLnYxLlN0YXJ0QXp1cmVPbmJvYXJkaW5nUmVxdWVzdBorLmJsdWVhcGkuZ2MudjEuU3RhcnRBenVyZU9uYm9hcmRpbmdSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvb25ib2FyZGluZy9henVyZS9zdGFydBKgAQoVVXBkYXRlQXp1cmVPbmJvYXJkaW5nEisuYmx1ZWFwaS5nYy52MS5VcGRhdGVBenVyZU9uYm9hcmRpbmdSZXF1ZXN0GiMuYmx1ZWFwaS5nYy52MS5BenVyZU9uYm9hcmRpbmdTdGF0ZSI1gtPkkwIvOgEqIiovdjEvb25ib2FyZGluZy9henVyZS97b25ib2FyZGluZ0lkfTp1cGRhdGUSswEKGUdldEF6dXJlT25ib2FyZGluZ0F1dGhVcmwSLy5ibHVlYXBpLmdjLnYxLkdldEF6dXJlT25ib2FyZGluZ0F1dGhVcmxSZXF1ZXN0GjAuYmx1ZWFwaS5nYy52MS5HZXRBenVyZU9uYm9hcmRpbmdBdXRoVXJsUmVzcG9uc2UiM4LT5JMCLRIrL3YxL29uYm9hcmRpbmcvYXp1cmUve29uYm9hcmRpbmdJZH0vYXV0aHVybBKmAQoXVmFsaWRhdGVBenVyZUFwcEluc3RhbGwSLS5ibHVlYXBpLmdjLnYxLlZhbGlkYXRlQXp1cmVBcHBJbnN0YWxsUmVxdWVzdBojLmJsdWVhcGkuZ2MudjEuQXp1cmVPbmJvYXJkaW5nU3RhdGUiN4LT5JMCMToBKiIsL3YxL29uYm9hcmRpbmcvYXp1cmUve29uYm9hcmRpbmdJZH0vdmFsaWRhdGUSugEKG0xpc3RBenVyZU9uYm9hcmRpbmdBY2NvdW50cxIxLmJsdWVhcGkuZ2MudjEuTGlzdEF6dXJlT25ib2FyZGluZ0FjY291bnRzUmVxdWVzdBoyLmJsdWVhcGkuZ2MudjEuTGlzdEF6dXJlT25ib2FyZGluZ0FjY291bnRzUmVzcG9uc2UiNILT5JMCLhIsL3YxL29uYm9hcmRpbmcvYXp1cmUve29uYm9hcmRpbmdJZH0vYWNjb3VudHMSogEKFkNyZWF0ZUF6dXJlSW50ZWdyYXRpb24SLC5ibHVlYXBpLmdjLnYxLkNyZWF0ZUF6dXJlSW50ZWdyYXRpb25SZXF1ZXN0Gi0uYmx1ZWFwaS5nYy52MS5DcmVhdGVBenVyZUludGVncmF0aW9uUmVzcG9uc2UiK4LT5JMCJToBKiIgL3YxL29uYm9hcmRpbmcvYXp1cmUvaW50ZWdyYXRpb24SnQEKFUxpc3RBenVyZUludGVncmF0aW9ucxIrLmJsdWVhcGkuZ2MudjEuTGlzdEF6dXJlSW50ZWdyYXRpb25zUmVxdWVzdBosLmJsdWVhcGkuZ2MudjEuTGlzdEF6dXJlSW50ZWdyYXRpb25zUmVzcG9uc2UiKYLT5JMCIxIhL3YxL29uYm9hcmRpbmcvYXp1cmUvaW50ZWdyYXRpb25zGqIBkkGeARJQKEFscGhhKSBHdWFyYW50ZWVkQ29tbWl0bWVudHMgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvZ2MaSgoSU2VydmljZSBkZWZpbml0aW9uEjRodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vZ2MvQlUKFGNsb3VkLmFscGhhdXMuYXBpLmdjQhpHdWFyYW50ZWVkQ29tbWl0bWVudHNQcm90b1ohZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL2djYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_protoc_gen_openapiv2_options_annotations]);
18
19
 
19
20
  /**
20
21
  * @generated from message blueapi.gc.v1.ListOrgsRequest
@@ -114,6 +115,38 @@ export type GetCommitmentsUtilizationRequest = Message<"blueapi.gc.v1.GetCommitm
114
115
  export const GetCommitmentsUtilizationRequestSchema: GenMessage<GetCommitmentsUtilizationRequest> = /*@__PURE__*/
115
116
  messageDesc(file_gc_v1_gc, 4);
116
117
 
118
+ /**
119
+ * @generated from message blueapi.gc.v1.ReadCommitmentReportsRequest
120
+ */
121
+ export type ReadCommitmentReportsRequest = Message<"blueapi.gc.v1.ReadCommitmentReportsRequest"> & {
122
+ };
123
+
124
+ /**
125
+ * Describes the message blueapi.gc.v1.ReadCommitmentReportsRequest.
126
+ * Use `create(ReadCommitmentReportsRequestSchema)` to create a new message.
127
+ */
128
+ export const ReadCommitmentReportsRequestSchema: GenMessage<ReadCommitmentReportsRequest> = /*@__PURE__*/
129
+ messageDesc(file_gc_v1_gc, 5);
130
+
131
+ /**
132
+ * @generated from message blueapi.gc.v1.ReadCommitmentReportAccountsRequest
133
+ */
134
+ export type ReadCommitmentReportAccountsRequest = Message<"blueapi.gc.v1.ReadCommitmentReportAccountsRequest"> & {
135
+ /**
136
+ * Required. The billing month. Format: `yyyymm`.
137
+ *
138
+ * @generated from field: string month = 1;
139
+ */
140
+ month: string;
141
+ };
142
+
143
+ /**
144
+ * Describes the message blueapi.gc.v1.ReadCommitmentReportAccountsRequest.
145
+ * Use `create(ReadCommitmentReportAccountsRequestSchema)` to create a new message.
146
+ */
147
+ export const ReadCommitmentReportAccountsRequestSchema: GenMessage<ReadCommitmentReportAccountsRequest> = /*@__PURE__*/
148
+ messageDesc(file_gc_v1_gc, 6);
149
+
117
150
  /**
118
151
  * @generated from message blueapi.gc.v1.GetMetricsRequest
119
152
  */
@@ -129,7 +162,7 @@ export type GetMetricsRequest = Message<"blueapi.gc.v1.GetMetricsRequest"> & {
129
162
  * Use `create(GetMetricsRequestSchema)` to create a new message.
130
163
  */
131
164
  export const GetMetricsRequestSchema: GenMessage<GetMetricsRequest> = /*@__PURE__*/
132
- messageDesc(file_gc_v1_gc, 5);
165
+ messageDesc(file_gc_v1_gc, 7);
133
166
 
134
167
  /**
135
168
  * @generated from message blueapi.gc.v1.ListResourcesRequest
@@ -176,7 +209,7 @@ export type ListResourcesRequest = Message<"blueapi.gc.v1.ListResourcesRequest">
176
209
  * Use `create(ListResourcesRequestSchema)` to create a new message.
177
210
  */
178
211
  export const ListResourcesRequestSchema: GenMessage<ListResourcesRequest> = /*@__PURE__*/
179
- messageDesc(file_gc_v1_gc, 6);
212
+ messageDesc(file_gc_v1_gc, 8);
180
213
 
181
214
  /**
182
215
  * @generated from message blueapi.gc.v1.GetResourceDailyUsageRequest
@@ -218,7 +251,7 @@ export type GetResourceDailyUsageRequest = Message<"blueapi.gc.v1.GetResourceDai
218
251
  * Use `create(GetResourceDailyUsageRequestSchema)` to create a new message.
219
252
  */
220
253
  export const GetResourceDailyUsageRequestSchema: GenMessage<GetResourceDailyUsageRequest> = /*@__PURE__*/
221
- messageDesc(file_gc_v1_gc, 7);
254
+ messageDesc(file_gc_v1_gc, 9);
222
255
 
223
256
  /**
224
257
  * @generated from message blueapi.gc.v1.ListReservableResourcesRequest
@@ -253,7 +286,7 @@ export type ListReservableResourcesRequest = Message<"blueapi.gc.v1.ListReservab
253
286
  * Use `create(ListReservableResourcesRequestSchema)` to create a new message.
254
287
  */
255
288
  export const ListReservableResourcesRequestSchema: GenMessage<ListReservableResourcesRequest> = /*@__PURE__*/
256
- messageDesc(file_gc_v1_gc, 8);
289
+ messageDesc(file_gc_v1_gc, 10);
257
290
 
258
291
  /**
259
292
  * @generated from message blueapi.gc.v1.ListPurchasePlansBySegmentRequest
@@ -266,7 +299,7 @@ export type ListPurchasePlansBySegmentRequest = Message<"blueapi.gc.v1.ListPurch
266
299
  * Use `create(ListPurchasePlansBySegmentRequestSchema)` to create a new message.
267
300
  */
268
301
  export const ListPurchasePlansBySegmentRequestSchema: GenMessage<ListPurchasePlansBySegmentRequest> = /*@__PURE__*/
269
- messageDesc(file_gc_v1_gc, 9);
302
+ messageDesc(file_gc_v1_gc, 11);
270
303
 
271
304
  /**
272
305
  * @generated from message blueapi.gc.v1.GetPurchasePlansDetailsRequest
@@ -283,7 +316,7 @@ export type GetPurchasePlansDetailsRequest = Message<"blueapi.gc.v1.GetPurchaseP
283
316
  * Use `create(GetPurchasePlansDetailsRequestSchema)` to create a new message.
284
317
  */
285
318
  export const GetPurchasePlansDetailsRequestSchema: GenMessage<GetPurchasePlansDetailsRequest> = /*@__PURE__*/
286
- messageDesc(file_gc_v1_gc, 10);
319
+ messageDesc(file_gc_v1_gc, 12);
287
320
 
288
321
  /**
289
322
  * @generated from message blueapi.gc.v1.GetUpdatedPurchasePlansBySegmentRequest
@@ -296,7 +329,7 @@ export type GetUpdatedPurchasePlansBySegmentRequest = Message<"blueapi.gc.v1.Get
296
329
  * Use `create(GetUpdatedPurchasePlansBySegmentRequestSchema)` to create a new message.
297
330
  */
298
331
  export const GetUpdatedPurchasePlansBySegmentRequestSchema: GenMessage<GetUpdatedPurchasePlansBySegmentRequest> = /*@__PURE__*/
299
- messageDesc(file_gc_v1_gc, 11);
332
+ messageDesc(file_gc_v1_gc, 13);
300
333
 
301
334
  /**
302
335
  * @generated from message blueapi.gc.v1.OrgUser
@@ -318,7 +351,7 @@ export type OrgUser = Message<"blueapi.gc.v1.OrgUser"> & {
318
351
  * Use `create(OrgUserSchema)` to create a new message.
319
352
  */
320
353
  export const OrgUserSchema: GenMessage<OrgUser> = /*@__PURE__*/
321
- messageDesc(file_gc_v1_gc, 12);
354
+ messageDesc(file_gc_v1_gc, 14);
322
355
 
323
356
  /**
324
357
  * @generated from message blueapi.gc.v1.Membership
@@ -340,7 +373,7 @@ export type Membership = Message<"blueapi.gc.v1.Membership"> & {
340
373
  * Use `create(MembershipSchema)` to create a new message.
341
374
  */
342
375
  export const MembershipSchema: GenMessage<Membership> = /*@__PURE__*/
343
- messageDesc(file_gc_v1_gc, 13);
376
+ messageDesc(file_gc_v1_gc, 15);
344
377
 
345
378
  /**
346
379
  * @generated from message blueapi.gc.v1.Address
@@ -394,7 +427,7 @@ export type Address = Message<"blueapi.gc.v1.Address"> & {
394
427
  * Use `create(AddressSchema)` to create a new message.
395
428
  */
396
429
  export const AddressSchema: GenMessage<Address> = /*@__PURE__*/
397
- messageDesc(file_gc_v1_gc, 14);
430
+ messageDesc(file_gc_v1_gc, 16);
398
431
 
399
432
  /**
400
433
  * @generated from message blueapi.gc.v1.AwsExistingCur
@@ -436,7 +469,36 @@ export type AwsExistingCur = Message<"blueapi.gc.v1.AwsExistingCur"> & {
436
469
  * Use `create(AwsExistingCurSchema)` to create a new message.
437
470
  */
438
471
  export const AwsExistingCurSchema: GenMessage<AwsExistingCur> = /*@__PURE__*/
439
- messageDesc(file_gc_v1_gc, 15);
472
+ messageDesc(file_gc_v1_gc, 17);
473
+
474
+ /**
475
+ * TermsAcceptance represents the current terms acceptance state for an entity.
476
+ *
477
+ * @generated from message blueapi.gc.v1.TermsAcceptance
478
+ */
479
+ export type TermsAcceptance = Message<"blueapi.gc.v1.TermsAcceptance"> & {
480
+ /**
481
+ * @generated from field: bool accepted = 1;
482
+ */
483
+ accepted: boolean;
484
+
485
+ /**
486
+ * @generated from field: string acceptedAt = 2;
487
+ */
488
+ acceptedAt: string;
489
+
490
+ /**
491
+ * @generated from field: string acceptedBy = 3;
492
+ */
493
+ acceptedBy: string;
494
+ };
495
+
496
+ /**
497
+ * Describes the message blueapi.gc.v1.TermsAcceptance.
498
+ * Use `create(TermsAcceptanceSchema)` to create a new message.
499
+ */
500
+ export const TermsAcceptanceSchema: GenMessage<TermsAcceptance> = /*@__PURE__*/
501
+ messageDesc(file_gc_v1_gc, 18);
440
502
 
441
503
  /**
442
504
  * @generated from message blueapi.gc.v1.RegisterOrgRequest
@@ -488,7 +550,7 @@ export type RegisterOrgRequest = Message<"blueapi.gc.v1.RegisterOrgRequest"> & {
488
550
  * Use `create(RegisterOrgRequestSchema)` to create a new message.
489
551
  */
490
552
  export const RegisterOrgRequestSchema: GenMessage<RegisterOrgRequest> = /*@__PURE__*/
491
- messageDesc(file_gc_v1_gc, 16);
553
+ messageDesc(file_gc_v1_gc, 19);
492
554
 
493
555
  /**
494
556
  * @generated from message blueapi.gc.v1.StartAwsOnboardingRequest
@@ -527,7 +589,7 @@ export type StartAwsOnboardingRequest = Message<"blueapi.gc.v1.StartAwsOnboardin
527
589
  * Use `create(StartAwsOnboardingRequestSchema)` to create a new message.
528
590
  */
529
591
  export const StartAwsOnboardingRequestSchema: GenMessage<StartAwsOnboardingRequest> = /*@__PURE__*/
530
- messageDesc(file_gc_v1_gc, 17);
592
+ messageDesc(file_gc_v1_gc, 20);
531
593
 
532
594
  /**
533
595
  * @generated from message blueapi.gc.v1.GetAwsCloudFormationTemplateRequest
@@ -566,7 +628,7 @@ export type GetAwsCloudFormationTemplateRequest = Message<"blueapi.gc.v1.GetAwsC
566
628
  * Use `create(GetAwsCloudFormationTemplateRequestSchema)` to create a new message.
567
629
  */
568
630
  export const GetAwsCloudFormationTemplateRequestSchema: GenMessage<GetAwsCloudFormationTemplateRequest> = /*@__PURE__*/
569
- messageDesc(file_gc_v1_gc, 18);
631
+ messageDesc(file_gc_v1_gc, 21);
570
632
 
571
633
  /**
572
634
  * @generated from message blueapi.gc.v1.GetAwsLaunchStackUrlRequest
@@ -605,7 +667,7 @@ export type GetAwsLaunchStackUrlRequest = Message<"blueapi.gc.v1.GetAwsLaunchSta
605
667
  * Use `create(GetAwsLaunchStackUrlRequestSchema)` to create a new message.
606
668
  */
607
669
  export const GetAwsLaunchStackUrlRequestSchema: GenMessage<GetAwsLaunchStackUrlRequest> = /*@__PURE__*/
608
- messageDesc(file_gc_v1_gc, 19);
670
+ messageDesc(file_gc_v1_gc, 22);
609
671
 
610
672
  /**
611
673
  * @generated from message blueapi.gc.v1.VerifyAwsOnboardingRequest
@@ -655,7 +717,7 @@ export type VerifyAwsOnboardingRequest = Message<"blueapi.gc.v1.VerifyAwsOnboard
655
717
  * Use `create(VerifyAwsOnboardingRequestSchema)` to create a new message.
656
718
  */
657
719
  export const VerifyAwsOnboardingRequestSchema: GenMessage<VerifyAwsOnboardingRequest> = /*@__PURE__*/
658
- messageDesc(file_gc_v1_gc, 20);
720
+ messageDesc(file_gc_v1_gc, 23);
659
721
 
660
722
  /**
661
723
  * @generated from message blueapi.gc.v1.GetOnboardingStatusRequest
@@ -688,7 +750,7 @@ export type GetOnboardingStatusRequest = Message<"blueapi.gc.v1.GetOnboardingSta
688
750
  * Use `create(GetOnboardingStatusRequestSchema)` to create a new message.
689
751
  */
690
752
  export const GetOnboardingStatusRequestSchema: GenMessage<GetOnboardingStatusRequest> = /*@__PURE__*/
691
- messageDesc(file_gc_v1_gc, 21);
753
+ messageDesc(file_gc_v1_gc, 24);
692
754
 
693
755
  /**
694
756
  * @generated from message blueapi.gc.v1.ListPayerAccountsRequest
@@ -701,7 +763,7 @@ export type ListPayerAccountsRequest = Message<"blueapi.gc.v1.ListPayerAccountsR
701
763
  * Use `create(ListPayerAccountsRequestSchema)` to create a new message.
702
764
  */
703
765
  export const ListPayerAccountsRequestSchema: GenMessage<ListPayerAccountsRequest> = /*@__PURE__*/
704
- messageDesc(file_gc_v1_gc, 22);
766
+ messageDesc(file_gc_v1_gc, 25);
705
767
 
706
768
  /**
707
769
  * @generated from message blueapi.gc.v1.SetPayerAccountEnabledRequest
@@ -723,7 +785,7 @@ export type SetPayerAccountEnabledRequest = Message<"blueapi.gc.v1.SetPayerAccou
723
785
  * Use `create(SetPayerAccountEnabledRequestSchema)` to create a new message.
724
786
  */
725
787
  export const SetPayerAccountEnabledRequestSchema: GenMessage<SetPayerAccountEnabledRequest> = /*@__PURE__*/
726
- messageDesc(file_gc_v1_gc, 23);
788
+ messageDesc(file_gc_v1_gc, 26);
727
789
 
728
790
  /**
729
791
  * @generated from message blueapi.gc.v1.GetPayerAccountStatusRequest
@@ -736,7 +798,7 @@ export type GetPayerAccountStatusRequest = Message<"blueapi.gc.v1.GetPayerAccoun
736
798
  * Use `create(GetPayerAccountStatusRequestSchema)` to create a new message.
737
799
  */
738
800
  export const GetPayerAccountStatusRequestSchema: GenMessage<GetPayerAccountStatusRequest> = /*@__PURE__*/
739
- messageDesc(file_gc_v1_gc, 24);
801
+ messageDesc(file_gc_v1_gc, 27);
740
802
 
741
803
  /**
742
804
  * @generated from message blueapi.gc.v1.ListBillingGroupsRequest
@@ -749,7 +811,7 @@ export type ListBillingGroupsRequest = Message<"blueapi.gc.v1.ListBillingGroupsR
749
811
  * Use `create(ListBillingGroupsRequestSchema)` to create a new message.
750
812
  */
751
813
  export const ListBillingGroupsRequestSchema: GenMessage<ListBillingGroupsRequest> = /*@__PURE__*/
752
- messageDesc(file_gc_v1_gc, 25);
814
+ messageDesc(file_gc_v1_gc, 28);
753
815
 
754
816
  /**
755
817
  * @generated from message blueapi.gc.v1.SetBillingGroupStatusRequest
@@ -780,7 +842,7 @@ export type SetBillingGroupStatusRequest = Message<"blueapi.gc.v1.SetBillingGrou
780
842
  * Use `create(SetBillingGroupStatusRequestSchema)` to create a new message.
781
843
  */
782
844
  export const SetBillingGroupStatusRequestSchema: GenMessage<SetBillingGroupStatusRequest> = /*@__PURE__*/
783
- messageDesc(file_gc_v1_gc, 26);
845
+ messageDesc(file_gc_v1_gc, 29);
784
846
 
785
847
  /**
786
848
  * @generated from message blueapi.gc.v1.GetBillingGroupStatusRequest
@@ -793,7 +855,7 @@ export type GetBillingGroupStatusRequest = Message<"blueapi.gc.v1.GetBillingGrou
793
855
  * Use `create(GetBillingGroupStatusRequestSchema)` to create a new message.
794
856
  */
795
857
  export const GetBillingGroupStatusRequestSchema: GenMessage<GetBillingGroupStatusRequest> = /*@__PURE__*/
796
- messageDesc(file_gc_v1_gc, 27);
858
+ messageDesc(file_gc_v1_gc, 30);
797
859
 
798
860
  /**
799
861
  * @generated from message blueapi.gc.v1.ValidateBillingGroupRequest
@@ -821,7 +883,7 @@ export type ValidateBillingGroupRequest = Message<"blueapi.gc.v1.ValidateBilling
821
883
  * Use `create(ValidateBillingGroupRequestSchema)` to create a new message.
822
884
  */
823
885
  export const ValidateBillingGroupRequestSchema: GenMessage<ValidateBillingGroupRequest> = /*@__PURE__*/
824
- messageDesc(file_gc_v1_gc, 28);
886
+ messageDesc(file_gc_v1_gc, 31);
825
887
 
826
888
  /**
827
889
  * @generated from message blueapi.gc.v1.GetAwsPrivateOfferRequest
@@ -849,7 +911,20 @@ export type GetAwsPrivateOfferRequest = Message<"blueapi.gc.v1.GetAwsPrivateOffe
849
911
  * Use `create(GetAwsPrivateOfferRequestSchema)` to create a new message.
850
912
  */
851
913
  export const GetAwsPrivateOfferRequestSchema: GenMessage<GetAwsPrivateOfferRequest> = /*@__PURE__*/
852
- messageDesc(file_gc_v1_gc, 29);
914
+ messageDesc(file_gc_v1_gc, 32);
915
+
916
+ /**
917
+ * @generated from message blueapi.gc.v1.AcceptBillingGroupTermsRequest
918
+ */
919
+ export type AcceptBillingGroupTermsRequest = Message<"blueapi.gc.v1.AcceptBillingGroupTermsRequest"> & {
920
+ };
921
+
922
+ /**
923
+ * Describes the message blueapi.gc.v1.AcceptBillingGroupTermsRequest.
924
+ * Use `create(AcceptBillingGroupTermsRequestSchema)` to create a new message.
925
+ */
926
+ export const AcceptBillingGroupTermsRequestSchema: GenMessage<AcceptBillingGroupTermsRequest> = /*@__PURE__*/
927
+ messageDesc(file_gc_v1_gc, 33);
853
928
 
854
929
  /**
855
930
  * @generated from message blueapi.gc.v1.SaveCommitmentsPlanAsDraftRequest
@@ -1039,7 +1114,7 @@ export type SaveCommitmentsPlanAsDraftRequest = Message<"blueapi.gc.v1.SaveCommi
1039
1114
  * Use `create(SaveCommitmentsPlanAsDraftRequestSchema)` to create a new message.
1040
1115
  */
1041
1116
  export const SaveCommitmentsPlanAsDraftRequestSchema: GenMessage<SaveCommitmentsPlanAsDraftRequest> = /*@__PURE__*/
1042
- messageDesc(file_gc_v1_gc, 30);
1117
+ messageDesc(file_gc_v1_gc, 34);
1043
1118
 
1044
1119
  /**
1045
1120
  * @generated from message blueapi.gc.v1.ListDraftPurchasePlansRequest
@@ -1063,7 +1138,7 @@ export type ListDraftPurchasePlansRequest = Message<"blueapi.gc.v1.ListDraftPurc
1063
1138
  * Use `create(ListDraftPurchasePlansRequestSchema)` to create a new message.
1064
1139
  */
1065
1140
  export const ListDraftPurchasePlansRequestSchema: GenMessage<ListDraftPurchasePlansRequest> = /*@__PURE__*/
1066
- messageDesc(file_gc_v1_gc, 31);
1141
+ messageDesc(file_gc_v1_gc, 35);
1067
1142
 
1068
1143
  /**
1069
1144
  * @generated from message blueapi.gc.v1.DeleteDraftPurchasePlanRequest
@@ -1087,7 +1162,7 @@ export type DeleteDraftPurchasePlanRequest = Message<"blueapi.gc.v1.DeleteDraftP
1087
1162
  * Use `create(DeleteDraftPurchasePlanRequestSchema)` to create a new message.
1088
1163
  */
1089
1164
  export const DeleteDraftPurchasePlanRequestSchema: GenMessage<DeleteDraftPurchasePlanRequest> = /*@__PURE__*/
1090
- messageDesc(file_gc_v1_gc, 32);
1165
+ messageDesc(file_gc_v1_gc, 36);
1091
1166
 
1092
1167
  /**
1093
1168
  * @generated from message blueapi.gc.v1.GetAvailableCommitmentTypesRequest
@@ -1107,7 +1182,7 @@ export type GetAvailableCommitmentTypesRequest = Message<"blueapi.gc.v1.GetAvail
1107
1182
  * Use `create(GetAvailableCommitmentTypesRequestSchema)` to create a new message.
1108
1183
  */
1109
1184
  export const GetAvailableCommitmentTypesRequestSchema: GenMessage<GetAvailableCommitmentTypesRequest> = /*@__PURE__*/
1110
- messageDesc(file_gc_v1_gc, 33);
1185
+ messageDesc(file_gc_v1_gc, 37);
1111
1186
 
1112
1187
  /**
1113
1188
  * CreateCustomCommitmentPlanRequest creates a new top-down custom commitment plan.
@@ -1223,7 +1298,7 @@ export type CreateCustomCommitmentPlanRequest = Message<"blueapi.gc.v1.CreateCus
1223
1298
  * Use `create(CreateCustomCommitmentPlanRequestSchema)` to create a new message.
1224
1299
  */
1225
1300
  export const CreateCustomCommitmentPlanRequestSchema: GenMessage<CreateCustomCommitmentPlanRequest> = /*@__PURE__*/
1226
- messageDesc(file_gc_v1_gc, 34);
1301
+ messageDesc(file_gc_v1_gc, 38);
1227
1302
 
1228
1303
  /**
1229
1304
  * @generated from message blueapi.gc.v1.GetGuaranteedCommitmentTemplateUrlRequest
@@ -1242,7 +1317,7 @@ export type GetGuaranteedCommitmentTemplateUrlRequest = Message<"blueapi.gc.v1.G
1242
1317
  * Use `create(GetGuaranteedCommitmentTemplateUrlRequestSchema)` to create a new message.
1243
1318
  */
1244
1319
  export const GetGuaranteedCommitmentTemplateUrlRequestSchema: GenMessage<GetGuaranteedCommitmentTemplateUrlRequest> = /*@__PURE__*/
1245
- messageDesc(file_gc_v1_gc, 35);
1320
+ messageDesc(file_gc_v1_gc, 39);
1246
1321
 
1247
1322
  /**
1248
1323
  * @generated from message blueapi.gc.v1.CreateGuaranteedCommitmentAccessRequest
@@ -1268,7 +1343,7 @@ export type CreateGuaranteedCommitmentAccessRequest = Message<"blueapi.gc.v1.Cre
1268
1343
  * Use `create(CreateGuaranteedCommitmentAccessRequestSchema)` to create a new message.
1269
1344
  */
1270
1345
  export const CreateGuaranteedCommitmentAccessRequestSchema: GenMessage<CreateGuaranteedCommitmentAccessRequest> = /*@__PURE__*/
1271
- messageDesc(file_gc_v1_gc, 36);
1346
+ messageDesc(file_gc_v1_gc, 40);
1272
1347
 
1273
1348
  /**
1274
1349
  * StartAzureOnboardingRequest initiates Azure onboarding (Step 1).
@@ -1319,7 +1394,7 @@ export type StartAzureOnboardingRequest = Message<"blueapi.gc.v1.StartAzureOnboa
1319
1394
  * Use `create(StartAzureOnboardingRequestSchema)` to create a new message.
1320
1395
  */
1321
1396
  export const StartAzureOnboardingRequestSchema: GenMessage<StartAzureOnboardingRequest> = /*@__PURE__*/
1322
- messageDesc(file_gc_v1_gc, 37);
1397
+ messageDesc(file_gc_v1_gc, 41);
1323
1398
 
1324
1399
  /**
1325
1400
  * @generated from message blueapi.gc.v1.UpdateAzureOnboardingRequest
@@ -1467,7 +1542,7 @@ export type UpdateAzureOnboardingRequest = Message<"blueapi.gc.v1.UpdateAzureOnb
1467
1542
  * Use `create(UpdateAzureOnboardingRequestSchema)` to create a new message.
1468
1543
  */
1469
1544
  export const UpdateAzureOnboardingRequestSchema: GenMessage<UpdateAzureOnboardingRequest> = /*@__PURE__*/
1470
- messageDesc(file_gc_v1_gc, 38);
1545
+ messageDesc(file_gc_v1_gc, 42);
1471
1546
 
1472
1547
  /**
1473
1548
  * GetAzureOnboardingAuthUrlRequest fetches the OAuth authorization URL (Step 4).
@@ -1509,7 +1584,7 @@ export type GetAzureOnboardingAuthUrlRequest = Message<"blueapi.gc.v1.GetAzureOn
1509
1584
  * Use `create(GetAzureOnboardingAuthUrlRequestSchema)` to create a new message.
1510
1585
  */
1511
1586
  export const GetAzureOnboardingAuthUrlRequestSchema: GenMessage<GetAzureOnboardingAuthUrlRequest> = /*@__PURE__*/
1512
- messageDesc(file_gc_v1_gc, 39);
1587
+ messageDesc(file_gc_v1_gc, 43);
1513
1588
 
1514
1589
  /**
1515
1590
  * @generated from message blueapi.gc.v1.ValidateAzureAppInstallRequest
@@ -1647,7 +1722,7 @@ export type ValidateAzureAppInstallRequest = Message<"blueapi.gc.v1.ValidateAzur
1647
1722
  * Use `create(ValidateAzureAppInstallRequestSchema)` to create a new message.
1648
1723
  */
1649
1724
  export const ValidateAzureAppInstallRequestSchema: GenMessage<ValidateAzureAppInstallRequest> = /*@__PURE__*/
1650
- messageDesc(file_gc_v1_gc, 40);
1725
+ messageDesc(file_gc_v1_gc, 44);
1651
1726
 
1652
1727
  /**
1653
1728
  * ListAzureOnboardingAccountsRequest lists available Azure accounts (Step 6).
@@ -1675,7 +1750,7 @@ export type ListAzureOnboardingAccountsRequest = Message<"blueapi.gc.v1.ListAzur
1675
1750
  * Use `create(ListAzureOnboardingAccountsRequestSchema)` to create a new message.
1676
1751
  */
1677
1752
  export const ListAzureOnboardingAccountsRequestSchema: GenMessage<ListAzureOnboardingAccountsRequest> = /*@__PURE__*/
1678
- messageDesc(file_gc_v1_gc, 41);
1753
+ messageDesc(file_gc_v1_gc, 45);
1679
1754
 
1680
1755
  /**
1681
1756
  * CreateAzureIntegrationRequest creates the final Azure integration (Step 8).
@@ -1793,7 +1868,7 @@ export type CreateAzureIntegrationRequest = Message<"blueapi.gc.v1.CreateAzureIn
1793
1868
  * Use `create(CreateAzureIntegrationRequestSchema)` to create a new message.
1794
1869
  */
1795
1870
  export const CreateAzureIntegrationRequestSchema: GenMessage<CreateAzureIntegrationRequest> = /*@__PURE__*/
1796
- messageDesc(file_gc_v1_gc, 42);
1871
+ messageDesc(file_gc_v1_gc, 46);
1797
1872
 
1798
1873
  /**
1799
1874
  * ListAzureIntegrationsRequest lists integrations to verify completion (Step 9).
@@ -1814,7 +1889,7 @@ export type ListAzureIntegrationsRequest = Message<"blueapi.gc.v1.ListAzureInteg
1814
1889
  * Use `create(ListAzureIntegrationsRequestSchema)` to create a new message.
1815
1890
  */
1816
1891
  export const ListAzureIntegrationsRequestSchema: GenMessage<ListAzureIntegrationsRequest> = /*@__PURE__*/
1817
- messageDesc(file_gc_v1_gc, 43);
1892
+ messageDesc(file_gc_v1_gc, 47);
1818
1893
 
1819
1894
  /**
1820
1895
  * @generated from message blueapi.gc.v1.Org
@@ -1841,7 +1916,7 @@ export type Org = Message<"blueapi.gc.v1.Org"> & {
1841
1916
  * Use `create(OrgSchema)` to create a new message.
1842
1917
  */
1843
1918
  export const OrgSchema: GenMessage<Org> = /*@__PURE__*/
1844
- messageDesc(file_gc_v1_gc, 44);
1919
+ messageDesc(file_gc_v1_gc, 48);
1845
1920
 
1846
1921
  /**
1847
1922
  * @generated from message blueapi.gc.v1.CommitmentPlanDetails
@@ -1978,7 +2053,7 @@ export type CommitmentPlanDetails = Message<"blueapi.gc.v1.CommitmentPlanDetails
1978
2053
  * Use `create(CommitmentPlanDetailsSchema)` to create a new message.
1979
2054
  */
1980
2055
  export const CommitmentPlanDetailsSchema: GenMessage<CommitmentPlanDetails> = /*@__PURE__*/
1981
- messageDesc(file_gc_v1_gc, 45);
2056
+ messageDesc(file_gc_v1_gc, 49);
1982
2057
 
1983
2058
  /**
1984
2059
  * @generated from message blueapi.gc.v1.CommitmentPlanLineItem
@@ -2155,7 +2230,7 @@ export type CommitmentPlanLineItem = Message<"blueapi.gc.v1.CommitmentPlanLineIt
2155
2230
  * Use `create(CommitmentPlanLineItemSchema)` to create a new message.
2156
2231
  */
2157
2232
  export const CommitmentPlanLineItemSchema: GenMessage<CommitmentPlanLineItem> = /*@__PURE__*/
2158
- messageDesc(file_gc_v1_gc, 46);
2233
+ messageDesc(file_gc_v1_gc, 50);
2159
2234
 
2160
2235
  /**
2161
2236
  * @generated from message blueapi.gc.v1.CommitmentPlanResourceMatch
@@ -2302,7 +2377,7 @@ export type CommitmentPlanResourceMatch = Message<"blueapi.gc.v1.CommitmentPlanR
2302
2377
  * Use `create(CommitmentPlanResourceMatchSchema)` to create a new message.
2303
2378
  */
2304
2379
  export const CommitmentPlanResourceMatchSchema: GenMessage<CommitmentPlanResourceMatch> = /*@__PURE__*/
2305
- messageDesc(file_gc_v1_gc, 47);
2380
+ messageDesc(file_gc_v1_gc, 51);
2306
2381
 
2307
2382
  /**
2308
2383
  * @generated from message blueapi.gc.v1.Lease
@@ -2374,7 +2449,7 @@ export type Lease = Message<"blueapi.gc.v1.Lease"> & {
2374
2449
  * Use `create(LeaseSchema)` to create a new message.
2375
2450
  */
2376
2451
  export const LeaseSchema: GenMessage<Lease> = /*@__PURE__*/
2377
- messageDesc(file_gc_v1_gc, 48);
2452
+ messageDesc(file_gc_v1_gc, 52);
2378
2453
 
2379
2454
  /**
2380
2455
  * @generated from message blueapi.gc.v1.DailyUtilization
@@ -2401,7 +2476,7 @@ export type DailyUtilization = Message<"blueapi.gc.v1.DailyUtilization"> & {
2401
2476
  * Use `create(DailyUtilizationSchema)` to create a new message.
2402
2477
  */
2403
2478
  export const DailyUtilizationSchema: GenMessage<DailyUtilization> = /*@__PURE__*/
2404
- messageDesc(file_gc_v1_gc, 49);
2479
+ messageDesc(file_gc_v1_gc, 53);
2405
2480
 
2406
2481
  /**
2407
2482
  * @generated from message blueapi.gc.v1.Commitment
@@ -2633,7 +2708,7 @@ export type Commitment = Message<"blueapi.gc.v1.Commitment"> & {
2633
2708
  * Use `create(CommitmentSchema)` to create a new message.
2634
2709
  */
2635
2710
  export const CommitmentSchema: GenMessage<Commitment> = /*@__PURE__*/
2636
- messageDesc(file_gc_v1_gc, 50);
2711
+ messageDesc(file_gc_v1_gc, 54);
2637
2712
 
2638
2713
  /**
2639
2714
  * @generated from message blueapi.gc.v1.ListCommitmentsResponse
@@ -2650,7 +2725,7 @@ export type ListCommitmentsResponse = Message<"blueapi.gc.v1.ListCommitmentsResp
2650
2725
  * Use `create(ListCommitmentsResponseSchema)` to create a new message.
2651
2726
  */
2652
2727
  export const ListCommitmentsResponseSchema: GenMessage<ListCommitmentsResponse> = /*@__PURE__*/
2653
- messageDesc(file_gc_v1_gc, 51);
2728
+ messageDesc(file_gc_v1_gc, 55);
2654
2729
 
2655
2730
  /**
2656
2731
  * @generated from message blueapi.gc.v1.CommitmentsChartData
@@ -2677,7 +2752,7 @@ export type CommitmentsChartData = Message<"blueapi.gc.v1.CommitmentsChartData">
2677
2752
  * Use `create(CommitmentsChartDataSchema)` to create a new message.
2678
2753
  */
2679
2754
  export const CommitmentsChartDataSchema: GenMessage<CommitmentsChartData> = /*@__PURE__*/
2680
- messageDesc(file_gc_v1_gc, 52);
2755
+ messageDesc(file_gc_v1_gc, 56);
2681
2756
 
2682
2757
  /**
2683
2758
  * @generated from message blueapi.gc.v1.CommitmentsChartResponse
@@ -2694,7 +2769,7 @@ export type CommitmentsChartResponse = Message<"blueapi.gc.v1.CommitmentsChartRe
2694
2769
  * Use `create(CommitmentsChartResponseSchema)` to create a new message.
2695
2770
  */
2696
2771
  export const CommitmentsChartResponseSchema: GenMessage<CommitmentsChartResponse> = /*@__PURE__*/
2697
- messageDesc(file_gc_v1_gc, 53);
2772
+ messageDesc(file_gc_v1_gc, 57);
2698
2773
 
2699
2774
  /**
2700
2775
  * @generated from message blueapi.gc.v1.CommitmentsUtilizationData
@@ -2756,7 +2831,7 @@ export type CommitmentsUtilizationData = Message<"blueapi.gc.v1.CommitmentsUtili
2756
2831
  * Use `create(CommitmentsUtilizationDataSchema)` to create a new message.
2757
2832
  */
2758
2833
  export const CommitmentsUtilizationDataSchema: GenMessage<CommitmentsUtilizationData> = /*@__PURE__*/
2759
- messageDesc(file_gc_v1_gc, 54);
2834
+ messageDesc(file_gc_v1_gc, 58);
2760
2835
 
2761
2836
  /**
2762
2837
  * @generated from message blueapi.gc.v1.CommitmentsUtilizationResponse
@@ -2773,7 +2848,126 @@ export type CommitmentsUtilizationResponse = Message<"blueapi.gc.v1.CommitmentsU
2773
2848
  * Use `create(CommitmentsUtilizationResponseSchema)` to create a new message.
2774
2849
  */
2775
2850
  export const CommitmentsUtilizationResponseSchema: GenMessage<CommitmentsUtilizationResponse> = /*@__PURE__*/
2776
- messageDesc(file_gc_v1_gc, 55);
2851
+ messageDesc(file_gc_v1_gc, 59);
2852
+
2853
+ /**
2854
+ * @generated from message blueapi.gc.v1.CommitmentReport
2855
+ */
2856
+ export type CommitmentReport = Message<"blueapi.gc.v1.CommitmentReport"> & {
2857
+ /**
2858
+ * @generated from field: string month = 1;
2859
+ */
2860
+ month: string;
2861
+
2862
+ /**
2863
+ * @generated from field: double billUnadjusted = 2;
2864
+ */
2865
+ billUnadjusted: number;
2866
+
2867
+ /**
2868
+ * @generated from field: double billOptimized = 3;
2869
+ */
2870
+ billOptimized: number;
2871
+
2872
+ /**
2873
+ * @generated from field: double grossSavings = 4;
2874
+ */
2875
+ grossSavings: number;
2876
+
2877
+ /**
2878
+ * @generated from field: double riskPremium = 5;
2879
+ */
2880
+ riskPremium: number;
2881
+
2882
+ /**
2883
+ * @generated from field: double rebates = 6;
2884
+ */
2885
+ rebates: number;
2886
+
2887
+ /**
2888
+ * @generated from field: double netSavings = 7;
2889
+ */
2890
+ netSavings: number;
2891
+
2892
+ /**
2893
+ * @generated from field: double revenueShare = 8;
2894
+ */
2895
+ revenueShare: number;
2896
+
2897
+ /**
2898
+ * @generated from field: double revenueShareRate = 9;
2899
+ */
2900
+ revenueShareRate: number;
2901
+ };
2902
+
2903
+ /**
2904
+ * Describes the message blueapi.gc.v1.CommitmentReport.
2905
+ * Use `create(CommitmentReportSchema)` to create a new message.
2906
+ */
2907
+ export const CommitmentReportSchema: GenMessage<CommitmentReport> = /*@__PURE__*/
2908
+ messageDesc(file_gc_v1_gc, 60);
2909
+
2910
+ /**
2911
+ * @generated from message blueapi.gc.v1.CommitmentReportAccount
2912
+ */
2913
+ export type CommitmentReportAccount = Message<"blueapi.gc.v1.CommitmentReportAccount"> & {
2914
+ /**
2915
+ * @generated from field: string billingGroupId = 1;
2916
+ */
2917
+ billingGroupId: string;
2918
+
2919
+ /**
2920
+ * @generated from field: string billingGroupName = 2;
2921
+ */
2922
+ billingGroupName: string;
2923
+
2924
+ /**
2925
+ * @generated from field: string accountId = 3;
2926
+ */
2927
+ accountId: string;
2928
+
2929
+ /**
2930
+ * @generated from field: string accountName = 4;
2931
+ */
2932
+ accountName: string;
2933
+
2934
+ /**
2935
+ * @generated from field: string cloud = 5;
2936
+ */
2937
+ cloud: string;
2938
+
2939
+ /**
2940
+ * @generated from field: double grossSavings = 6;
2941
+ */
2942
+ grossSavings: number;
2943
+
2944
+ /**
2945
+ * @generated from field: double riskPremium = 7;
2946
+ */
2947
+ riskPremium: number;
2948
+
2949
+ /**
2950
+ * @generated from field: double rebates = 8;
2951
+ */
2952
+ rebates: number;
2953
+
2954
+ /**
2955
+ * @generated from field: double netSavings = 9;
2956
+ */
2957
+ netSavings: number;
2958
+
2959
+ /**
2960
+ * @generated from field: double revenueShare = 10;
2961
+ */
2962
+ revenueShare: number;
2963
+ };
2964
+
2965
+ /**
2966
+ * Describes the message blueapi.gc.v1.CommitmentReportAccount.
2967
+ * Use `create(CommitmentReportAccountSchema)` to create a new message.
2968
+ */
2969
+ export const CommitmentReportAccountSchema: GenMessage<CommitmentReportAccount> = /*@__PURE__*/
2970
+ messageDesc(file_gc_v1_gc, 61);
2777
2971
 
2778
2972
  /**
2779
2973
  * @generated from message blueapi.gc.v1.MetricsResponse
@@ -2865,7 +3059,7 @@ export type MetricsResponse = Message<"blueapi.gc.v1.MetricsResponse"> & {
2865
3059
  * Use `create(MetricsResponseSchema)` to create a new message.
2866
3060
  */
2867
3061
  export const MetricsResponseSchema: GenMessage<MetricsResponse> = /*@__PURE__*/
2868
- messageDesc(file_gc_v1_gc, 56);
3062
+ messageDesc(file_gc_v1_gc, 62);
2869
3063
 
2870
3064
  /**
2871
3065
  * @generated from message blueapi.gc.v1.Resource
@@ -3102,7 +3296,7 @@ export type Resource = Message<"blueapi.gc.v1.Resource"> & {
3102
3296
  * Use `create(ResourceSchema)` to create a new message.
3103
3297
  */
3104
3298
  export const ResourceSchema: GenMessage<Resource> = /*@__PURE__*/
3105
- messageDesc(file_gc_v1_gc, 57);
3299
+ messageDesc(file_gc_v1_gc, 63);
3106
3300
 
3107
3301
  /**
3108
3302
  * @generated from message blueapi.gc.v1.ListResourcesResponse
@@ -3119,7 +3313,7 @@ export type ListResourcesResponse = Message<"blueapi.gc.v1.ListResourcesResponse
3119
3313
  * Use `create(ListResourcesResponseSchema)` to create a new message.
3120
3314
  */
3121
3315
  export const ListResourcesResponseSchema: GenMessage<ListResourcesResponse> = /*@__PURE__*/
3122
- messageDesc(file_gc_v1_gc, 58);
3316
+ messageDesc(file_gc_v1_gc, 64);
3123
3317
 
3124
3318
  /**
3125
3319
  * @generated from message blueapi.gc.v1.ResourceDailyUsage
@@ -3213,7 +3407,7 @@ export type ResourceDailyUsage = Message<"blueapi.gc.v1.ResourceDailyUsage"> & {
3213
3407
  * Use `create(ResourceDailyUsageSchema)` to create a new message.
3214
3408
  */
3215
3409
  export const ResourceDailyUsageSchema: GenMessage<ResourceDailyUsage> = /*@__PURE__*/
3216
- messageDesc(file_gc_v1_gc, 59);
3410
+ messageDesc(file_gc_v1_gc, 65);
3217
3411
 
3218
3412
  /**
3219
3413
  * @generated from message blueapi.gc.v1.GetResourceDailyUsageResponse
@@ -3230,7 +3424,7 @@ export type GetResourceDailyUsageResponse = Message<"blueapi.gc.v1.GetResourceDa
3230
3424
  * Use `create(GetResourceDailyUsageResponseSchema)` to create a new message.
3231
3425
  */
3232
3426
  export const GetResourceDailyUsageResponseSchema: GenMessage<GetResourceDailyUsageResponse> = /*@__PURE__*/
3233
- messageDesc(file_gc_v1_gc, 60);
3427
+ messageDesc(file_gc_v1_gc, 66);
3234
3428
 
3235
3429
  /**
3236
3430
  * ReservableResource is a fully-detailed infrastructure resource returned by ListReservableResources.
@@ -3666,7 +3860,7 @@ export type ReservableResource = Message<"blueapi.gc.v1.ReservableResource"> & {
3666
3860
  * Use `create(ReservableResourceSchema)` to create a new message.
3667
3861
  */
3668
3862
  export const ReservableResourceSchema: GenMessage<ReservableResource> = /*@__PURE__*/
3669
- messageDesc(file_gc_v1_gc, 61);
3863
+ messageDesc(file_gc_v1_gc, 67);
3670
3864
 
3671
3865
  /**
3672
3866
  * @generated from message blueapi.gc.v1.ListReservableResourcesResponse
@@ -3683,7 +3877,7 @@ export type ListReservableResourcesResponse = Message<"blueapi.gc.v1.ListReserva
3683
3877
  * Use `create(ListReservableResourcesResponseSchema)` to create a new message.
3684
3878
  */
3685
3879
  export const ListReservableResourcesResponseSchema: GenMessage<ListReservableResourcesResponse> = /*@__PURE__*/
3686
- messageDesc(file_gc_v1_gc, 62);
3880
+ messageDesc(file_gc_v1_gc, 68);
3687
3881
 
3688
3882
  /**
3689
3883
  * @generated from message blueapi.gc.v1.Segment
@@ -3720,7 +3914,7 @@ export type Segment = Message<"blueapi.gc.v1.Segment"> & {
3720
3914
  * Use `create(SegmentSchema)` to create a new message.
3721
3915
  */
3722
3916
  export const SegmentSchema: GenMessage<Segment> = /*@__PURE__*/
3723
- messageDesc(file_gc_v1_gc, 63);
3917
+ messageDesc(file_gc_v1_gc, 69);
3724
3918
 
3725
3919
  /**
3726
3920
  * @generated from message blueapi.gc.v1.SegmentCreator
@@ -3747,7 +3941,7 @@ export type SegmentCreator = Message<"blueapi.gc.v1.SegmentCreator"> & {
3747
3941
  * Use `create(SegmentCreatorSchema)` to create a new message.
3748
3942
  */
3749
3943
  export const SegmentCreatorSchema: GenMessage<SegmentCreator> = /*@__PURE__*/
3750
- messageDesc(file_gc_v1_gc, 64);
3944
+ messageDesc(file_gc_v1_gc, 70);
3751
3945
 
3752
3946
  /**
3753
3947
  * @generated from message blueapi.gc.v1.PurchasePlan
@@ -3779,7 +3973,7 @@ export type PurchasePlan = Message<"blueapi.gc.v1.PurchasePlan"> & {
3779
3973
  * Use `create(PurchasePlanSchema)` to create a new message.
3780
3974
  */
3781
3975
  export const PurchasePlanSchema: GenMessage<PurchasePlan> = /*@__PURE__*/
3782
- messageDesc(file_gc_v1_gc, 65);
3976
+ messageDesc(file_gc_v1_gc, 71);
3783
3977
 
3784
3978
  /**
3785
3979
  * @generated from message blueapi.gc.v1.SegmentDetails
@@ -3924,7 +4118,7 @@ export type SegmentDetails = Message<"blueapi.gc.v1.SegmentDetails"> & {
3924
4118
  * Use `create(SegmentDetailsSchema)` to create a new message.
3925
4119
  */
3926
4120
  export const SegmentDetailsSchema: GenMessage<SegmentDetails> = /*@__PURE__*/
3927
- messageDesc(file_gc_v1_gc, 66);
4121
+ messageDesc(file_gc_v1_gc, 72);
3928
4122
 
3929
4123
  /**
3930
4124
  * @generated from message blueapi.gc.v1.ContractSpec
@@ -3956,7 +4150,7 @@ export type ContractSpec = Message<"blueapi.gc.v1.ContractSpec"> & {
3956
4150
  * Use `create(ContractSpecSchema)` to create a new message.
3957
4151
  */
3958
4152
  export const ContractSpecSchema: GenMessage<ContractSpec> = /*@__PURE__*/
3959
- messageDesc(file_gc_v1_gc, 67);
4153
+ messageDesc(file_gc_v1_gc, 73);
3960
4154
 
3961
4155
  /**
3962
4156
  * @generated from message blueapi.gc.v1.PlanSummary
@@ -4043,7 +4237,7 @@ export type PlanSummary = Message<"blueapi.gc.v1.PlanSummary"> & {
4043
4237
  * Use `create(PlanSummarySchema)` to create a new message.
4044
4238
  */
4045
4239
  export const PlanSummarySchema: GenMessage<PlanSummary> = /*@__PURE__*/
4046
- messageDesc(file_gc_v1_gc, 68);
4240
+ messageDesc(file_gc_v1_gc, 74);
4047
4241
 
4048
4242
  /**
4049
4243
  * @generated from message blueapi.gc.v1.ServiceSummary
@@ -4135,7 +4329,7 @@ export type ServiceSummary = Message<"blueapi.gc.v1.ServiceSummary"> & {
4135
4329
  * Use `create(ServiceSummarySchema)` to create a new message.
4136
4330
  */
4137
4331
  export const ServiceSummarySchema: GenMessage<ServiceSummary> = /*@__PURE__*/
4138
- messageDesc(file_gc_v1_gc, 69);
4332
+ messageDesc(file_gc_v1_gc, 75);
4139
4333
 
4140
4334
  /**
4141
4335
  * @generated from message blueapi.gc.v1.AggregateMetrics
@@ -4162,7 +4356,7 @@ export type AggregateMetrics = Message<"blueapi.gc.v1.AggregateMetrics"> & {
4162
4356
  * Use `create(AggregateMetricsSchema)` to create a new message.
4163
4357
  */
4164
4358
  export const AggregateMetricsSchema: GenMessage<AggregateMetrics> = /*@__PURE__*/
4165
- messageDesc(file_gc_v1_gc, 70);
4359
+ messageDesc(file_gc_v1_gc, 76);
4166
4360
 
4167
4361
  /**
4168
4362
  * @generated from message blueapi.gc.v1.DefaultPurchasePlan
@@ -4479,7 +4673,7 @@ export type DefaultPurchasePlan = Message<"blueapi.gc.v1.DefaultPurchasePlan"> &
4479
4673
  * Use `create(DefaultPurchasePlanSchema)` to create a new message.
4480
4674
  */
4481
4675
  export const DefaultPurchasePlanSchema: GenMessage<DefaultPurchasePlan> = /*@__PURE__*/
4482
- messageDesc(file_gc_v1_gc, 71);
4676
+ messageDesc(file_gc_v1_gc, 77);
4483
4677
 
4484
4678
  /**
4485
4679
  * @generated from message blueapi.gc.v1.ListPurchasePlansBySegmentResponse
@@ -4496,7 +4690,7 @@ export type ListPurchasePlansBySegmentResponse = Message<"blueapi.gc.v1.ListPurc
4496
4690
  * Use `create(ListPurchasePlansBySegmentResponseSchema)` to create a new message.
4497
4691
  */
4498
4692
  export const ListPurchasePlansBySegmentResponseSchema: GenMessage<ListPurchasePlansBySegmentResponse> = /*@__PURE__*/
4499
- messageDesc(file_gc_v1_gc, 72);
4693
+ messageDesc(file_gc_v1_gc, 78);
4500
4694
 
4501
4695
  /**
4502
4696
  * @generated from message blueapi.gc.v1.GetUpdatedPurchasePlansBySegmentResponse
@@ -4513,7 +4707,7 @@ export type GetUpdatedPurchasePlansBySegmentResponse = Message<"blueapi.gc.v1.Ge
4513
4707
  * Use `create(GetUpdatedPurchasePlansBySegmentResponseSchema)` to create a new message.
4514
4708
  */
4515
4709
  export const GetUpdatedPurchasePlansBySegmentResponseSchema: GenMessage<GetUpdatedPurchasePlansBySegmentResponse> = /*@__PURE__*/
4516
- messageDesc(file_gc_v1_gc, 73);
4710
+ messageDesc(file_gc_v1_gc, 79);
4517
4711
 
4518
4712
  /**
4519
4713
  * @generated from message blueapi.gc.v1.PlanHistoryUser
@@ -4540,7 +4734,7 @@ export type PlanHistoryUser = Message<"blueapi.gc.v1.PlanHistoryUser"> & {
4540
4734
  * Use `create(PlanHistoryUserSchema)` to create a new message.
4541
4735
  */
4542
4736
  export const PlanHistoryUserSchema: GenMessage<PlanHistoryUser> = /*@__PURE__*/
4543
- messageDesc(file_gc_v1_gc, 74);
4737
+ messageDesc(file_gc_v1_gc, 80);
4544
4738
 
4545
4739
  /**
4546
4740
  * @generated from message blueapi.gc.v1.PlanHistoryEntry
@@ -4602,7 +4796,7 @@ export type PlanHistoryEntry = Message<"blueapi.gc.v1.PlanHistoryEntry"> & {
4602
4796
  * Use `create(PlanHistoryEntrySchema)` to create a new message.
4603
4797
  */
4604
4798
  export const PlanHistoryEntrySchema: GenMessage<PlanHistoryEntry> = /*@__PURE__*/
4605
- messageDesc(file_gc_v1_gc, 75);
4799
+ messageDesc(file_gc_v1_gc, 81);
4606
4800
 
4607
4801
  /**
4608
4802
  * @generated from message blueapi.gc.v1.RegisterOrgResponse
@@ -4656,7 +4850,7 @@ export type RegisterOrgResponse = Message<"blueapi.gc.v1.RegisterOrgResponse"> &
4656
4850
  * Use `create(RegisterOrgResponseSchema)` to create a new message.
4657
4851
  */
4658
4852
  export const RegisterOrgResponseSchema: GenMessage<RegisterOrgResponse> = /*@__PURE__*/
4659
- messageDesc(file_gc_v1_gc, 76);
4853
+ messageDesc(file_gc_v1_gc, 82);
4660
4854
 
4661
4855
  /**
4662
4856
  * @generated from message blueapi.gc.v1.StartAwsOnboardingResponse
@@ -4673,7 +4867,7 @@ export type StartAwsOnboardingResponse = Message<"blueapi.gc.v1.StartAwsOnboardi
4673
4867
  * Use `create(StartAwsOnboardingResponseSchema)` to create a new message.
4674
4868
  */
4675
4869
  export const StartAwsOnboardingResponseSchema: GenMessage<StartAwsOnboardingResponse> = /*@__PURE__*/
4676
- messageDesc(file_gc_v1_gc, 77);
4870
+ messageDesc(file_gc_v1_gc, 83);
4677
4871
 
4678
4872
  /**
4679
4873
  * @generated from message blueapi.gc.v1.GetAwsCloudFormationTemplateResponse
@@ -4692,7 +4886,7 @@ export type GetAwsCloudFormationTemplateResponse = Message<"blueapi.gc.v1.GetAws
4692
4886
  * Use `create(GetAwsCloudFormationTemplateResponseSchema)` to create a new message.
4693
4887
  */
4694
4888
  export const GetAwsCloudFormationTemplateResponseSchema: GenMessage<GetAwsCloudFormationTemplateResponse> = /*@__PURE__*/
4695
- messageDesc(file_gc_v1_gc, 78);
4889
+ messageDesc(file_gc_v1_gc, 84);
4696
4890
 
4697
4891
  /**
4698
4892
  * @generated from message blueapi.gc.v1.GetAwsLaunchStackUrlResponse
@@ -4709,7 +4903,7 @@ export type GetAwsLaunchStackUrlResponse = Message<"blueapi.gc.v1.GetAwsLaunchSt
4709
4903
  * Use `create(GetAwsLaunchStackUrlResponseSchema)` to create a new message.
4710
4904
  */
4711
4905
  export const GetAwsLaunchStackUrlResponseSchema: GenMessage<GetAwsLaunchStackUrlResponse> = /*@__PURE__*/
4712
- messageDesc(file_gc_v1_gc, 79);
4906
+ messageDesc(file_gc_v1_gc, 85);
4713
4907
 
4714
4908
  /**
4715
4909
  * @generated from message blueapi.gc.v1.VerifyAwsOnboardingResponse
@@ -4726,7 +4920,7 @@ export type VerifyAwsOnboardingResponse = Message<"blueapi.gc.v1.VerifyAwsOnboar
4726
4920
  * Use `create(VerifyAwsOnboardingResponseSchema)` to create a new message.
4727
4921
  */
4728
4922
  export const VerifyAwsOnboardingResponseSchema: GenMessage<VerifyAwsOnboardingResponse> = /*@__PURE__*/
4729
- messageDesc(file_gc_v1_gc, 80);
4923
+ messageDesc(file_gc_v1_gc, 86);
4730
4924
 
4731
4925
  /**
4732
4926
  * @generated from message blueapi.gc.v1.VerifyAwsOnboardingResponse.AwsOnboardingFeatureCheck
@@ -4748,7 +4942,7 @@ export type VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheck = Message<"blu
4748
4942
  * Use `create(VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheckSchema)` to create a new message.
4749
4943
  */
4750
4944
  export const VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheckSchema: GenMessage<VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheck> = /*@__PURE__*/
4751
- messageDesc(file_gc_v1_gc, 80, 0);
4945
+ messageDesc(file_gc_v1_gc, 86, 0);
4752
4946
 
4753
4947
  /**
4754
4948
  * @generated from enum blueapi.gc.v1.VerifyAwsOnboardingResponse.AwsOnboardingFeatureCheck.AwsOnboardingFeatureStatus
@@ -4784,7 +4978,7 @@ export enum VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheck_AwsOnboardingF
4784
4978
  * Describes the enum blueapi.gc.v1.VerifyAwsOnboardingResponse.AwsOnboardingFeatureCheck.AwsOnboardingFeatureStatus.
4785
4979
  */
4786
4980
  export const VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheck_AwsOnboardingFeatureStatusSchema: GenEnum<VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheck_AwsOnboardingFeatureStatus> = /*@__PURE__*/
4787
- enumDesc(file_gc_v1_gc, 80, 0, 0);
4981
+ enumDesc(file_gc_v1_gc, 86, 0, 0);
4788
4982
 
4789
4983
  /**
4790
4984
  * @generated from message blueapi.gc.v1.GetOnboardingStatusResponse
@@ -4860,6 +5054,11 @@ export type GetOnboardingStatusResponse = Message<"blueapi.gc.v1.GetOnboardingSt
4860
5054
  * @generated from field: repeated blueapi.gc.v1.VerifyAwsOnboardingResponse.AwsOnboardingFeatureCheck verificationChecks = 10;
4861
5055
  */
4862
5056
  verificationChecks: VerifyAwsOnboardingResponse_AwsOnboardingFeatureCheck[];
5057
+
5058
+ /**
5059
+ * @generated from field: blueapi.gc.v1.TermsAcceptance termsAcceptance = 11;
5060
+ */
5061
+ termsAcceptance?: TermsAcceptance;
4863
5062
  };
4864
5063
 
4865
5064
  /**
@@ -4867,7 +5066,7 @@ export type GetOnboardingStatusResponse = Message<"blueapi.gc.v1.GetOnboardingSt
4867
5066
  * Use `create(GetOnboardingStatusResponseSchema)` to create a new message.
4868
5067
  */
4869
5068
  export const GetOnboardingStatusResponseSchema: GenMessage<GetOnboardingStatusResponse> = /*@__PURE__*/
4870
- messageDesc(file_gc_v1_gc, 81);
5069
+ messageDesc(file_gc_v1_gc, 87);
4871
5070
 
4872
5071
  /**
4873
5072
  * @generated from enum blueapi.gc.v1.GetOnboardingStatusResponse.OnboardingStatus
@@ -4917,7 +5116,7 @@ export enum GetOnboardingStatusResponse_OnboardingStatus {
4917
5116
  * Describes the enum blueapi.gc.v1.GetOnboardingStatusResponse.OnboardingStatus.
4918
5117
  */
4919
5118
  export const GetOnboardingStatusResponse_OnboardingStatusSchema: GenEnum<GetOnboardingStatusResponse_OnboardingStatus> = /*@__PURE__*/
4920
- enumDesc(file_gc_v1_gc, 81, 0);
5119
+ enumDesc(file_gc_v1_gc, 87, 0);
4921
5120
 
4922
5121
  /**
4923
5122
  * @generated from message blueapi.gc.v1.PayerAccountDetails
@@ -4983,7 +5182,7 @@ export type PayerAccountDetails = Message<"blueapi.gc.v1.PayerAccountDetails"> &
4983
5182
  * Use `create(PayerAccountDetailsSchema)` to create a new message.
4984
5183
  */
4985
5184
  export const PayerAccountDetailsSchema: GenMessage<PayerAccountDetails> = /*@__PURE__*/
4986
- messageDesc(file_gc_v1_gc, 82);
5185
+ messageDesc(file_gc_v1_gc, 88);
4987
5186
 
4988
5187
  /**
4989
5188
  * @generated from message blueapi.gc.v1.ListPayerAccountsResponse
@@ -5005,7 +5204,7 @@ export type ListPayerAccountsResponse = Message<"blueapi.gc.v1.ListPayerAccounts
5005
5204
  * Use `create(ListPayerAccountsResponseSchema)` to create a new message.
5006
5205
  */
5007
5206
  export const ListPayerAccountsResponseSchema: GenMessage<ListPayerAccountsResponse> = /*@__PURE__*/
5008
- messageDesc(file_gc_v1_gc, 83);
5207
+ messageDesc(file_gc_v1_gc, 89);
5009
5208
 
5010
5209
  /**
5011
5210
  * @generated from message blueapi.gc.v1.ListPayerAccountsResponse.PayerAccount
@@ -5064,7 +5263,7 @@ export type ListPayerAccountsResponse_PayerAccount = Message<"blueapi.gc.v1.List
5064
5263
  * Use `create(ListPayerAccountsResponse_PayerAccountSchema)` to create a new message.
5065
5264
  */
5066
5265
  export const ListPayerAccountsResponse_PayerAccountSchema: GenMessage<ListPayerAccountsResponse_PayerAccount> = /*@__PURE__*/
5067
- messageDesc(file_gc_v1_gc, 83, 0);
5266
+ messageDesc(file_gc_v1_gc, 89, 0);
5068
5267
 
5069
5268
  /**
5070
5269
  * @generated from enum blueapi.gc.v1.ListPayerAccountsResponse.PayerAccountStatus
@@ -5090,7 +5289,7 @@ export enum ListPayerAccountsResponse_PayerAccountStatus {
5090
5289
  * Describes the enum blueapi.gc.v1.ListPayerAccountsResponse.PayerAccountStatus.
5091
5290
  */
5092
5291
  export const ListPayerAccountsResponse_PayerAccountStatusSchema: GenEnum<ListPayerAccountsResponse_PayerAccountStatus> = /*@__PURE__*/
5093
- enumDesc(file_gc_v1_gc, 83, 0);
5292
+ enumDesc(file_gc_v1_gc, 89, 0);
5094
5293
 
5095
5294
  /**
5096
5295
  * @generated from message blueapi.gc.v1.SetPayerAccountEnabledResponse
@@ -5109,7 +5308,7 @@ export type SetPayerAccountEnabledResponse = Message<"blueapi.gc.v1.SetPayerAcco
5109
5308
  * Use `create(SetPayerAccountEnabledResponseSchema)` to create a new message.
5110
5309
  */
5111
5310
  export const SetPayerAccountEnabledResponseSchema: GenMessage<SetPayerAccountEnabledResponse> = /*@__PURE__*/
5112
- messageDesc(file_gc_v1_gc, 84);
5311
+ messageDesc(file_gc_v1_gc, 90);
5113
5312
 
5114
5313
  /**
5115
5314
  * @generated from message blueapi.gc.v1.GetPayerAccountStatusResponse
@@ -5126,7 +5325,7 @@ export type GetPayerAccountStatusResponse = Message<"blueapi.gc.v1.GetPayerAccou
5126
5325
  * Use `create(GetPayerAccountStatusResponseSchema)` to create a new message.
5127
5326
  */
5128
5327
  export const GetPayerAccountStatusResponseSchema: GenMessage<GetPayerAccountStatusResponse> = /*@__PURE__*/
5129
- messageDesc(file_gc_v1_gc, 85);
5328
+ messageDesc(file_gc_v1_gc, 91);
5130
5329
 
5131
5330
  /**
5132
5331
  * @generated from message blueapi.gc.v1.ListBillingGroupsResponse
@@ -5143,7 +5342,7 @@ export type ListBillingGroupsResponse = Message<"blueapi.gc.v1.ListBillingGroups
5143
5342
  * Use `create(ListBillingGroupsResponseSchema)` to create a new message.
5144
5343
  */
5145
5344
  export const ListBillingGroupsResponseSchema: GenMessage<ListBillingGroupsResponse> = /*@__PURE__*/
5146
- messageDesc(file_gc_v1_gc, 86);
5345
+ messageDesc(file_gc_v1_gc, 92);
5147
5346
 
5148
5347
  /**
5149
5348
  * @generated from message blueapi.gc.v1.ListBillingGroupsResponse.BillingGroup
@@ -5210,7 +5409,7 @@ export type ListBillingGroupsResponse_BillingGroup = Message<"blueapi.gc.v1.List
5210
5409
  * Use `create(ListBillingGroupsResponse_BillingGroupSchema)` to create a new message.
5211
5410
  */
5212
5411
  export const ListBillingGroupsResponse_BillingGroupSchema: GenMessage<ListBillingGroupsResponse_BillingGroup> = /*@__PURE__*/
5213
- messageDesc(file_gc_v1_gc, 86, 0);
5412
+ messageDesc(file_gc_v1_gc, 92, 0);
5214
5413
 
5215
5414
  /**
5216
5415
  * @generated from enum blueapi.gc.v1.ListBillingGroupsResponse.BillingGroupStatus
@@ -5236,7 +5435,7 @@ export enum ListBillingGroupsResponse_BillingGroupStatus {
5236
5435
  * Describes the enum blueapi.gc.v1.ListBillingGroupsResponse.BillingGroupStatus.
5237
5436
  */
5238
5437
  export const ListBillingGroupsResponse_BillingGroupStatusSchema: GenEnum<ListBillingGroupsResponse_BillingGroupStatus> = /*@__PURE__*/
5239
- enumDesc(file_gc_v1_gc, 86, 0);
5438
+ enumDesc(file_gc_v1_gc, 92, 0);
5240
5439
 
5241
5440
  /**
5242
5441
  * @generated from message blueapi.gc.v1.SetBillingGroupStatusResponse
@@ -5253,7 +5452,7 @@ export type SetBillingGroupStatusResponse = Message<"blueapi.gc.v1.SetBillingGro
5253
5452
  * Use `create(SetBillingGroupStatusResponseSchema)` to create a new message.
5254
5453
  */
5255
5454
  export const SetBillingGroupStatusResponseSchema: GenMessage<SetBillingGroupStatusResponse> = /*@__PURE__*/
5256
- messageDesc(file_gc_v1_gc, 87);
5455
+ messageDesc(file_gc_v1_gc, 93);
5257
5456
 
5258
5457
  /**
5259
5458
  * @generated from message blueapi.gc.v1.GetBillingGroupStatusResponse
@@ -5263,6 +5462,11 @@ export type GetBillingGroupStatusResponse = Message<"blueapi.gc.v1.GetBillingGro
5263
5462
  * @generated from field: blueapi.gc.v1.ListBillingGroupsResponse.BillingGroup billingGroup = 1;
5264
5463
  */
5265
5464
  billingGroup?: ListBillingGroupsResponse_BillingGroup;
5465
+
5466
+ /**
5467
+ * @generated from field: blueapi.gc.v1.TermsAcceptance termsAcceptance = 2;
5468
+ */
5469
+ termsAcceptance?: TermsAcceptance;
5266
5470
  };
5267
5471
 
5268
5472
  /**
@@ -5270,7 +5474,7 @@ export type GetBillingGroupStatusResponse = Message<"blueapi.gc.v1.GetBillingGro
5270
5474
  * Use `create(GetBillingGroupStatusResponseSchema)` to create a new message.
5271
5475
  */
5272
5476
  export const GetBillingGroupStatusResponseSchema: GenMessage<GetBillingGroupStatusResponse> = /*@__PURE__*/
5273
- messageDesc(file_gc_v1_gc, 88);
5477
+ messageDesc(file_gc_v1_gc, 94);
5274
5478
 
5275
5479
  /**
5276
5480
  * @generated from message blueapi.gc.v1.ValidateBillingGroupResponse
@@ -5310,7 +5514,7 @@ export type ValidateBillingGroupResponse = Message<"blueapi.gc.v1.ValidateBillin
5310
5514
  * Use `create(ValidateBillingGroupResponseSchema)` to create a new message.
5311
5515
  */
5312
5516
  export const ValidateBillingGroupResponseSchema: GenMessage<ValidateBillingGroupResponse> = /*@__PURE__*/
5313
- messageDesc(file_gc_v1_gc, 89);
5517
+ messageDesc(file_gc_v1_gc, 95);
5314
5518
 
5315
5519
  /**
5316
5520
  * @generated from message blueapi.gc.v1.GetAwsPrivateOfferResponse
@@ -5373,7 +5577,24 @@ export type GetAwsPrivateOfferResponse = Message<"blueapi.gc.v1.GetAwsPrivateOff
5373
5577
  * Use `create(GetAwsPrivateOfferResponseSchema)` to create a new message.
5374
5578
  */
5375
5579
  export const GetAwsPrivateOfferResponseSchema: GenMessage<GetAwsPrivateOfferResponse> = /*@__PURE__*/
5376
- messageDesc(file_gc_v1_gc, 90);
5580
+ messageDesc(file_gc_v1_gc, 96);
5581
+
5582
+ /**
5583
+ * @generated from message blueapi.gc.v1.AcceptBillingGroupTermsResponse
5584
+ */
5585
+ export type AcceptBillingGroupTermsResponse = Message<"blueapi.gc.v1.AcceptBillingGroupTermsResponse"> & {
5586
+ /**
5587
+ * @generated from field: blueapi.gc.v1.TermsAcceptance termsAcceptance = 1;
5588
+ */
5589
+ termsAcceptance?: TermsAcceptance;
5590
+ };
5591
+
5592
+ /**
5593
+ * Describes the message blueapi.gc.v1.AcceptBillingGroupTermsResponse.
5594
+ * Use `create(AcceptBillingGroupTermsResponseSchema)` to create a new message.
5595
+ */
5596
+ export const AcceptBillingGroupTermsResponseSchema: GenMessage<AcceptBillingGroupTermsResponse> = /*@__PURE__*/
5597
+ messageDesc(file_gc_v1_gc, 97);
5377
5598
 
5378
5599
  /**
5379
5600
  * @generated from message blueapi.gc.v1.ListDraftPurchasePlansResponse
@@ -5390,7 +5611,7 @@ export type ListDraftPurchasePlansResponse = Message<"blueapi.gc.v1.ListDraftPur
5390
5611
  * Use `create(ListDraftPurchasePlansResponseSchema)` to create a new message.
5391
5612
  */
5392
5613
  export const ListDraftPurchasePlansResponseSchema: GenMessage<ListDraftPurchasePlansResponse> = /*@__PURE__*/
5393
- messageDesc(file_gc_v1_gc, 91);
5614
+ messageDesc(file_gc_v1_gc, 98);
5394
5615
 
5395
5616
  /**
5396
5617
  * @generated from message blueapi.gc.v1.DeleteDraftPurchasePlanResponse
@@ -5416,7 +5637,7 @@ export type DeleteDraftPurchasePlanResponse = Message<"blueapi.gc.v1.DeleteDraft
5416
5637
  * Use `create(DeleteDraftPurchasePlanResponseSchema)` to create a new message.
5417
5638
  */
5418
5639
  export const DeleteDraftPurchasePlanResponseSchema: GenMessage<DeleteDraftPurchasePlanResponse> = /*@__PURE__*/
5419
- messageDesc(file_gc_v1_gc, 92);
5640
+ messageDesc(file_gc_v1_gc, 99);
5420
5641
 
5421
5642
  /**
5422
5643
  * @generated from message blueapi.gc.v1.GetAvailableCommitmentTypesResponse
@@ -5437,7 +5658,7 @@ export type GetAvailableCommitmentTypesResponse = Message<"blueapi.gc.v1.GetAvai
5437
5658
  * Use `create(GetAvailableCommitmentTypesResponseSchema)` to create a new message.
5438
5659
  */
5439
5660
  export const GetAvailableCommitmentTypesResponseSchema: GenMessage<GetAvailableCommitmentTypesResponse> = /*@__PURE__*/
5440
- messageDesc(file_gc_v1_gc, 93);
5661
+ messageDesc(file_gc_v1_gc, 100);
5441
5662
 
5442
5663
  /**
5443
5664
  * @generated from message blueapi.gc.v1.GetGuaranteedCommitmentTemplateUrlResponse
@@ -5498,7 +5719,7 @@ export type GetGuaranteedCommitmentTemplateUrlResponse = Message<"blueapi.gc.v1.
5498
5719
  * Use `create(GetGuaranteedCommitmentTemplateUrlResponseSchema)` to create a new message.
5499
5720
  */
5500
5721
  export const GetGuaranteedCommitmentTemplateUrlResponseSchema: GenMessage<GetGuaranteedCommitmentTemplateUrlResponse> = /*@__PURE__*/
5501
- messageDesc(file_gc_v1_gc, 94);
5722
+ messageDesc(file_gc_v1_gc, 101);
5502
5723
 
5503
5724
  /**
5504
5725
  * @generated from message blueapi.gc.v1.CreateGuaranteedCommitmentAccessResponse
@@ -5587,7 +5808,7 @@ export type CreateGuaranteedCommitmentAccessResponse = Message<"blueapi.gc.v1.Cr
5587
5808
  * Use `create(CreateGuaranteedCommitmentAccessResponseSchema)` to create a new message.
5588
5809
  */
5589
5810
  export const CreateGuaranteedCommitmentAccessResponseSchema: GenMessage<CreateGuaranteedCommitmentAccessResponse> = /*@__PURE__*/
5590
- messageDesc(file_gc_v1_gc, 95);
5811
+ messageDesc(file_gc_v1_gc, 102);
5591
5812
 
5592
5813
  /**
5593
5814
  * @generated from message blueapi.gc.v1.GetPurchasePlansDetailsResponse
@@ -5627,7 +5848,7 @@ export type GetPurchasePlansDetailsResponse = Message<"blueapi.gc.v1.GetPurchase
5627
5848
  * Use `create(GetPurchasePlansDetailsResponseSchema)` to create a new message.
5628
5849
  */
5629
5850
  export const GetPurchasePlansDetailsResponseSchema: GenMessage<GetPurchasePlansDetailsResponse> = /*@__PURE__*/
5630
- messageDesc(file_gc_v1_gc, 96);
5851
+ messageDesc(file_gc_v1_gc, 103);
5631
5852
 
5632
5853
  /**
5633
5854
  * @generated from message blueapi.gc.v1.CreateCustomCommitmentPlanResponse
@@ -5644,7 +5865,7 @@ export type CreateCustomCommitmentPlanResponse = Message<"blueapi.gc.v1.CreateCu
5644
5865
  * Use `create(CreateCustomCommitmentPlanResponseSchema)` to create a new message.
5645
5866
  */
5646
5867
  export const CreateCustomCommitmentPlanResponseSchema: GenMessage<CreateCustomCommitmentPlanResponse> = /*@__PURE__*/
5647
- messageDesc(file_gc_v1_gc, 97);
5868
+ messageDesc(file_gc_v1_gc, 104);
5648
5869
 
5649
5870
  /**
5650
5871
  * AzureArcheraOrgFeatureStatus is a single feature status entry within the Archera org object.
@@ -5678,7 +5899,7 @@ export type AzureArcheraOrgFeatureStatus = Message<"blueapi.gc.v1.AzureArcheraOr
5678
5899
  * Use `create(AzureArcheraOrgFeatureStatusSchema)` to create a new message.
5679
5900
  */
5680
5901
  export const AzureArcheraOrgFeatureStatusSchema: GenMessage<AzureArcheraOrgFeatureStatus> = /*@__PURE__*/
5681
- messageDesc(file_gc_v1_gc, 98);
5902
+ messageDesc(file_gc_v1_gc, 105);
5682
5903
 
5683
5904
  /**
5684
5905
  * AzureArcheraOrgLeaseBudget is the lease budget config within the Archera org object.
@@ -5707,7 +5928,7 @@ export type AzureArcheraOrgLeaseBudget = Message<"blueapi.gc.v1.AzureArcheraOrgL
5707
5928
  * Use `create(AzureArcheraOrgLeaseBudgetSchema)` to create a new message.
5708
5929
  */
5709
5930
  export const AzureArcheraOrgLeaseBudgetSchema: GenMessage<AzureArcheraOrgLeaseBudget> = /*@__PURE__*/
5710
- messageDesc(file_gc_v1_gc, 99);
5931
+ messageDesc(file_gc_v1_gc, 106);
5711
5932
 
5712
5933
  /**
5713
5934
  * AzureArcheraOrg is the full Archera org object.
@@ -5915,7 +6136,7 @@ export type AzureArcheraOrg = Message<"blueapi.gc.v1.AzureArcheraOrg"> & {
5915
6136
  * Use `create(AzureArcheraOrgSchema)` to create a new message.
5916
6137
  */
5917
6138
  export const AzureArcheraOrgSchema: GenMessage<AzureArcheraOrg> = /*@__PURE__*/
5918
- messageDesc(file_gc_v1_gc, 100);
6139
+ messageDesc(file_gc_v1_gc, 107);
5919
6140
 
5920
6141
  /**
5921
6142
  * AzureOnboardingCreatedBy identifies who triggered the onboarding.
@@ -5944,7 +6165,7 @@ export type AzureOnboardingCreatedBy = Message<"blueapi.gc.v1.AzureOnboardingCre
5944
6165
  * Use `create(AzureOnboardingCreatedBySchema)` to create a new message.
5945
6166
  */
5946
6167
  export const AzureOnboardingCreatedBySchema: GenMessage<AzureOnboardingCreatedBy> = /*@__PURE__*/
5947
- messageDesc(file_gc_v1_gc, 101);
6168
+ messageDesc(file_gc_v1_gc, 108);
5948
6169
 
5949
6170
  /**
5950
6171
  * AzureOnboardingState is the full Archera onboarding record state.
@@ -6113,7 +6334,7 @@ export type AzureOnboardingState = Message<"blueapi.gc.v1.AzureOnboardingState">
6113
6334
  * Use `create(AzureOnboardingStateSchema)` to create a new message.
6114
6335
  */
6115
6336
  export const AzureOnboardingStateSchema: GenMessage<AzureOnboardingState> = /*@__PURE__*/
6116
- messageDesc(file_gc_v1_gc, 102);
6337
+ messageDesc(file_gc_v1_gc, 109);
6117
6338
 
6118
6339
  /**
6119
6340
  * StartAzureOnboardingResponse is returned from StartAzureOnboarding.
@@ -6155,7 +6376,7 @@ export type StartAzureOnboardingResponse = Message<"blueapi.gc.v1.StartAzureOnbo
6155
6376
  * Use `create(StartAzureOnboardingResponseSchema)` to create a new message.
6156
6377
  */
6157
6378
  export const StartAzureOnboardingResponseSchema: GenMessage<StartAzureOnboardingResponse> = /*@__PURE__*/
6158
- messageDesc(file_gc_v1_gc, 103);
6379
+ messageDesc(file_gc_v1_gc, 110);
6159
6380
 
6160
6381
  /**
6161
6382
  * GetAzureOnboardingAuthUrlResponse contains the OAuth URL (Step 4).
@@ -6176,7 +6397,7 @@ export type GetAzureOnboardingAuthUrlResponse = Message<"blueapi.gc.v1.GetAzureO
6176
6397
  * Use `create(GetAzureOnboardingAuthUrlResponseSchema)` to create a new message.
6177
6398
  */
6178
6399
  export const GetAzureOnboardingAuthUrlResponseSchema: GenMessage<GetAzureOnboardingAuthUrlResponse> = /*@__PURE__*/
6179
- messageDesc(file_gc_v1_gc, 104);
6400
+ messageDesc(file_gc_v1_gc, 111);
6180
6401
 
6181
6402
  /**
6182
6403
  * AzureAccount is one available subscription or billing account (Step 6).
@@ -6219,7 +6440,7 @@ export type AzureAccount = Message<"blueapi.gc.v1.AzureAccount"> & {
6219
6440
  * Use `create(AzureAccountSchema)` to create a new message.
6220
6441
  */
6221
6442
  export const AzureAccountSchema: GenMessage<AzureAccount> = /*@__PURE__*/
6222
- messageDesc(file_gc_v1_gc, 105);
6443
+ messageDesc(file_gc_v1_gc, 112);
6223
6444
 
6224
6445
  /**
6225
6446
  * ListAzureOnboardingAccountsResponse returns accounts the user can select.
@@ -6238,7 +6459,7 @@ export type ListAzureOnboardingAccountsResponse = Message<"blueapi.gc.v1.ListAzu
6238
6459
  * Use `create(ListAzureOnboardingAccountsResponseSchema)` to create a new message.
6239
6460
  */
6240
6461
  export const ListAzureOnboardingAccountsResponseSchema: GenMessage<ListAzureOnboardingAccountsResponse> = /*@__PURE__*/
6241
- messageDesc(file_gc_v1_gc, 106);
6462
+ messageDesc(file_gc_v1_gc, 113);
6242
6463
 
6243
6464
  /**
6244
6465
  * AzureIntegrationFeatureStatus is a single feature check for an Azure integration (Step 9).
@@ -6271,7 +6492,7 @@ export type AzureIntegrationFeatureStatus = Message<"blueapi.gc.v1.AzureIntegrat
6271
6492
  * Use `create(AzureIntegrationFeatureStatusSchema)` to create a new message.
6272
6493
  */
6273
6494
  export const AzureIntegrationFeatureStatusSchema: GenMessage<AzureIntegrationFeatureStatus> = /*@__PURE__*/
6274
- messageDesc(file_gc_v1_gc, 107);
6495
+ messageDesc(file_gc_v1_gc, 114);
6275
6496
 
6276
6497
  /**
6277
6498
  * AzureIntegrationOnboarding is a summary of the onboarding linked to an integration.
@@ -6320,7 +6541,7 @@ export type AzureIntegrationOnboarding = Message<"blueapi.gc.v1.AzureIntegration
6320
6541
  * Use `create(AzureIntegrationOnboardingSchema)` to create a new message.
6321
6542
  */
6322
6543
  export const AzureIntegrationOnboardingSchema: GenMessage<AzureIntegrationOnboarding> = /*@__PURE__*/
6323
- messageDesc(file_gc_v1_gc, 108);
6544
+ messageDesc(file_gc_v1_gc, 115);
6324
6545
 
6325
6546
  /**
6326
6547
  * AzureIntegration is the full Azure cloud integration record from Archera.
@@ -6465,7 +6686,7 @@ export type AzureIntegration = Message<"blueapi.gc.v1.AzureIntegration"> & {
6465
6686
  * Use `create(AzureIntegrationSchema)` to create a new message.
6466
6687
  */
6467
6688
  export const AzureIntegrationSchema: GenMessage<AzureIntegration> = /*@__PURE__*/
6468
- messageDesc(file_gc_v1_gc, 109);
6689
+ messageDesc(file_gc_v1_gc, 116);
6469
6690
 
6470
6691
  /**
6471
6692
  * CreateAzureIntegrationResponse is returned after creating the Azure integration (Step 8).
@@ -6528,7 +6749,7 @@ export type CreateAzureIntegrationResponse = Message<"blueapi.gc.v1.CreateAzureI
6528
6749
  * Use `create(CreateAzureIntegrationResponseSchema)` to create a new message.
6529
6750
  */
6530
6751
  export const CreateAzureIntegrationResponseSchema: GenMessage<CreateAzureIntegrationResponse> = /*@__PURE__*/
6531
- messageDesc(file_gc_v1_gc, 110);
6752
+ messageDesc(file_gc_v1_gc, 117);
6532
6753
 
6533
6754
  /**
6534
6755
  * ListAzureIntegrationsResponse contains all Azure integrations for the org (Step 9).
@@ -6547,7 +6768,7 @@ export type ListAzureIntegrationsResponse = Message<"blueapi.gc.v1.ListAzureInte
6547
6768
  * Use `create(ListAzureIntegrationsResponseSchema)` to create a new message.
6548
6769
  */
6549
6770
  export const ListAzureIntegrationsResponseSchema: GenMessage<ListAzureIntegrationsResponse> = /*@__PURE__*/
6550
- messageDesc(file_gc_v1_gc, 111);
6771
+ messageDesc(file_gc_v1_gc, 118);
6551
6772
 
6552
6773
  /**
6553
6774
  * @generated from enum blueapi.gc.v1.Provider
@@ -6790,6 +7011,26 @@ export const GuaranteedCommitments: GenService<{
6790
7011
  input: typeof GetCommitmentsUtilizationRequestSchema;
6791
7012
  output: typeof CommitmentsUtilizationResponseSchema;
6792
7013
  },
7014
+ /**
7015
+ * Reads monthly commitment reports for the MSP. Only available in Ripple.
7016
+ *
7017
+ * @generated from rpc blueapi.gc.v1.GuaranteedCommitments.ReadCommitmentReports
7018
+ */
7019
+ readCommitmentReports: {
7020
+ methodKind: "server_streaming";
7021
+ input: typeof ReadCommitmentReportsRequestSchema;
7022
+ output: typeof CommitmentReportSchema;
7023
+ },
7024
+ /**
7025
+ * Reads per-account commitment report details for a specific month. Only available in Ripple.
7026
+ *
7027
+ * @generated from rpc blueapi.gc.v1.GuaranteedCommitments.ReadCommitmentReportAccounts
7028
+ */
7029
+ readCommitmentReportAccounts: {
7030
+ methodKind: "server_streaming";
7031
+ input: typeof ReadCommitmentReportAccountsRequestSchema;
7032
+ output: typeof CommitmentReportAccountSchema;
7033
+ },
6793
7034
  /**
6794
7035
  * WORK-IN-PROGRESS: Do not use. Retrieves key performance metrics for cloud commitments.
6795
7036
  *
@@ -7051,6 +7292,14 @@ export const GuaranteedCommitments: GenService<{
7051
7292
  input: typeof GetAwsPrivateOfferRequestSchema;
7052
7293
  output: typeof GetAwsPrivateOfferResponseSchema;
7053
7294
  },
7295
+ /**
7296
+ * @generated from rpc blueapi.gc.v1.GuaranteedCommitments.AcceptBillingGroupTerms
7297
+ */
7298
+ acceptBillingGroupTerms: {
7299
+ methodKind: "unary";
7300
+ input: typeof AcceptBillingGroupTermsRequestSchema;
7301
+ output: typeof AcceptBillingGroupTermsResponseSchema;
7302
+ },
7054
7303
  /**
7055
7304
  * GetGuaranteedCommitmentTemplateUrl returns a CloudFormation launch URL for deploying
7056
7305
  * both Alphaus (Ripple) and Archera IAM roles in a single stack.