@alphauspkgs/blue-sdk-ts 1.0.57 → 1.0.58

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.
@@ -2,8 +2,8 @@
2
2
  // @generated from file billing/v1/billing.proto (package blueapi.billing.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
5
- import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
- import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { Account } from "../../api/account_pb";
8
8
  import { file_api_account } from "../../api/account_pb";
9
9
  import type { AdditionalItems, InvoiceMessageSchema, InvoiceSchema } from "../../api/invoice_pb";
@@ -44,8 +44,8 @@ import type { OperationSchema } from "../../protos/operation_pb";
44
44
  import { file_protos_operation } from "../../protos/operation_pb";
45
45
  import { file_google_api_annotations } from "../../google/api/annotations_pb";
46
46
  import { file_google_api_field_behavior } from "../../google/api/field_behavior_pb";
47
- import type { EmptySchema, FieldMask } from "@bufbuild/protobuf/wkt";
48
- import { file_google_protobuf_empty, file_google_protobuf_field_mask } from "@bufbuild/protobuf/wkt";
47
+ import type { EmptySchema, FieldMask, Timestamp } from "@bufbuild/protobuf/wkt";
48
+ import { file_google_protobuf_empty, file_google_protobuf_field_mask, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
49
49
  import { file_protoc_gen_openapiv2_options_annotations } from "../../protoc-gen-openapiv2/options/annotations_pb";
50
50
  import type { Message } from "@bufbuild/protobuf";
51
51
 
@@ -53,7 +53,7 @@ import type { Message } from "@bufbuild/protobuf";
53
53
  * Describes the file billing/v1/billing.proto.
54
54
  */
55
55
  export const file_billing_v1_billing: GenFile = /*@__PURE__*/
56
- fileDesc("ChhiaWxsaW5nL3YxL2JpbGxpbmcucHJvdG8SEmJsdWVhcGkuYmlsbGluZy52MSKgBAoMQmlsbGluZ0dyb3VwEhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEwoLY29tcGFueU5hbWUYByABKAkSDAoEdHlwZRgMIAEoCRIQCghoYXNDaGlsZBgNIAEoCBI+ChBiaWxsaW5nR3JvdXBJbmZvGAogASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8SOgoOYWNjb3VudE9wdGlvbnMYCCABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnMSJgoIYWNjb3VudHMYBCADKAsyFC5ibHVlYXBpLmFwaS5BY2NvdW50EiIKBHRhZ3MYBiADKAsyFC5ibHVlYXBpLmFwaS5Db3N0VGFnEkgKD2ludm9pY2VTZXR0aW5ncxgFIAEoCzIvLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSSAoPYWRkaXRpb25hbEl0ZW1zGAsgASgLMi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cEFkZGl0aW9uYWxJdGVtcxIyCgphd3NPcHRpb25zGAkgASgLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c09wdGlvbnMioAEKG0JpbGxpbmdHcm91cEFkZGl0aW9uYWxJdGVtcxIpCgNhd3MYASADKAsyHC5ibHVlYXBpLmFwaS5BZGRpdGlvbmFsSXRlbXMSKwoFYXp1cmUYAiADKAsyHC5ibHVlYXBpLmFwaS5BZGRpdGlvbmFsSXRlbXMSKQoDZ2NwGAMgAygLMhwuYmx1ZWFwaS5hcGkuQWRkaXRpb25hbEl0ZW1zIu4BChtCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSQwoDYXdzGAEgASgLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cFZlbmRvcmVkSW52b2ljZVNldHRpbmcSRQoFYXp1cmUYAiABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZxJDCgNnY3AYAyABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZyLxAwoiQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZxIQCghjYWxjVHlwZRgBIAEoCRIUCgxkaXNjb3VudFJhdGUYAiABKAESFwoPc3Vic3RpdHV0aW9uRmVlGAMgASgJEhcKD3N1YnN0aXR1dGlvbkZpeBgEIAEoARIYChBzdWJzdGl0dXRpb25SYXRlGAUgASgBEhIKCnN1cHBvcnRGZWUYBiABKAkSEwoLc3VwcG9ydFJhdGUYByABKAESEgoKc3VwcG9ydEZpeBgIIAEoARIPCgd0YXhSYXRlGAkgASgBEhAKCGN1cnJlbmN5GAogASgJEhsKE2Rpc2NvdW50VGFyZ2V0VXNhZ2UYCyABKAkSIgoac3Vic3RpdHV0aW9uRmVlVGFyZ2V0VXNhZ2UYDCABKAkSGQoRZGlzY291bnRDYWxjTG9naWMYDSABKAkSIQoZc3Vic3RpdHV0aW9uRmVlQ2FsY1RhcmdldBgOIAEoCRIfChdzdWJzdGl0dXRpb25GZWVDYWxjVHlwZRgPIAEoCRIbChNzdXBwb3J0QW1vdW50VGFyZ2V0GBAgASgJEhwKFHN1cHBvcnRGZWVDYWxjVGFyZ2V0GBEgASgJEhwKFHN1cHBvcnRGZWVBZGp1c3RtZW50GBIgASgBIpIBChhMaXN0QmlsbGluZ0dyb3Vwc1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSDwoHdmVuZG9ycxgCIAEoCRIQCghjYWxjVHlwZRgDIAEoCRITCgtkaXNwbGF5Q29zdBgEIAEoCRIOCgZiZ1R5cGUYBSABKAkiswQKGUNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgCIAEoCRITCgtjb21wYW55TmFtZRgDIAEoCRIUCgxiaWxsaW5nVGl0bGUYBCABKAkSEwoLcGhvbmVOdW1iZXIYBSABKAkSEgoKcG9zdGFsQ29kZRgGIAEoCRIPCgdhZGRyZXNzGAcgASgJEhAKCHBlcnNvbmFsGAggASgJEg8KB3JlbWFya3MYCSABKAkSEQoJcHJvamVjdElkGAogASgJEhAKCGxhbmd1YWdlGAsgASgJEhMKC2Rpc3BsYXlDb3N0GAwgASgJEhgKEGV4Y2hhbmdlUmF0ZVR5cGUYDSABKAkSOgoOYWNjb3VudE9wdGlvbnMYDyABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnMSRgoIaW52b2ljZXMYDiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2USMgoKYXdzT3B0aW9ucxgQIAEoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5Bd3NPcHRpb25zEgwKBGNpdHkYESABKAkSEgoKcHJlZmVjdHVyZRgSIAEoCRIPCgdjb3VudHJ5GBMgASgJEh0KFWludm9pY2VMYXlvdXRDb25maWdJZBgUIAEoCSI1CgpBd3NPcHRpb25zEhYKDnVzZVByb0Zvcm1hQ3VyGAEgASgIEg8KB3BheWVySWQYAiABKAkiqwEKDkFjY291bnRPcHRpb25zEjEKA2F3cxgBIAEoCzIkLmJsdWVhcGkuYmlsbGluZy52MS5SZWdpc3RlckFjY291bnRzEjEKA2djcBgCIAEoCzIkLmJsdWVhcGkuYmlsbGluZy52MS5SZWdpc3RlckFjY291bnRzEjMKBWF6dXJlGAMgASgLMiQuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlZ2lzdGVyQWNjb3VudHMiTgoQUmVnaXN0ZXJBY2NvdW50cxIPCgdlbmFibGVkGAEgASgIEhEKCWFjY291bnRJZBgCIAEoCRIWCg51bkxpbmtPblJlbW92ZRgDIAEoCCJUCg5WZW5kb3JBY2NvdW50cxIOCgZ2ZW5kb3IYASABKAkSMgoIYWNjb3VudHMYAiADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFRvQWRkImAKDEF6dXJlT3B0aW9ucxIVCg1yZXNvdXJjZUdyb3VwGAEgASgIEhsKE2FwcGx5UGNFYXJuZWRDcmVkaXQYAiABKAgSHAoUYXBwbHlDYW1wYWlnblByaWNpbmcYAyABKAgiqgcKH0NyZWF0ZUJpbGxpbmdHcm91cE1lcmdlZFJlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgCIAEoCRITCgtjb21wYW55TmFtZRgDIAEoCRIUCgxiaWxsaW5nVGl0bGUYBCABKAkSEwoLcGhvbmVOdW1iZXIYBSABKAkSEgoKcG9zdGFsQ29kZRgGIAEoCRIPCgdhZGRyZXNzGAcgASgJEhAKCHBlcnNvbmFsGAggASgJEg8KB3JlbWFya3MYCSABKAkSEQoJcHJvamVjdElkGAogASgJEhAKCGxhbmd1YWdlGAsgASgJEhMKC2Rpc3BsYXlDb3N0GAwgASgJEhgKEGV4Y2hhbmdlUmF0ZVR5cGUYDSABKAkSOgoOYWNjb3VudE9wdGlvbnMYDyABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnMSRgoIaW52b2ljZXMYDiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2USMgoKYXdzT3B0aW9ucxgQIAEoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5Bd3NPcHRpb25zEgwKBGNpdHkYESABKAkSEgoKcHJlZmVjdHVyZRgSIAEoCRIPCgdjb3VudHJ5GBMgASgJEhkKEWludm9pY2VUZW1wbGF0ZUlkGBQgASgJEjMKC3RhZ1NldHRpbmdzGBUgAygLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ1NldHRpbmcSOAoNbm9uVGFnU2V0dGluZxgWIAEoCzIhLmJsdWVhcGkuYmlsbGluZy52MS5Ob25UYWdTZXR0aW5nEjoKDnZlbmRvckFjY291bnRzGBcgAygLMiIuYmx1ZWFwaS5iaWxsaW5nLnYxLlZlbmRvckFjY291bnRzElsKDGN1c3RvbUZpZWxkcxgYIAMoCzJFLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBNZXJnZWRSZXF1ZXN0LkN1c3RvbUZpZWxkc0VudHJ5EjYKDGF6dXJlT3B0aW9ucxgZIAEoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5BenVyZU9wdGlvbnMaMwoRQ3VzdG9tRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL/AQogQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2USRwoDYXdzGAEgASgLMjouYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3RJbnZvaWNlVmVuZG9yEkkKBWF6dXJlGAIgASgLMjouYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3RJbnZvaWNlVmVuZG9yEkcKA2djcBgDIAEoCzI6LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0SW52b2ljZVZlbmRvciL1AwomQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2VWZW5kb3ISEAoIY2FsY1R5cGUYASABKAkSFAoMZGlzY291bnRSYXRlGAIgASgBEhcKD3N1YnN0aXR1dGlvbkZlZRgDIAEoCRIXCg9zdWJzdGl0dXRpb25GaXgYBCABKAESGAoQc3Vic3RpdHV0aW9uUmF0ZRgFIAEoARISCgpzdXBwb3J0RmVlGAYgASgJEhMKC3N1cHBvcnRSYXRlGAcgASgBEhIKCnN1cHBvcnRGaXgYCCABKAESDwoHdGF4UmF0ZRgJIAEoARIQCghjdXJyZW5jeRgKIAEoCRIbChNkaXNjb3VudFRhcmdldFVzYWdlGAsgASgJEiIKGnN1YnN0aXR1dGlvbkZlZVRhcmdldFVzYWdlGAwgASgJEhkKEWRpc2NvdW50Q2FsY0xvZ2ljGA0gASgJEiEKGXN1YnN0aXR1dGlvbkZlZUNhbGNUYXJnZXQYDiABKAkSHwoXc3Vic3RpdHV0aW9uRmVlQ2FsY1R5cGUYDyABKAkSGwoTc3VwcG9ydEFtb3VudFRhcmdldBgQIAEoCRIcChRzdXBwb3J0RmVlQ2FsY1RhcmdldBgRIAEoCRIcChRzdXBwb3J0RmVlQWRqdXN0bWVudBgSIAEoASJjChZHZXRCaWxsaW5nR3JvdXBSZXF1ZXN0EhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIlEKF0dldEJpbGxpbmdHcm91cFJlc3BvbnNlEjYKDGJpbGxpbmdHcm91cBgBIAEoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAilgEKC0FjY2Vzc0dyb3VwEhUKDWFjY2Vzc0dyb3VwSWQYASABKAkSFwoPYWNjZXNzR3JvdXBOYW1lGAIgASgJEh4KFmFjY2Vzc0dyb3VwRGVzY3JpcHRpb24YAyABKAkSNwoNYmlsbGluZ0dyb3VwcxgEIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAiXgoVR2V0QWNjZXNzR3JvdXBSZXF1ZXN0EhUKDWFjY2Vzc0dyb3VwSWQYASABKAkSLgoKZmllbGRfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siTgoWR2V0QWNjZXNzR3JvdXBSZXNwb25zZRI0CgthY2Nlc3NHcm91cBgBIAEoCzIfLmJsdWVhcGkuYmlsbGluZy52MS5BY2Nlc3NHcm91cCKvAgoSQXdzRGFpbHlSdW5IaXN0b3J5EhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg0KBW1vbnRoGAMgASgJEkAKCGFjY291bnRzGAQgAygLMi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c0RhaWx5UnVuSGlzdG9yeS5BY2NvdW50GpQBCgdBY2NvdW50EhEKCWFjY291bnRJZBgBIAEoCRJHCgdoaXN0b3J5GAIgAygLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c0RhaWx5UnVuSGlzdG9yeS5BY2NvdW50Lkhpc3RvcnkaLQoHSGlzdG9yeRIRCgl0aW1lc3RhbXAYASABKAkSDwoHdHJpZ2dlchgCIAEoCSI/Ch1MaXN0QXdzRGFpbHlSdW5IaXN0b3J5UmVxdWVzdBINCgVtb250aBgBIAEoCRIPCgdncm91cElkGAIgASgJIlYKGkxpc3RVc2FnZUNvc3RzRHJpZnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgCIAEoCRINCgVtb250aBgDIAEoCSKGAQoPVXNhZ2VDb3N0c0RyaWZ0EhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg8KB2FjY291bnQYAyABKAkSEAoIc25hcHNob3QYBCABKAESDwoHY3VycmVudBgFIAEoARIMCgRkaWZmGAYgASgBIjIKEUdldEludm9pY2VSZXF1ZXN0EgwKBGRhdGUYASABKAkSDwoHZ3JvdXBJZBgCIAEoCSI5ChhFeHBvcnRJbnZvaWNlRmlsZVJlcXVlc3QSDAoEZGF0ZRgBIAEoCRIPCgdncm91cElkGAIgASgJIigKGUV4cG9ydEludm9pY2VGaWxlUmVzcG9uc2USCwoDdXJsGAEgASgJIjUKI1JlYWRTZXJ2aWNlRGlzY291bnRzU2VydmljZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSIkCiJMaXN0SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Il4KIUdldEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIKCgJpZBgBIAEoCRItCglmaWVsZE1hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrImoKF0ludm9pY2VTZXJ2aWNlRGlzY291bnRzEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHY3JlYXRlZBgEIAEoCRIPCgd1cGRhdGVkGAUgASgJIhwKGkxpc3RJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0Il0KKFVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VUZW1wbGF0ZVJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISHwoRaW52b2ljZVRlbXBsYXRlSWQYAiABKAlCBOJBAQIingIKG0xpc3RJbnZvaWNlVGVtcGxhdGVSZXNwb25zZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB2NyZWF0ZWQYBCABKAkSDwoHdXBkYXRlZBgFIAEoCRIZChFudW1iZXJPZkNvbm5lY3RlZBgGIAEoBRJQChVjb25uZWN0ZWRCaWxsaW5nR3JvdXAYByADKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZUNvbm5lY3RlZEJpbGxpbmdHcm91cHMSQQoIaW52b2ljZXMYCCABKAsyLy5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzIiIKIEdldEludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXF1ZXN0IkgKIUdldEludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXNwb25zZRIjChtzaG93UklTUFVwZnJvbnRUaW1lSW50ZXJ2YWwYASABKAgirAEKI1VwZGF0ZUludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXF1ZXN0ElUKB3NldHRpbmcYASADKAsyRC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZURpc3BsYXlTZXR0aW5nc1JlcXVlc3QuU2V0dGluZ0VudHJ5Gi4KDFNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAg6AjgBImwKHUludm9pY2VDb25uZWN0ZWRCaWxsaW5nR3JvdXBzEhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkiPAopTGlzdEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSKHAQoeQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEgoKAmlkGAEgASgJEg8KB2FjY291bnQYAiABKAkSSAoQc2VydmljZURpc2NvdW50cxgDIAEoCzIuLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50cyI4ChdBY2NvdW50U2VydmljZURpc2NvdW50cxIKCgJpZBgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkifQorQ3JlYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIm0KLENyZWF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIn0KK1VwZGF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRI9CghhY2NvdW50cxgEIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50U2VydmljZURpc2NvdW50cyJtCixVcGRhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRI9CghhY2NvdW50cxgEIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50U2VydmljZURpc2NvdW50cyI+CitEZWxldGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkifQorUmVtb3ZlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIk8KMENyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEgoKAmlkGAIgASgJIj8KMUNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiTwowVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSCgoCaWQYAiABKAkiPwoxVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSJDCjBEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSJzChRDcmVhdGVJbnZvaWNlUmVxdWVzdBIMCgRkYXRlGAQgASgJEg4KBnZlbmRvchgBIAEoCRIRCglhbGxHcm91cHMYAiABKAgSDgoGZ3JvdXBzGAMgAygJEhoKEmV4Y2x1ZGVEZXNjZW5kYW50cxgFIAEoCCIlChdHZXRJbnZvaWNlU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSIoChhMaXN0SW52b2ljZVN0YXR1c1JlcXVlc3QSDAoEZGF0ZRgBIAEoCSJgChxVcGRhdGVJbnZvaWNlUHJldmlld3NSZXF1ZXN0EgwKBGRhdGUYASABKAkSEQoJYWxsR3JvdXBzGAIgASgIEg4KBmdyb3VwcxgDIAMoCRIPCgdlbmFibGVkGAQgASgIIs8BChVDcmVhdGVSZXNlbGxlclJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIQCghwYXNzd29yZBgDIAEoCRIUCgxub3RpZmljYXRpb24YBCABKAgSNgoKd2F2ZUNvbmZpZxgFIAMoCzIiLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlckNvbmZpZxI2CgphcXVhQ29uZmlnGAYgAygLMiIuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyQ29uZmlnIkYKFExpc3RSZXNlbGxlcnNSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIlAKEkdldFJlc2VsbGVyUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpmaWVsZF9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayKmAgoVVXBkYXRlUmVzZWxsZXJSZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEhMKBWVtYWlsGAIgASgJQgTiQQEBEhcKCHBhc3N3b3JkGAMgASgJQgXiQQIEARI8Cgp3YXZlQ29uZmlnGAQgAygLMiIuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyQ29uZmlnQgTiQQEBEjwKCmFxdWFDb25maWcYBSADKAsyIi5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXJDb25maWdCBOJBAQESGwoMbm90aWZpY2F0aW9uGAYgASgIQgXiQQIEARI0Cgp1cGRhdGVNYXNrGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIjChVEZWxldGVSZXNlbGxlclJlcXVlc3QSCgoCaWQYASABKAkiSgoYR2V0QmlsbGluZ1NldHRpbmdSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIscCChlHZXRCaWxsaW5nU2V0dGluZ1Jlc3BvbnNlEjAKCXllYXJNb250aBgBIAMoCzIdLmJsdWVhcGkuYXBpLnJpcHBsZS5ZZWFyTW9udGgSNAoOcm91bmRpbmdNZXRob2QYAiABKAsyHC5ibHVlYXBpLmFwaS5yaXBwbGUuUm91bmRpbmcSOgoUZXhwb3J0Um91bmRpbmdNZXRob2QYAyABKAsyHC5ibHVlYXBpLmFwaS5yaXBwbGUuUm91bmRpbmcSOAoNaW52b2ljZUxheW91dBgEIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0EjMKDmludm9pY2VEdWVEYXRlGAUgASgLMhsuYmx1ZWFwaS5hcGkucmlwcGxlLkR1ZURhdGUSFwoPc3VwcG9ydEN1cnJlbmN5GAYgAygJIjkKGExpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkiZQocU2V0R2xvYmFsRXhjaGFuZ2VSYXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSEAoIY3VycmVuY3kYAyABKAkSFAoMZXhjaGFuZ2VSYXRlGAQgASgBIncKG1NldFBheWVyRXhjaGFuZ2VSYXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg0KBW1vbnRoGAMgASgJEhAKCGN1cnJlbmN5GAQgASgJEhQKDGV4Y2hhbmdlUmF0ZRgFIAEoASJsCiJTZXRCaWxsaW5nR3JvdXBFeGNoYW5nZVJhdGVSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDQoFbW9udGgYAiABKAkSEAoIY3VycmVuY3kYAyABKAkSFAoMZXhjaGFuZ2VSYXRlGAQgASgBIuIBChlMaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlEg0KBW1vbnRoGAEgASgJEjYKBmNvbW1vbhgCIAEoCzImLmJsdWVhcGkuYXBpLnJpcHBsZS5Db21tb25FeGNoYW5nZVJhdGUSQgoMYmlsbGluZ0dyb3VwGAMgAygLMiwuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEV4Y2hhbmdlUmF0ZRI6CgVwYXllchgEIAEoCzIrLmJsdWVhcGkuYXBpLnJpcHBsZS5WZW5kb3JQYXllckV4Y2hhbmdlUmF0ZSJJChdMaXN0QWNjZXNzR3JvdXBzUmVxdWVzdBIuCgpmaWVsZF9tYXNrGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayJUChhDcmVhdGVBY2Nlc3NHcm91cFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIVCg1iaWxsaW5nR3JvdXBzGAMgAygJImAKGFVwZGF0ZUFjY2Vzc0dyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhUKDWJpbGxpbmdHcm91cHMYBCADKAkiJgoYRGVsZXRlQWNjZXNzR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJIp4BChJMaXN0SW52b2ljZVJlcXVlc3QSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYAyABKAkSLgoKZmllbGRfbWFzaxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSHwoXY2hpbGRCaWxsaW5nSW50ZXJuYWxJZHMYBSADKAkinQkKE0xpc3RJbnZvaWNlUmVzcG9uc2USGQoRYmlsbGluZ0ludGVybmFsSWQYASABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgDIAEoCRITCgtjb21wYW55TmFtZRgEIAEoCRIaChJmaW5hbGl6YXRpb25TdGF0dXMYBSABKAkSEQoJaXNDcmVhdGVkGAYgASgIEhkKEWlzU2V0dGluZ01vZGlmaWVkGAcgASgIEhMKC2NyZWF0ZWREYXRlGAggASgJEhMKC3VwZGF0ZWREYXRlGAkgASgJEhYKDmNyZWF0ZWRWZW5kb3JzGAogAygJEhMKC2lzUHVibGlzaGVkGAsgASgIEl0KE3ZlbmRvckJpbGxpbmdBbW91bnQYDCADKAsyQC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZS5WZW5kb3JCaWxsaW5nQW1vdW50RW50cnkSGgoSYmlsbGluZ0Ftb3VudFRvdGFsGA0gASgJEhAKCGN1cnJlbmN5GA4gASgJEg0KBXVybElkGA8gASgJEm0KG2NyZWF0ZWRWZW5kb3JJbnZvaWNlU2V0dGluZxgQIAMoCzJILmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVJlc3BvbnNlLkNyZWF0ZWRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5EmkKGXNhdmVkVmVuZG9ySW52b2ljZVNldHRpbmcYESADKAsyRi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZS5TYXZlZFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSbQobZGVmYXVsdFZlbmRvckludm9pY2VTZXR0aW5nGBIgAygLMkguYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UuRGVmYXVsdFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSEAoIaGFzQ2hpbGQYEyABKAgSFwoPYXR0YWNoZWRWZW5kb3JzGBQgAygJGjoKGFZlbmRvckJpbGxpbmdBbW91bnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGmcKIENyZWF0ZWRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5EgsKA2tleRgBIAEoCRIyCgV2YWx1ZRgCIAEoCzIjLmJsdWVhcGkuYmlsbGluZy52MS5JbnZvaWNlU2V0dGluZ3M6AjgBGmUKHlNhdmVkVmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzOgI4ARpnCiBEZWZhdWx0VmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzOgI4ASIpChtMaXN0QWJjQmlsbGluZ0dyb3Vwc1JlcXVlc3QSCgoCaWQYASABKAkiTgoiTGlzdEFiY0JpbGxpbmdHcm91cEFjY291bnRzUmVxdWVzdBIPCgdwYXllcklkGAEgASgJEhcKD2JpbGxpbmdHcm91cEFybhgCIAEoCSKPAQoPQWJjQmlsbGluZ0dyb3VwEgsKA2FybhgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGNyZWF0aW9uVGltZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIYChBwcmltYXJ5QWNjb3VudElkGAUgASgJEgwKBHNpemUYBiABKAkSDgoGc3RhdHVzGAcgASgJIjQKCkFiY0FjY291bnQSEQoJYWNjb3VudElkGAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJImIKHVJlYWRJbnZvaWNlQWRqdXN0bWVudHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDQoFbW9udGgYAyABKAkSDwoHZmVlVHlwZRgEIAEoCSKZAQocUmVhZEFkanVzdG1lbnRFbnRyaWVzUmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEwoFbW9udGgYAiABKAlCBOJBAQEaTgoiQWRqdXN0bWVudEVudHJpZXNSZXF1ZXN0QXdzT3B0aW9ucxITCgtzcHBEaXNjb3VudBgBIAEoCBITCgtlZHBEaXNjb3VudBgCIAEoCCJDChlHZXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhIQCgJpZBgCIAEoCUIE4kEBAiKeAwobQXBwbHlBZGp1c3RtZW50RW50cnlSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhJTCgdzZXR0aW5nGAIgASgLMjwuYmx1ZWFwaS5iaWxsaW5nLnYxLkFwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdC5BcHBseVNldHRpbmdCBOJBAQISFQoHZW50cmllcxgDIAMoCUIE4kEBAhr8AQoMQXBwbHlTZXR0aW5nEhMKBW1vbnRoGAEgASgJQgTiQQEBEhUKB3RheEZyZWUYAiABKAhCBOJBAQESagoMZXhjaGFuZ2VSYXRlGAMgAygLMk4uYmx1ZWFwaS5iaWxsaW5nLnYxLkFwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdC5BcHBseVNldHRpbmcuRXhjaGFuZ2VSYXRlRW50cnlCBOJBAQESHwoRYmlsbGluZ0ludGVybmFsSWQYBCABKAlCBOJBAQEaMwoRRXhjaGFuZ2VSYXRlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJMCh1SZXN0b3JlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISFQoHZW50cmllcxgDIAMoCUIE4kEBAiJfChtTcGxpdEFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECEhgKCnN0YXJ0TW9udGgYAyABKAlCBOJBAQIi/AEKHkFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQISVgoGY29uZmlnGAMgAygLMkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdC5BY2NvdW50Q29uZmlnQgTiQQECEiEKE2FjY291bnRGb3JSZW1haW5pbmcYBCABKAlCBOJBAQIaNwoNQWNjb3VudENvbmZpZxIQCgJpZBgBIAEoCUIE4kEBAhIUCgZhbW91bnQYAiABKAFCBOJBAQIiTAoiUmVzdG9yZVNwbGl0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQIiTwolUmVzdG9yZUFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQIifgoWQ3JlYXRlQ3VzdG9tRmVlUmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEwoFbW9udGgYAiABKAlCBOJBAQISOQoHZW50cmllcxgDIAMoCzIiLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GZWVFbnRyeUIE4kEBAiKhAwoOQ3VzdG9tRmVlRW50cnkSFwoJYWNjb3VudElkGAEgASgJQgTiQQECEhwKDnBheWVyQWNjb3VudElkGAIgASgJQgTiQQECEhUKB2ZlZVR5cGUYAyABKAlCBOJBAQISGQoLbW9iaW5naVR5cGUYBCABKAlCBOJBAQISFAoGYW1vdW50GAUgASgBQgTiQQECEhoKDGN1cnJlbmN5Q29kZRgGIAEoCUIE4kEBAhIZCgtkZXNjcmlwdGlvbhgHIAEoCUIE4kEBAhIZCgtwcm9kdWN0Q29kZRgIIAEoCUIE4kEBARIZCgtwcm9kdWN0TmFtZRgJIAEoCUIE4kEBARIYCgp1c2FnZVN0YXJ0GAogASgJQgTiQQEBEhoKDHRpbWVJbnRlcnZhbBgLIAEoCUIE4kEBARJACgRtZXRhGAwgAygLMiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZlZUVudHJ5Lk1ldGFFbnRyeUIE4kEBARorCglNZXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIqChdDcmVhdGVDdXN0b21GZWVSZXNwb25zZRIPCgdjcmVhdGVkGAEgASgFIn0KH0xpc3RBZGp1c3RtZW50RW50cnlJdGVtc1JlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhMKBW1vbnRoGAIgASgJQgTiQQECEhkKC21vYmluZ2lUeXBlGAMgASgJQgTiQQEBEhQKBnN0YXR1cxgEIAEoCUIE4kEBASK6AQoTQWRqdXN0bWVudEVudHJ5SXRlbRI1CgVlbnRyeRgBIAEoCzImLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5BZGp1c3RtZW50RW50cnkSPwoEbWV0YRgCIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5BZGp1c3RtZW50RW50cnlJdGVtLk1ldGFFbnRyeRorCglNZXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI8ChtMaXN0QWNjb3VudFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJIkoKD1Jlc291cmNlQWNjb3VudBIPCgdwYXllcklkGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSEgoKcmVnaXN0ZXJlZBgDIAEoCCJIChpHZXRBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSGgoSaW5jbHVkZVNQUERpc2NvdW50GAIgASgIIo0BCh1DcmVhdGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSKgoGY29uZmlnGAIgAygLMhouYmx1ZWFwaS5hcGkuQ29uZmlnRmlsdGVycxIwCghhY2NvdW50cxgDIAMoCzIeLmJsdWVhcGkuYXBpLk1hbmFnZW1lbnRBY2NvdW50Io0BCh1VcGRhdGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSKgoGY29uZmlnGAIgAygLMhouYmx1ZWFwaS5hcGkuQ29uZmlnRmlsdGVycxIwCghhY2NvdW50cxgDIAMoCzIeLmJsdWVhcGkuYXBpLk1hbmFnZW1lbnRBY2NvdW50Ii8KHURlbGV0ZUFkanVzdG1lbnRDb25maWdSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJnChlSZWFkVW50YWdnZWRHcm91cHNSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhI0CgpmaWVsZF9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBASJcCiRSZWFkQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlc1JlcXVlc3QSNAoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQEiZgoiR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIKCgJpZBgBIAEoCRI0CgpmaWVsZF9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBASJ8CiVDcmVhdGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSMAoGY29uZmlnGAMgASgLMiAuYmx1ZWFwaS5hcGkucmlwcGxlLk1ldGhvZENvbmZpZyLFAQolVXBkYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAhJUChhjdXN0b21pemVkQmlsbGluZ1NlcnZpY2UYAiABKAsyLC5ibHVlYXBpLmFwaS5yaXBwbGUuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQgTiQQECEjQKCnVwZGF0ZU1hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIjMKJURlbGV0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSCgoCaWQYASABKAkiXQouR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBIVCgdncm91cElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAiLJAQovR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVzcG9uc2USEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEkAKDmNoYXJnaW5nVGFyZ2V0GAMgASgOMiIuYmx1ZWFwaS5hcGkucmlwcGxlLkNoYXJnaW5nVGFyZ2V0QgTiQQECEiwKCGFjY291bnRzGAQgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudEIE4kEBASL3AgouU2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBIVCgdncm91cElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhKAAQoHc2V0dGluZxgDIAMoCzJpLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0LkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nQgTiQQECGpQBCiZDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZxIQCgJpZBgBIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgCIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIWCghhY2NvdW50cxgDIAMoCUIE4kEBASJgCjFEZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0EhUKB2dyb3VwSWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECIpEBCiRDcmVhdGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRJGCgdzZXR0aW5nGAMgASgLMjUuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzU2V0dGluZyLFAQokVXBkYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECElUKF2ludm9pY2VTZXJ2aWNlRGlzY291bnRzGAIgASgLMi4uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzQgTiQQECEjQKCnVwZGF0ZU1hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIjIKJERlbGV0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIKCgJpZBgBIAEoCSJuCgdUYWdEYXRhEhIKCmN1c3RvbWVySWQYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhQKDGN1c3RvbWVyTmFtZRgDIAEoCRImCgR0YWdzGAQgAygLMhguYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ3MiTwoEVGFncxILCgNrZXkYASABKAkSDgoGdmFsdWVzGAIgAygJEhcKD3RvdGFsVmFsdWVDb3VudBgDIAEoBRIRCgl0cnVuY2F0ZWQYBCABKAgiLgoOR2V0VGFnc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgwKBHR5cGUYAiABKAkigAEKFExpc3RUYWdWYWx1ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEg4KBnRhZ0tleRgDIAEoCRISCgpwYWdlTnVtYmVyGAQgASgFEhAKCHBhZ2VTaXplGAUgASgFEg4KBnNlYXJjaBgGIAEoCSJ6ChVMaXN0VGFnVmFsdWVzUmVzcG9uc2USDgoGdmFsdWVzGAEgAygJEhcKD3RvdGFsVmFsdWVDb3VudBgCIAEoBRISCgpwYWdlTnVtYmVyGAMgASgFEhAKCHBhZ2VTaXplGAQgASgFEhIKCnRvdGFsUGFnZXMYBSABKAUiOwoLQ3VzdG9tRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIl4KF0JpbGxpbmdHcm91cEN1c3RvbUZpZWxkEg0KBXZhbHVlGAEgASgJEjQKC2N1c3RvbUZpZWxkGAIgASgLMh8uYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZpZWxkIjUKIkxpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSKFAQojTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVzcG9uc2USDwoHZ3JvdXBJZBgBIAEoCRJNChhiaWxsaW5nR3JvdXBDdXN0b21GaWVsZHMYAiADKAsyKy5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQiPAoYQ3JlYXRlQ3VzdG9tRmllbGRSZXF1ZXN0EgsKA2tleRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCSJIChhVcGRhdGVDdXN0b21GaWVsZFJlcXVlc3QSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIiYKGERlbGV0ZUN1c3RvbUZpZWxkUmVxdWVzdBIKCgJpZBgBIAEoCSIYChZMaXN0Q3VzdG9tRmllbGRSZXF1ZXN0ImsKF0NyZWF0ZUZyZWVGb3JtYXRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJEi8KBWl0ZW1zGAMgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbSJhCgxGcmVlRm9ybUl0ZW0SDQoFbGFiZWwYASABKAkSEAoIdW5pdENvc3QYAiABKAMSDQoFdG90YWwYBSABKAMSEAoIcXVhbnRpdHkYAyABKA0SDwoHZW5hYmxlZBgEIAEoCCI6ChdEZWxldGVGcmVlRm9ybWF0UmVxdWVzdBIPCgdncm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCSI9ChRHZXRGcmVlRm9ybWF0UmVxdWVzdBIPCgdncm91cElkGAEgASgJEhQKDGlzQXNzb2NpYXRlZBgCIAEoCCJuChVHZXRGcmVlRm9ybWF0UmVzcG9uc2USDwoHZ3JvdXBJZBgDIAEoCRIOCgZ2ZW5kb3IYASABKAkSNAoKZnJlZUZvcm1hdBgCIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5GcmVlRm9ybUl0ZW0iOgomR2V0TW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZVJlcXVlc3QSEAoIbGFuZ3VhZ2UYASABKAkisQEKHE1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGUSDgoGZm9ybWF0GAEgASgJEhYKDmZvcm1hdF92ZXJzaW9uGAIgASgJEg8KB2hlYWRlcnMYAyADKAkSEgoKc2FtcGxlX3JvdxgEIAMoCRIVCg1hbGxvd2VkX21vZGVzGAUgAygJEhsKE21heF9maWxlX3NpemVfYnl0ZXMYBiABKAMSEAoIbWF4X3Jvd3MYByABKAUirwEKIEJ1bGtJbXBvcnRNb250aGx5TWlzY0ZlZXNSZXF1ZXN0EhkKC2Nzdl9jb250ZW50GAEgASgJQgTiQQECEhcKCWZpbGVfbmFtZRgCIAEoCUIE4kEBAhISCgRtb2RlGAMgASgJQgTiQQECEhQKBmZvcm1hdBgEIAEoCUIE4kEBAhIcCg5mb3JtYXRfdmVyc2lvbhgFIAEoCUIE4kEBAhIPCgdkcnlfcnVuGAYgASgIIrABChpMaXN0TW9udGhseU1pc2NGZWVzUmVxdWVzdBIbCg1iaWxsaW5nX21vbnRoGAEgASgJQgTiQQECEhgKEGJpbGxpbmdfZ3JvdXBfaWQYAiABKAkSIAoYYmlsbGluZ19ncm91cF9uYW1lX3F1ZXJ5GAMgASgJEhIKCml0ZW1fcXVlcnkYBCABKAkSEQoJcGFnZV9zaXplGAUgASgFEhIKCnBhZ2VfdG9rZW4YBiABKAkifQobTGlzdE1vbnRobHlNaXNjRmVlc1Jlc3BvbnNlEjAKBHJvd3MYASADKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWUSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgFIlAKG0RlbGV0ZU1vbnRobHlNaXNjRmVlUmVxdWVzdBIUCgZyb3dfaWQYASABKAlCBOJBAQISGwoNYmlsbGluZ19tb250aBgCIAEoCUIE4kEBAiL4AQoOTW9udGhseU1pc2NGZWUSDgoGcm93X2lkGAEgASgJEhUKDWJpbGxpbmdfbW9udGgYAiABKAkSGAoQYmlsbGluZ19ncm91cF9pZBgDIAEoCRIaChJiaWxsaW5nX2dyb3VwX25hbWUYBCABKAkSDgoGdmVuZG9yGAUgASgJEhEKCWl0ZW1fbmFtZRgGIAEoCRIQCghxdWFudGl0eRgHIAEoDRIRCgl1bml0X2Nvc3QYCCABKAMSDgoGYW1vdW50GAkgASgDEg8KB2VuYWJsZWQYCiABKAgSDgoGc291cmNlGAsgASgJEhAKCGN1cnJlbmN5GAwgASgJIpYDChpNb250aGx5TWlzY0ZlZUltcG9ydFJlc3VsdBIOCgZzdGF0dXMYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhIKCnRvdGFsX3Jvd3MYAyABKAUSEgoKdmFsaWRfcm93cxgEIAEoBRIVCg1pbnNlcnRlZF9yb3dzGAUgASgFEhQKDHVwZGF0ZWRfcm93cxgGIAEoBRIWCg51bmNoYW5nZWRfcm93cxgHIAEoBRITCgtmYWlsZWRfcm93cxgIIAEoBRJGCgtyb3dfcmVzdWx0cxgJIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydFJvd1Jlc3VsdBIUCgxyZW1vdmVkX3Jvd3MYCiABKAUSFgoOYmlsbGluZ19tb250aHMYCyADKAkSDwoHdmVuZG9ycxgMIAMoCRJMCg5iaWxsaW5nX2dyb3VwcxgNIAMoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydEdyb3VwU3VtbWFyeSJYCiBNb250aGx5TWlzY0ZlZUltcG9ydEdyb3VwU3VtbWFyeRIYChBiaWxsaW5nX2dyb3VwX2lkGAEgASgJEhoKEmJpbGxpbmdfZ3JvdXBfbmFtZRgCIAEoCSLtAgodTW9udGhseU1pc2NGZWVJbXBvcnRSb3dSZXN1bHQSFgoOY3N2X3Jvd19udW1iZXIYASABKAUSDgoGYWN0aW9uGAIgASgJEhgKEGJpbGxpbmdfZ3JvdXBfaWQYAyABKAkSGgoSYmlsbGluZ19ncm91cF9uYW1lGAQgASgJEg4KBnZlbmRvchgFIAEoCRIRCglpdGVtX25hbWUYBiABKAkSEAoIcXVhbnRpdHkYByABKA0SEQoJdW5pdF9jb3N0GAggASgDEg4KBmFtb3VudBgJIAEoAxIPCgdlbmFibGVkGAogASgIEkwKEXZhbGlkYXRpb25fZXJyb3JzGAsgAygLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlVmFsaWRhdGlvbkVycm9yEhUKDWJpbGxpbmdfbW9udGgYDCABKAkSEAoIY3VycmVuY3kYDSABKAkSDgoGc291cmNlGA4gASgJIk0KHU1vbnRobHlNaXNjRmVlVmFsaWRhdGlvbkVycm9yEg0KBWZpZWxkGAEgASgJEgwKBGNvZGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSJ3Ch5VcGRhdGVUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSNAoFaXRlbXMYAyADKAsyJS5ibHVlYXBpLmJpbGxpbmcudjEuVGFnc0FkZGluZ1NldHRpbmciPgobR2V0VGFnc0FkZGluZ1NldHRpbmdSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJIkkKEVRhZ3NBZGRpbmdTZXR0aW5nEg8KB2dyb3VwSWQYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRIPCgd0YWdLZXlzGAMgAygJIk0KHUV4cG9ydFNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhQKBmZvcm1hdBgBIAEoCUIE4kEBAhIWCghsYW5ndWFnZRgCIAEoCUIE4kEBASKkAQorRXhwb3J0QWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIUCgZmb3JtYXQYASABKAlCBOJBAQISFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESEgoKZGlyZWN0TGluaxgDIAEoCBIdCg9iaWxsaW5nR3JvdXBJZHMYBCADKAlCBOJBAQESFAoGbGF5ZXJzGAUgAygFQgTiQQEBIqkBCjBFeHBvcnRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSFAoGZm9ybWF0GAEgASgJQgTiQQECEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhIKCmRpcmVjdExpbmsYAyABKAgSHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBEhQKBmxheWVycxgFIAMoBUIE4kEBASJrChxFeHBvcnRCaWxsaW5nR3JvdXBDc3ZSZXF1ZXN0EhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEh0KD2JpbGxpbmdHcm91cElkcxgDIAMoCUIE4kEBARIUCgZsYXllcnMYBCADKAVCBOJBAQEiNQodRXhwb3J0QmlsbGluZ0dyb3VwQ3N2UmVzcG9uc2USFAoMZG93bmxvYWRMaW5rGAEgASgJIpEBCh5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlcXVlc3QSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESIgoUaW5jbHVkZU1pc2NlbGxhbmVvdXMYAyABKAhCBOJBAQESHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBEhQKBmxheWVycxgFIAMoBUIE4kEBASI3Ch9FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSJACi1HZXRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSI8Ci5HZXRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlEgoKAmlkGAEgASgJIrkBCiFBZGRCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRJTCgdpZFRvS2V5GAIgAygLMkIuYmx1ZWFwaS5iaWxsaW5nLnYxLkFkZEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdC5JZFRvS2V5RW50cnkaLgoMSWRUb0tleUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiTgokRGVsZXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSFQoNY3VzdG9tRmllbGRJZBgCIAEoCSJ2Ch9BZGRBY2NvdW50VG9CaWxsaW5nR3JvdXBSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJEjIKCGFjY291bnRzGAMgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRUb0FkZCJRCgxBY2NvdW50VG9BZGQSEgoKY3VzdG9tZXJJZBgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRub3RlGAQgASgJIqsBChxBZGRUYWdzVG9CaWxsaW5nR3JvdXBSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJEjAKCHNldHRpbmdzGAMgAygLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ1NldHRpbmcSOAoNbm9uVGFnU2V0dGluZxgEIAEoCzIhLmJsdWVhcGkuYmlsbGluZy52MS5Ob25UYWdTZXR0aW5nIkcKClRhZ1NldHRpbmcSEgoKY3VzdG9tZXJJZBgBIAEoCRIlCgR0YWdzGAIgAygLMhcuYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZyIxCgNUYWcSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJEg4KBmFzc2lnbhgDIAEoBSI+Cg1Ob25UYWdTZXR0aW5nEg8KB2luY2x1ZGUYASABKAgSDAoEdHlwZRgCIAEoCRIOCgZhbW91bnQYAyABKAEiPgodU2F2ZVRhZ0ludm9pY2VTZXR0aW5nUmVzcG9uc2USDgoGc3RhdHVzGAEgASgJEg0KBWVycm9yGAIgASgJIn4KJlVwZGF0ZU5vblRhZ0dyb3VwVG9CaWxsaW5nR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnZlbmRvchgCIAEoCRI4CghzZXR0aW5ncxgDIAMoCzImLmJsdWVhcGkuYmlsbGluZy52MS5Ob25UYWdHcm91cFNldHRpbmciPgoSTm9uVGFnR3JvdXBTZXR0aW5nEgoKAmlkGAEgASgJEgwKBHR5cGUYAiABKAkSDgoGYW1vdW50GAMgASgBIpoBChpTYXZlSW52b2ljZVNldHRpbmdzUmVxdWVzdBIMCgRkYXRlGAEgASgJEg4KBnZlbmRvchgCIAEoCRIRCglhbGxHcm91cHMYAyABKAgSDgoGZ3JvdXBzGAQgAygJEjsKDmludm9pY2VTZXR0aW5nGAUgASgLMiMuYmx1ZWFwaS5iaWxsaW5nLnYxLkludm9pY2VTZXR0aW5ncyKzBAoPSW52b2ljZVNldHRpbmdzEhEKCWludm9pY2VObxgCIAEoCRIUCgxkaXNjb3VudFJhdGUYBCABKAESGwoTZGlzY291bnRUYXJnZXRVc2FnZRgFIAEoCRIZChFkaXNjb3VudENhbGNMb2dpYxgGIAEoCRIPCgd0YXhSYXRlGAcgASgBEhIKCnN1cHBvcnRGZWUYCCABKAkSEwoLc3VwcG9ydFJhdGUYCSABKAESHAoUc3VwcG9ydEZlZUNhbGNUYXJnZXQYCiABKAkSEgoKc3VwcG9ydEZpeBgLIAEoARIXCg9zdWJzdGl0dXRpb25GZWUYDCABKAkSGAoQc3Vic3RpdHV0aW9uUmF0ZRgNIAEoARIXCg9zdWJzdGl0dXRpb25GaXgYDiABKAESIQoZc3Vic3RpdHV0aW9uRmVlQ2FsY1RhcmdldBgPIAEoCRIiChpzdWJzdGl0dXRpb25GZWVUYXJnZXRVc2FnZRgQIAEoCRIfChdzdWJzdGl0dXRpb25GZWVDYWxjVHlwZRgRIAEoCRIQCghjdXJyZW5jeRgDIAEoCRIUCgxleGNoYW5nZVJhdGUYEiABKAESDAoEbWVtbxgTIAEoCRIQCghjYWxjVHlwZRgUIAEoCRI5Cg9hZGRpdGlvbmFsSXRlbXMYFSADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuRnJlZUZvcm1JdGVtEhwKFHN1cHBvcnRGZWVBZGp1c3RtZW50GBYgASgBIq0DChBCYXNpY0luZm9ybWF0aW9uEhgKEGJpbGxpbmdHcm91cE5hbWUYAiABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAyABKAkSEwoLY29tcGFueU5hbWUYBCABKAkSFgoJYWRkcmVzc2VlGAUgASgJSACIAQESFAoHY291bnRyeRgGIAEoCUgBiAEBEhcKCnBvc3RhbENvZGUYByABKAlIAogBARIRCgRjaXR5GAggASgJSAOIAQESGAoLcGhvbmVOdW1iZXIYCSABKAlIBIgBARIZCgxhZGRyZXNzTGluZTEYCiABKAlIBYgBARIZCgxhZGRyZXNzTGluZTIYCyABKAlIBogBARISCgVzdGF0ZRgMIAEoCUgHiAEBEhcKCnByZWZlY3R1cmUYDSABKAlICIgBAUIMCgpfYWRkcmVzc2VlQgoKCF9jb3VudHJ5Qg0KC19wb3N0YWxDb2RlQgcKBV9jaXR5Qg4KDF9waG9uZU51bWJlckIPCg1fYWRkcmVzc0xpbmUxQg8KDV9hZGRyZXNzTGluZTJCCAoGX3N0YXRlQg0KC19wcmVmZWN0dXJlIncKKVVwZGF0ZUJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEj4KEGJhc2ljSW5mb3JtYXRpb24YAiABKAsyJC5ibHVlYXBpLmJpbGxpbmcudjEuQmFzaWNJbmZvcm1hdGlvbiK8AQolVXBkYXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRzUmVxdWVzdBIKCgJpZBgBIAEoCRJXCgdpZFRvS2V5GAIgAygLMkYuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkc1JlcXVlc3QuSWRUb0tleUVudHJ5Gi4KDElkVG9LZXlFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBInIKI1VwZGF0ZUJpbGxpbmdHcm91cEZyZWVGb3JtYXRSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIvCgVpdGVtcxgDIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5GcmVlRm9ybUl0ZW0i6gIKKFVwZGF0ZUJpbGxpbmdHcm91cExpbmtlZFJlc291cmNlc1JlcXVlc3QSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhcKD3NlbGVjdGlvbk1ldGhvZBgDIAEoCRIyCghhY2NvdW50cxgEIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50VG9BZGQSMAoIc2V0dGluZ3MYBSADKAsyHi5ibHVlYXBpLmJpbGxpbmcudjEuVGFnU2V0dGluZxI9Cg1ub25UYWdTZXR0aW5nGAYgASgLMiEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vblRhZ1NldHRpbmdIAIgBARI/Cg5hY2NvdW50T3B0aW9ucxgHIAEoCzIiLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50T3B0aW9uc0gBiAEBQhAKDl9ub25UYWdTZXR0aW5nQhEKD19hY2NvdW50T3B0aW9ucyL2AQooVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUmVxdWVzdBIKCgJpZBgBIAEoCRIZCgxiaWxsaW5nVGl0bGUYAiABKAlIAIgBARIcCg9jYWxjdWxhdGlvblR5cGUYAyABKAlIAYgBARIVCghsYW5ndWFnZRgEIAEoCUgCiAEBEiIKFWludm9pY2VMYXlvdXRDb25maWdJZBgFIAEoCUgDiAEBQg8KDV9iaWxsaW5nVGl0bGVCEgoQX2NhbGN1bGF0aW9uVHlwZUILCglfbGFuZ3VhZ2VCGAoWX2ludm9pY2VMYXlvdXRDb25maWdJZCKvAQooVXBkYXRlQmlsbGluZ0dyb3VwUmVzZWxsZXJDaGFyZ2VzUmVxdWVzdBIKCgJpZBgBIAEoCRIcCg9pbnZvaWNlVGVtcGxhdGUYAiABKAlIAIgBARJFCgdpbnZvaWNlGAMgASgLMjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3RJbnZvaWNlQhIKEF9pbnZvaWNlVGVtcGxhdGUivwQKKlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdBIKCgJpZBgBIAEoCRJ4CgNhd3MYAiADKAsyZS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXNSZXF1ZXN0LkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nQgTiQQECEnoKBWF6dXJlGAMgAygLMmUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhJ4CgNnY3AYBCADKAsyZS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXNSZXF1ZXN0LkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nQgTiQQECGpQBCiZDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZxIQCgJpZBgBIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgCIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIWCghhY2NvdW50cxgDIAMoCUIE4kEBASInChlEZWxldGVCaWxsaW5nR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJIlIKKEdldEJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECIqABCilHZXRCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXNwb25zZRIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSDwoHZW5hYmxlZBgDIAEoCBJGCgdzZXR0aW5nGAQgAygLMjUuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhbiLwAQorVXBkYXRlQmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISFQoHZW5hYmxlZBgDIAEoCEIE4kEBARJMCgdzZXR0aW5nGAQgAygLMjUuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhbkIE4kEBARI0Cgp1cGRhdGVNYXNrGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIxChdHZXRBbm5vdW5jZW1lbnRzUmVxdWVzdBIWCg5hbm5vdW5jZW1lbnRJZBgBIAEoCSKnAQoZQ3JlYXRlQW5ub3VuY2VtZW50UmVxdWVzdBINCgVsYWJlbBgBIAEoCRIMCgR0eXBlGAIgASgJEhAKCGNvbnRlbnRzGAMgASgJEhUKDWJpbGxpbmdHcm91cHMYBCADKAkSGAoQYWxsQmlsbGluZ0dyb3VwcxgFIAEoCBINCgVzdGFydBgGIAEoAxILCgNlbmQYByABKAMSDgoGc3RhdHVzGAggASgJIngKGVVwZGF0ZUFubm91bmNlbWVudFJlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASABKAkSQwoMYW5ub3VuY2VtZW50GAIgASgLMi0uYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUFubm91bmNlbWVudFJlcXVlc3QiSgogVXBkYXRlQW5ub3VuY2VtZW50c1N0YXR1c1JlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASADKAkSDgoGc3RhdHVzGAIgASgJIkUKHVVwZGF0ZUFubm91bmNlbWVudERhdGVSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgAygJEgwKBGRhdGUYAiABKAMiMwoZRGVsZXRlQW5ub3VuY2VtZW50UmVxdWVzdBIWCg5hbm5vdW5jZW1lbnRJZBgBIAEoCSLpAQoMQW5ub3VuY2VtZW50EgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJEgwKBHR5cGUYAyABKAkSDwoHbWVzc2FnZRgEIAEoCRIVCg1iaWxsaW5nR3JvdXBzGAUgAygJEhgKEGFsbEJpbGxpbmdHcm91cHMYDSABKAgSDQoFc3RhcnQYBiABKAkSCwoDZW5kGAcgASgJEgwKBGRhdGUYCCABKAkSDgoGc3RhdHVzGAkgASgJEhIKCnVzZXJTdGF0dXMYCiABKAkSDwoHY3JlYXRlZBgLIAEoCRIPCgd1cGRhdGVkGAwgASgJIjYKI0dldEJpbGxpbmdHcm91cEFubm91bmNlbWVudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkilgEKJEdldEJpbGxpbmdHcm91cEFubm91bmNlbWVudHNSZXNwb25zZRIPCgdncm91cElkGAEgASgJEhEKCWdyb3VwTmFtZRgCIAEoCRIRCgljb21wYW55SWQYAyABKAkSNwoNYW5ub3VuY2VtZW50cxgEIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5Bbm5vdW5jZW1lbnQiEwoRR2V0Q3JlZGl0c1JlcXVlc3QixAEKBkNyZWRpdBIKCgJpZBgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEhQKDGN1c3RvbWVyTmFtZRgDIAEoCRIUCgxjcmVkaXRBbW91bnQYBCABKAESDAoEdGVybRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIPCgdjcmVhdGVkGAcgASgJEhIKCmluaXRpYWxGZWUYCCABKAESFQoNY3JlZGl0QmFsYW5jZRgJIAEoARIPCgdhcHBsaWVkGAogASgIIhcKFUdldENzdlNldHRpbmdzUmVxdWVzdCKkAQoKQ3N2U2V0dGluZxIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEjIKA2NvbBgDIAMoCzIlLmJsdWVhcGkuYmlsbGluZy52MS5Dc3ZTZXR0aW5nLkNvbHVtbhpICgZDb2x1bW4SDAoEbmFtZRgBIAEoCRIKCgJpZBgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIPCgdlbmFibGVkGAQgASgIIuYBCiBVcGRhdGVJbnZvaWNlRXhjaGFuZ2VSYXRlUmVxdWVzdBINCgVtb250aBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSXAoMZXhjaGFuZ2VSYXRlGAMgAygLMkYuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUludm9pY2VFeGNoYW5nZVJhdGVSZXF1ZXN0LkV4Y2hhbmdlUmF0ZUVudHJ5EhAKCGdyb3VwSWRzGAQgAygJGjMKEUV4Y2hhbmdlUmF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEijQEKGkNvbnZlcnRJbnZvaWNlVG9QZGZSZXF1ZXN0EgwKBGRhdGUYASABKAkSFQoNYmlsbGluZ2dyb3VwcxgCIAMoCRIYChBhbGxCaWxsaW5nR3JvdXBzGAMgASgIEhQKBmxheWVycxgEIAMoBUIE4kEBARIaCgxwcmV2aWV3X29ubHkYBSABKAhCBOJBAQEi0AEKG0NvbnZlcnRJbnZvaWNlVG9QZGZSZXNwb25zZRIQCghwcm9ncmVzcxgBIAEoCRITCgtkb3dubG9hZFVybBgCIAEoCRJWCgxsYXllcl9jb3VudHMYAyADKAsyQC5ibHVlYXBpLmJpbGxpbmcudjEuQ29udmVydEludm9pY2VUb1BkZlJlc3BvbnNlLkxheWVyQ291bnRzRW50cnkaMgoQTGF5ZXJDb3VudHNFbnRyeRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAU6AjgBIogCCiFMaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZFJlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSDwoHdmVuZG9ycxgCIAEoCRIQCghjYWxjVHlwZRgDIAEoCRITCgtkaXNwbGF5Q29zdBgEIAEoCRIOCgZiZ1R5cGUYBSABKAkSEwoLY29tcGFueU5hbWUYBiABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgHIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgIIAEoCRIQCghwYWdlU2l6ZRgJIAEoBRISCgpwYWdlTnVtYmVyGAogASgFIpcCChRCaWxsaW5nR3JvdXBMaXN0SXRlbRIYChBiaWxsaW5nR3JvdXBOYW1lGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhMKC2NvbXBhbnlOYW1lGAMgASgJEhgKEGJpbGxpbmdHcm91cFR5cGUYBCABKAkSTAoHdmVuZG9ycxgFIAMoCzI7LmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBMaXN0SXRlbS5CaWxsaW5nR3JvdXBWZW5kb3ISGQoRYmlsbGluZ0ludGVybmFsSWQYBiABKAkaNQoSQmlsbGluZ0dyb3VwVmVuZG9yEg4KBnZlbmRvchgBIAEoCRIPCgdlbmFibGVkGAIgASgIIrQBCiJMaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZFJlc3BvbnNlEj8KDWJpbGxpbmdHcm91cHMYASADKAsyKC5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwTGlzdEl0ZW0SEgoKdG90YWxDb3VudBgCIAEoBRITCgtjdXJyZW50UGFnZRgDIAEoBRIQCghwYWdlU2l6ZRgEIAEoBRISCgp0b3RhbFBhZ2VzGAUgASgFIo4BCiFDaGlsZEJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb24SCgoCaWQYASABKAkSEgoKaW50ZXJuYWxJZBgGIAEoCRIQCghwYXJlbnRJZBgCIAEoCRIUCgxyb290UGFyZW50SWQYBSABKAkSDAoEbmFtZRgDIAEoCRITCgtjb21wYW55TmFtZRgEIAEoCSK+AQokQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwEhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgDIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIsCghhY2NvdW50cxgEIAMoCzIULmJsdWVhcGkuYXBpLkFjY291bnRCBOJBAQEigAIKEUNoaWxkQmlsbGluZ0dyb3VwEk8KEGJhc2ljSW5mb3JtYXRpb24YASABKAsyNS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEk0KD2ludm9pY2VTZXR0aW5ncxgCIAEoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5ncxI5CgtiaWxsaW5nSW5mbxgDIAEoCzIkLmJsdWVhcGkuYXBpLnJpcHBsZS5CaWxsaW5nR3JvdXBJbmZvEhAKCGhhc0NoaWxkGAQgASgIIqwCCiBDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5ncxJDCgNhd3MYASABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZxIhChlhY2NvdW50U3VwcG9ydFBsYW5FbmFibGVkGAIgASgIElkKGmFjY291bnRTdXBwb3J0UGxhblNldHRpbmdzGAMgAygLMjUuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhbhJFCgVhenVyZRgEIAEoCzI2LmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBWZW5kb3JlZEludm9pY2VTZXR0aW5nIpoCCh5DcmVhdGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QSTwoQYmFzaWNJbmZvcm1hdGlvbhgBIAEoCzI1LmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb24SOQoLYmlsbGluZ0luZm8YAyABKAsyJC5ibHVlYXBpLmFwaS5yaXBwbGUuQmlsbGluZ0dyb3VwSW5mbxJNCg9pbnZvaWNlU2V0dGluZ3MYAiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSHQoVaW52b2ljZUxheW91dENvbmZpZ0lkGAQgASgJIiEKH0NyZWF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2UiMQobR2V0Q2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkiVgocR2V0Q2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZRI2CgdkZXRhaWxzGAEgASgLMiUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwIkEKHVJlYWRDaGlsZEJpbGxpbmdHcm91cHNSZXF1ZXN0Eg4KBnJvb3RJZBgBIAEoCRIQCghwYXJlbnRJZBgCIAEoCSLAAQoeVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSTwoQYmFzaWNJbmZvcm1hdGlvbhgCIAEoCzI1LmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb24SOQoLYmlsbGluZ0luZm8YAyABKAsyJC5ibHVlYXBpLmFwaS5yaXBwbGUuQmlsbGluZ0dyb3VwSW5mbyIhCh9VcGRhdGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIjQKHkRlbGV0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJIiEKH0RlbGV0ZUNoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2Ui0AEKLVVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJEk0KD2ludm9pY2VTZXR0aW5ncxgCIAEoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5ncxIiChVpbnZvaWNlTGF5b3V0Q29uZmlnSWQYAyABKAlIAIgBAUIYChZfaW52b2ljZUxheW91dENvbmZpZ0lkIjAKLlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUmVzcG9uc2UimgMKM1NldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIYCgppbnRlcm5hbElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhIUCgZyb290SWQYAyABKAlCBOJBAQIShQEKB3NldHRpbmcYBCADKAsybi5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0LkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nQgTiQQECGpQBCiZDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZxIQCgJpZBgBIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgCIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIWCghhY2NvdW50cxgDIAMoCUIE4kEBASJUCjJTZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJEgoKAmlkGAIgASgJIo4BCjlTZXRDaGlsZEJpbGxpbmdHcm91cEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRI9CghhY2NvdW50cxgCIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50U2VydmljZURpc2NvdW50cyJZCjNHZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkizgEKNEdldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVzcG9uc2USEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEkAKDmNoYXJnaW5nVGFyZ2V0GAMgASgOMiIuYmx1ZWFwaS5hcGkucmlwcGxlLkNoYXJnaW5nVGFyZ2V0QgTiQQECEiwKCGFjY291bnRzGAQgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudEIE4kEBASJICjJHZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJIkEKM0dldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSJQCjpSZWFkQ2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkieQodQnVsa0NyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3QSDgoGdmVuZG9yGAUgASgJEhIKCmNzdkNvbnRlbnQYASABKAwSEQoJZGVsaW1pdGVyGAIgASgJEhEKCWhhc0hlYWRlchgDIAEoCBIOCgZkcnlSdW4YBCABKAgiVQobQnVsa0NyZWF0ZUJpbGxpbmdHcm91cEVycm9yEg0KBWluZGV4GAEgASgFEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg8KB21lc3NhZ2UYAyABKAkiswIKHkJ1bGtDcmVhdGVCaWxsaW5nR3JvdXBNZXRhZGF0YRIOCgZzdGF0dXMYASABKAkSEgoKdG90YWxDb3VudBgCIAEoBRIWCg5wcm9jZXNzZWRDb3VudBgDIAEoBRIUCgxzdWNjZXNzQ291bnQYBCABKAUSFAoMZmFpbHVyZUNvdW50GAUgASgFEj8KBmVycm9ycxgGIAMoCzIvLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrQ3JlYXRlQmlsbGluZ0dyb3VwRXJyb3ISEQoJc3RhcnRUaW1lGAcgASgJEg8KB2VuZFRpbWUYCCABKAkSRAoEcm93cxgJIAMoCzI2LmJsdWVhcGkuYmlsbGluZy52MS5CdWxrQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUm93Ij4KHU5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEg0KBXZhbHVlGAEgASgJEg4KBnNvdXJjZRgCIAEoCSKpDQoZTm9ybWFsaXplZEludm9pY2VTZXR0aW5ncxJDCghjYWxjVHlwZRgBIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJGCgtkaXNwbGF5Q29zdBgCIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJOChNzdXBwb3J0QW1vdW50VGFyZ2V0GAMgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEk8KFHN1cHBvcnRGZWVDYWxjVGFyZ2V0GAQgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkElQKGXN1YnN0aXR1dGlvbkZlZUNhbGNUYXJnZXQYBSABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSSgoPaW52b2ljZVRlbXBsYXRlGAYgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkgKDWN1c3RvbVNlcnZpY2UYByABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSSwoQc2VydmljZURpc2NvdW50cxgIIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJDCghjdXJyZW5jeRgJIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJCCgd0YXhSYXRlGAogASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkcKDGRpc2NvdW50UmF0ZRgLIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJOChNkaXNjb3VudFRhcmdldFVzYWdlGAwgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkwKEWRpc2NvdW50Q2FsY0xvZ2ljGA0gASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkoKD3N1YnN0aXR1dGlvbkZlZRgOIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJLChBzdWJzdGl0dXRpb25SYXRlGA8gASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkoKD3N1YnN0aXR1dGlvbkZpeBgQIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJVChpzdWJzdGl0dXRpb25GZWVUYXJnZXRVc2FnZRgRIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJSChdzdWJzdGl0dXRpb25GZWVDYWxjVHlwZRgSIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJFCgpzdXBwb3J0RmVlGBMgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkYKC3N1cHBvcnRSYXRlGBQgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkUKCnN1cHBvcnRGaXgYFSABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSTwoUc3VwcG9ydEZlZUFkanVzdG1lbnQYFiABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQi4gEKIkJ1bGtCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSb3cSDQoFaW5kZXgYASABKAUSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSDgoGc3RhdHVzGAMgASgJEg4KBmVycm9ycxgEIAMoCRJJChJub3JtYWxpemVkU2V0dGluZ3MYBSABKAsyLS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5ncxITCgtkaXNwb3NpdGlvbhgGIAEoCRIVCg1jc3ZMaW5lTnVtYmVyGAcgASgFInkKHUJ1bGtVcGRhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0Eg4KBnZlbmRvchgFIAEoCRISCgpjc3ZDb250ZW50GAEgASgMEhEKCWRlbGltaXRlchgCIAEoCRIRCgloYXNIZWFkZXIYAyABKAgSDgoGZHJ5UnVuGAQgASgIImUKG0J1bGtVcGRhdGVCaWxsaW5nR3JvdXBFcnJvchINCgVpbmRleBgBIAEoBRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJEg4KBnJlYXNvbhgEIAEoCSKzAgoeQnVsa1VwZGF0ZUJpbGxpbmdHcm91cE1ldGFkYXRhEg4KBnN0YXR1cxgBIAEoCRISCgp0b3RhbENvdW50GAIgASgFEhYKDnByb2Nlc3NlZENvdW50GAMgASgFEhQKDHN1Y2Nlc3NDb3VudBgEIAEoBRIUCgxmYWlsdXJlQ291bnQYBSABKAUSPwoGZXJyb3JzGAYgAygLMi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtVcGRhdGVCaWxsaW5nR3JvdXBFcnJvchIRCglzdGFydFRpbWUYByABKAkSDwoHZW5kVGltZRgIIAEoCRJECgRyb3dzGAkgAygLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSb3ciuQEKE0V4Y2x1ZGVTZXJ2aWNlRW50cnkSDgoGbXNwX2lkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIQCghwYXllcl9pZBgDIAEoCRIPCgdzZXJ2aWNlGAQgASgJEg8KB3Byb2R1Y3QYBSABKAkSFwoPZXhjZXB0X3BheWVyX2lkGAYgAygJEg4KBmFjdGlvbhgHIAEoCRIOCgZzdGF0dXMYCCABKAkSFQoNZXJyb3JfbWVzc2FnZRgJIAEoCSKPAQogQ3JlYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QSDgoGbXNwX2lkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIQCghwYXllcl9pZBgDIAEoCRIPCgdzZXJ2aWNlGAQgASgJEg8KB3Byb2R1Y3QYBSABKAkSFwoPZXhjZXB0X3BheWVyX2lkGAYgAygJIlsKIUNyZWF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZRI2CgVlbnRyeRgBIAEoCzInLmJsdWVhcGkuYmlsbGluZy52MS5FeGNsdWRlU2VydmljZUVudHJ5Io8BCiBVcGRhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVxdWVzdBIOCgZtc3BfaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhAKCHBheWVyX2lkGAMgASgJEg8KB3NlcnZpY2UYBCABKAkSDwoHcHJvZHVjdBgFIAEoCRIXCg9leGNlcHRfcGF5ZXJfaWQYBiADKAkiWwohVXBkYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlc3BvbnNlEjYKBWVudHJ5GAEgASgLMicuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4Y2x1ZGVTZXJ2aWNlRW50cnkidgogRGVsZXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QSDgoGbXNwX2lkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIQCghwYXllcl9pZBgDIAEoCRIPCgdzZXJ2aWNlGAQgASgJEg8KB3Byb2R1Y3QYBSABKAkiWwohRGVsZXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlc3BvbnNlEjYKBWVudHJ5GAEgASgLMicuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4Y2x1ZGVTZXJ2aWNlRW50cnkiPAoaTGlzdEV4Y2x1ZGVTZXJ2aWNlc1JlcXVlc3QSDgoGbXNwX2lkGAEgASgJEg4KBnZlbmRvchgCIAEoCSJXChtMaXN0RXhjbHVkZVNlcnZpY2VzUmVzcG9uc2USOAoHZW50cmllcxgBIAMoCzInLmJsdWVhcGkuYmlsbGluZy52MS5FeGNsdWRlU2VydmljZUVudHJ5IkQKC1NlcnZpY2VJdGVtEgoKAmlkGAEgASgJEgwKBGNvZGUYAiABKAkSDQoFbmFtZXMYAyADKAkSDAoEc2t1cxgEIAMoCSIzChNMaXN0U2VydmljZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIMCgRjb2RlGAIgASgJIkUKFExpc3RTZXJ2aWNlc1Jlc3BvbnNlEi0KBGRhdGEYASADKAsyHy5ibHVlYXBpLmJpbGxpbmcudjEuU2VydmljZUl0ZW0icgoWQnVsa0xpbmtBY2NvdW50UmVxdWVzdBIOCgZ2ZW5kb3IYBSABKAkSEgoKY3N2Q29udGVudBgBIAEoDBIRCglkZWxpbWl0ZXIYAiABKAkSEQoJaGFzSGVhZGVyGAMgASgIEg4KBmRyeVJ1bhgEIAEoCCJhChRCdWxrTGlua0FjY291bnRFcnJvchINCgVpbmRleBgBIAEoBRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIRCglhY2NvdW50SWQYAyABKAkSDwoHbWVzc2FnZRgEIAEoCSLfAQoXQnVsa0xpbmtBY2NvdW50TWV0YWRhdGESDgoGc3RhdHVzGAEgASgJEhIKCnRvdGFsQ291bnQYAiABKAUSFgoOcHJvY2Vzc2VkQ291bnQYAyABKAUSFAoMc3VjY2Vzc0NvdW50GAQgASgFEhQKDGZhaWx1cmVDb3VudBgFIAEoBRI4CgZlcnJvcnMYBiADKAsyKC5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0xpbmtBY2NvdW50RXJyb3ISEQoJc3RhcnRUaW1lGAcgASgJEg8KB2VuZFRpbWUYCCABKAkiPgoaQnVsa1RhZ0JpbGxpbmdHcm91cFJlcXVlc3QSEgoKY3N2Q29udGVudBgBIAEoDBIMCgRtb2RlGAIgASgJIoIBChhCdWxrVGFnQmlsbGluZ0dyb3VwRXJyb3ISDQoFaW5kZXgYASABKAUSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSEgoKY3VzdG9tZXJJZBgDIAEoCRILCgNrZXkYBCABKAkSDQoFdmFsdWUYBSABKAkSDwoHbWVzc2FnZRgGIAEoCSLnAQobQnVsa1RhZ0JpbGxpbmdHcm91cE1ldGFkYXRhEg4KBnN0YXR1cxgBIAEoCRISCgp0b3RhbENvdW50GAIgASgFEhYKDnByb2Nlc3NlZENvdW50GAMgASgFEhQKDHN1Y2Nlc3NDb3VudBgEIAEoBRIUCgxmYWlsdXJlQ291bnQYBSABKAUSPAoGZXJyb3JzGAYgAygLMiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtUYWdCaWxsaW5nR3JvdXBFcnJvchIRCglzdGFydFRpbWUYByABKAkSDwoHZW5kVGltZRgIIAEoCSI3CilHZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCSJ5CipHZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVzcG9uc2USMQoGbGF5b3V0GAEgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQSCgoCaWQYAiABKAkSDAoEbmFtZRgDIAEoCSJKCilTZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCRIRCglsYXlvdXRfaWQYAiABKAkiYwogQ3JlYXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSDAoEbmFtZRgBIAEoCRIxCgZsYXlvdXQYAiABKAsyIS5ibHVlYXBpLmFwaS5yaXBwbGUuSW52b2ljZUxheW91dCI2CiFDcmVhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVzcG9uc2USEQoJbGF5b3V0X2lkGAEgASgJIm8KIFVwZGF0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJEjEKBmxheW91dBgCIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0EgwKBG5hbWUYAyABKAkiIAoeUmVhZEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0Im4KH1JlYWRJbnZvaWNlTGF5b3V0Q29uZmlnUmVzcG9uc2USCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIxCgZsYXlvdXQYAyABKAsyIS5ibHVlYXBpLmFwaS5yaXBwbGUuSW52b2ljZUxheW91dCI6CixEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCSIuCiBEZWxldGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCSI5CitMaXN0SW52b2ljZUxheW91dENvbmZpZ0JpbGxpbmdHcm91cHNSZXF1ZXN0EgoKAmlkGAEgASgJIkgKLExpc3RJbnZvaWNlTGF5b3V0Q29uZmlnQmlsbGluZ0dyb3Vwc1Jlc3BvbnNlEhgKEGJpbGxpbmdncm91cF9pZHMYASADKAkyv8cBCgdCaWxsaW5nEoABChFMaXN0QmlsbGluZ0dyb3VwcxIsLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3Vwc1JlcXVlc3QaIC5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwIhmC0+STAhMSES92MS9iaWxsaW5nZ3JvdXBzMAESsAEKGkxpc3RCaWxsaW5nR3JvdXBzUGFnaW5hdGVkEjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nR3JvdXBzUGFnaW5hdGVkUmVxdWVzdBo2LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZFJlc3BvbnNlIiOC0+STAh0SGy92MS9iaWxsaW5nZ3JvdXBzOnBhZ2luYXRlZBKDAQoSQ3JlYXRlQmlsbGluZ0dyb3VwEi0uYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3QaIC5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwIhyC0+STAhY6ASoiES92MS9iaWxsaW5nZ3JvdXBzEpYBChhDcmVhdGVCaWxsaW5nR3JvdXBNZXJnZWQSMy5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwTWVyZ2VkUmVxdWVzdBogLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAiI4LT5JMCHToBKiIYL3YxL2JpbGxpbmdncm91cHMvbWVyZ2VkEnkKEURlbGV0ZUJpbGxpbkdyb3VwEi0uYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUJpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHYLT5JMCFyoVL3YxL2JpbGxpbmdncm91cC97aWR9EowBChhBZGRBY2NvdW50VG9CaWxsaW5nR3JvdXASMy5ibHVlYXBpLmJpbGxpbmcudjEuQWRkQWNjb3VudFRvQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdOgEqIhgvdjEvYmlsbGluZ2dyb3VwL2FjY291bnQSmQEKD0dldEJpbGxpbmdHcm91cBIqLmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBSZXF1ZXN0GisuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cFJlc3BvbnNlIi2C0+STAicSJS92MS9iaWxsaW5nZ3JvdXBzL3tiaWxsaW5nSW50ZXJuYWxJZH0SkQEKDkdldEFjY2Vzc0dyb3VwEikuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEFjY2Vzc0dyb3VwUmVxdWVzdBoqLmJsdWVhcGkuYmlsbGluZy52MS5HZXRBY2Nlc3NHcm91cFJlc3BvbnNlIiiC0+STAiISIC92MS9hY2Nlc3Nncm91cHMve2FjY2Vzc0dyb3VwSWR9Ep4BChZMaXN0QXdzRGFpbHlSdW5IaXN0b3J5EjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBd3NEYWlseVJ1bkhpc3RvcnlSZXF1ZXN0GiYuYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c0RhaWx5UnVuSGlzdG9yeSIngtPkkwIhOgEqIhwvdjEvYXdzL2RhaWx5cnVuaGlzdG9yeTpyZWFkMAESmgEKE0xpc3RVc2FnZUNvc3RzRHJpZnQSLi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdFVzYWdlQ29zdHNEcmlmdFJlcXVlc3QaIy5ibHVlYXBpLmJpbGxpbmcudjEuVXNhZ2VDb3N0c0RyaWZ0IiyC0+STAiY6ASoiIS92MS97dmVuZG9yfS91c2FnZWNvc3RzZHJpZnQ6cmVhZDABEnwKDUNyZWF0ZUludm9pY2USKC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlSW52b2ljZVJlcXVlc3QaGy5ibHVlYXBpLmFwaS5JbnZvaWNlTWVzc2FnZSIkgtPkkwIeOgEqIhkvdjEvaW52b2ljZS97ZGF0ZX06Y3JlYXRlEpsBChlDcmVhdGVJbnZvaWNlV2l0aFNldHRpbmdzEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLlNhdmVJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0GhsuYmx1ZWFwaS5hcGkuSW52b2ljZU1lc3NhZ2UiMYLT5JMCKzoBKiImL3YxL2ludm9pY2Uve2RhdGV9OmNyZWF0ZSZzYXZlc2V0dGluZ3MSiQEKE1NhdmVJbnZvaWNlU2V0dGluZ3MSLi5ibHVlYXBpLmJpbGxpbmcudjEuU2F2ZUludm9pY2VTZXR0aW5nc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKiIfL3YxL2ludm9pY2Uve2RhdGV9OnNhdmVzZXR0aW5ncxKiAQoTQ29udmVydEludm9pY2VUb1BkZhIuLmJsdWVhcGkuYmlsbGluZy52MS5Db252ZXJ0SW52b2ljZVRvUGRmUmVxdWVzdBovLmJsdWVhcGkuYmlsbGluZy52MS5Db252ZXJ0SW52b2ljZVRvUGRmUmVzcG9uc2UiKoLT5JMCJDoBKiIfL3YxL2ludm9pY2Uve2RhdGV9OmNvbnZlcnR0b3BkZhJ9ChBHZXRJbnZvaWNlU3RhdHVzEisuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEludm9pY2VTdGF0dXNSZXF1ZXN0GhsuYmx1ZWFwaS5hcGkuSW52b2ljZU1lc3NhZ2UiH4LT5JMCGRIXL3YxL2ludm9pY2Uvc3RhdHVzL3tpZH0SiwEKEUxpc3RJbnZvaWNlU3RhdHVzEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlU3RhdHVzUmVxdWVzdBobLmJsdWVhcGkuYXBpLkludm9pY2VNZXNzYWdlIimC0+STAiM6ASoiHi92MS9pbnZvaWNlL3N0YXR1cy97ZGF0ZX06cmVhZDABEm0KCkdldEludm9pY2USJS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0SW52b2ljZVJlcXVlc3QaFC5ibHVlYXBpLmFwaS5JbnZvaWNlIiKC0+STAhw6ASoiFy92MS9pbnZvaWNlL3tkYXRlfTpyZWFkEn0KC0xpc3RJbnZvaWNlEiYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVxdWVzdBonLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVJlc3BvbnNlIhuC0+STAhU6ASoiEC92MS9pbnZvaWNlOnJlYWQwARKIAQoVVXBkYXRlSW52b2ljZVByZXZpZXdzEjAuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUludm9pY2VQcmV2aWV3c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJYLT5JMCHzoBKhoaL3YxL2ludm9pY2Uve2RhdGV9OnByZXZpZXcSlgEKEUV4cG9ydEludm9pY2VGaWxlEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEludm9pY2VGaWxlUmVxdWVzdBotLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRJbnZvaWNlRmlsZVJlc3BvbnNlIiSC0+STAh46ASoiGS92MS9pbnZvaWNlL3tkYXRlfTpleHBvcnQSlgEKE0xpc3RJbnZvaWNlVGVtcGxhdGUSLi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VUZW1wbGF0ZVJlcXVlc3QaLy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlIhyC0+STAhYSFC92MS9pbnZvaWNlL3RlbXBsYXRlMAESrQEKGUdldEludm9pY2VEaXNwbGF5U2V0dGluZ3MSNC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0SW52b2ljZURpc3BsYXlTZXR0aW5nc1JlcXVlc3QaNS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0SW52b2ljZURpc3BsYXlTZXR0aW5nc1Jlc3BvbnNlIiOC0+STAh0SGy92MS9pbnZvaWNlL2Rpc3BsYXlzZXR0aW5ncxKXAQocVXBkYXRlSW52b2ljZURpc3BsYXlTZXR0aW5ncxI3LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlRGlzcGxheVNldHRpbmdzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSImgtPkkwIgOgEqIhsvdjEvaW52b2ljZS9kaXNwbGF5c2V0dGluZ3MSlgEKGVVwZGF0ZUludm9pY2VFeGNoYW5nZVJhdGUSNC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZUV4Y2hhbmdlUmF0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiK4LT5JMCJToBKhogL3YxL2ludm9pY2UvZXhjaGFuZ2VyYXRlL3ttb250aH0SrAEKIVVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VUZW1wbGF0ZRI8LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjGC0+STAis6ASoiJi92MS9iaWxsaW5nZ3JvdXBzL3tpZH0vaW52b2ljZXRlbXBsYXRlErEBChxSZWFkU2VydmljZURpc2NvdW50c1NlcnZpY2VzEjcuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRTZXJ2aWNlRGlzY291bnRzU2VydmljZXNSZXF1ZXN0Gh4uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLlNlcnZpY2UiNoLT5JMCMDoBKiIrL3YxL3NlcnZpY2VkaXNjb3VudHMve3ZlbmRvcn0vc2VydmljZXM6cmVhZDABEqoBCh1DcmVhdGVJbnZvaWNlU2VydmljZURpc2NvdW50cxI4LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaLi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuSW52b2ljZVNlcnZpY2VEaXNjb3VudHMiH4LT5JMCGToBKiIUL3YxL3NlcnZpY2VkaXNjb3VudHMSrwEKHVVwZGF0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzEjguYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBouLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50cyIkgtPkkwIeOgEqGhkvdjEvc2VydmljZWRpc2NvdW50cy97aWR9EpQBCh1EZWxldGVJbnZvaWNlU2VydmljZURpc2NvdW50cxI4LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIYLT5JMCGyoZL3YxL3NlcnZpY2VkaXNjb3VudHMve2lkfRKqAQobTGlzdEludm9pY2VTZXJ2aWNlRGlzY291bnRzEjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaKy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNlcnZpY2VEaXNjb3VudHMiJILT5JMCHjoBKiIZL3YxL3NlcnZpY2VkaXNjb3VudHM6cmVhZDABEqYBChpHZXRJbnZvaWNlU2VydmljZURpc2NvdW50cxI1LmJsdWVhcGkuYmlsbGluZy52MS5HZXRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaLi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuSW52b2ljZVNlcnZpY2VEaXNjb3VudHMiIYLT5JMCGxIZL3YxL3NlcnZpY2VkaXNjb3VudHMve2lkfRKiAQoWRXhwb3J0U2VydmljZURpc2NvdW50cxIxLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBotLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5TZXJ2aWNlRGlzY291bnRzRXhwb3J0IiaC0+STAiA6ASoiGy92MS9zZXJ2aWNlZGlzY291bnRzOmV4cG9ydBLwAQopQ3JlYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSRC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GkUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2UiNoLT5JMCMDoBKiIrL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2JpbGxpbmdncm91cBLwAQopVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSRC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GkUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2UiNoLT5JMCMDoBKhorL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2JpbGxpbmdncm91cBK+AQopRGVsZXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSRC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi0qKy92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9iaWxsaW5nZ3JvdXAS0QEKIkxpc3RBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSPS5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzIjaC0+STAjA6ASoiKy92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9hY2NvdW50OnJlYWQwARLcAQokQ3JlYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaQC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2UiMYLT5JMCKzoBKiImL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2FjY291bnQS3AEKJFVwZGF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxI/LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GkAuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlIjGC0+STAis6ASoaJi92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9hY2NvdW50ErkBCiRSZW1vdmVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSPy5ibHVlYXBpLmJpbGxpbmcudjEuUmVtb3ZlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI4gtPkkwIyOgEqGi0vdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYWNjb3VudDpyZW1vdmUSrwEKJERlbGV0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxI/LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii6C0+STAigqJi92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9hY2NvdW50Es0BCiRFeHBvcnRBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSPy5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0QWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBo0LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5BY2NvdW50U2VydmljZURpc2NvdW50c0V4cG9ydCIugtPkkwIoOgEqIiMvdjEvc2VydmljZWRpc2NvdW50cy9hY2NvdW50OmV4cG9ydBLaAQopRXhwb3J0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSRC5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GjIuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkdyb3VwU2VydmljZURpc2NvdW50c0V4cG9ydCIzgtPkkwItOgEqIigvdjEvc2VydmljZWRpc2NvdW50cy9iaWxsaW5nZ3JvdXA6ZXhwb3J0EuQBCiZHZXRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJBLmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaQi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZSIzgtPkkwItEisvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYmlsbGluZ2dyb3VwEnMKDkNyZWF0ZVJlc2VsbGVyEikuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZVJlc2VsbGVyUmVxdWVzdBocLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlciIYgtPkkwISOgEqIg0vdjEvcmVzZWxsZXJzEnAKDUxpc3RSZXNlbGxlcnMSKC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdFJlc2VsbGVyc1JlcXVlc3QaHC5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXIiFYLT5JMCDxINL3YxL3Jlc2VsbGVyczABEm8KC0dldFJlc2VsbGVyEiYuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldFJlc2VsbGVyUmVxdWVzdBocLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlciIagtPkkwIUEhIvdjEvcmVzZWxsZXJzL3tpZH0SeAoOVXBkYXRlUmVzZWxsZXISKS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlUmVzZWxsZXJSZXF1ZXN0GhwuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyIh2C0+STAhc6ASoaEi92MS9yZXNlbGxlcnMve2lkfRJvCg5EZWxldGVSZXNlbGxlchIpLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVSZXNlbGxlclJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCoSL3YxL3Jlc2VsbGVycy97aWR9EoYBChFHZXRCaWxsaW5nU2V0dGluZxIsLmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nU2V0dGluZ1JlcXVlc3QaLS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ1NldHRpbmdSZXNwb25zZSIUgtPkkwIOEgwvdjEvc2V0dGluZ3MSmwEKEUxpc3RFeGNoYW5nZVJhdGVzEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBotLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlIimC0+STAiMSIS92MS97dmVuZG9yfS9leGNoYW5nZXJhdGUve21vbnRofRKWAQoVU2V0R2xvYmFsRXhjaGFuZ2VSYXRlEjAuYmx1ZWFwaS5iaWxsaW5nLnYxLlNldEdsb2JhbEV4Y2hhbmdlUmF0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLToBKiIoL3YxL2V4Y2hhbmdlcmF0ZS9nbG9iYWwve3ZlbmRvcn0ve21vbnRofRKKAQoUU2V0UGF5ZXJFeGNoYW5nZVJhdGUSLy5ibHVlYXBpLmJpbGxpbmcudjEuU2V0UGF5ZXJFeGNoYW5nZVJhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiM6ASoiHi92MS9leGNoYW5nZXJhdGUvcGF5ZXIve21vbnRofRKfAQobU2V0QmlsbGluZ0dyb3VwRXhjaGFuZ2VSYXRlEjYuYmx1ZWFwaS5iaWxsaW5nLnYxLlNldEJpbGxpbmdHcm91cEV4Y2hhbmdlUmF0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKjoBKiIlL3YxL2V4Y2hhbmdlcmF0ZS9iaWxsaW5nZ3JvdXAve21vbnRofRJ8ChBMaXN0QWNjZXNzR3JvdXBzEisuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBY2Nlc3NHcm91cHNSZXF1ZXN0Gh8uYmx1ZWFwaS5hcGkucmlwcGxlLkFjY2Vzc0dyb3VwIhiC0+STAhISEC92MS9hY2Nlc3Nncm91cHMwARJ/ChFDcmVhdGVBY2Nlc3NHcm91cBIsLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBY2Nlc3NHcm91cFJlcXVlc3QaHy5ibHVlYXBpLmFwaS5yaXBwbGUuQWNjZXNzR3JvdXAiG4LT5JMCFToBKiIQL3YxL2FjY2Vzc2dyb3VwcxKEAQoRVXBkYXRlQWNjZXNzR3JvdXASLC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQWNjZXNzR3JvdXBSZXF1ZXN0Gh8uYmx1ZWFwaS5hcGkucmlwcGxlLkFjY2Vzc0dyb3VwIiCC0+STAho6ASoaFS92MS9hY2Nlc3Nncm91cHMve2lkfRJ4ChFEZWxldGVBY2Nlc3NHcm91cBIsLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVBY2Nlc3NHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHYLT5JMCFyoVL3YxL2FjY2Vzc2dyb3Vwcy97aWR9Ep8BChRMaXN0QWJjQmlsbGluZ0dyb3VwcxIvLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QWJjQmlsbGluZ0dyb3Vwc1JlcXVlc3QaIy5ibHVlYXBpLmJpbGxpbmcudjEuQWJjQmlsbGluZ0dyb3VwIi+C0+STAikSJy92MS9iaWxsaW5nZ3JvdXBzL2JpbGxpbmdjb25kdWN0b3Ive2lkfTABErYBChtMaXN0QWJjQmlsbGluZ0dyb3VwQWNjb3VudHMSNi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEFiY0JpbGxpbmdHcm91cEFjY291bnRzUmVxdWVzdBoeLmJsdWVhcGkuYmlsbGluZy52MS5BYmNBY2NvdW50Ij2C0+STAjcSNS92MS9iaWxsaW5nZ3JvdXBzL2JpbGxpbmdjb25kdWN0b3Ive3BheWVySWR9L2FjY291bnRzMAESnAEKFlJlYWRJbnZvaWNlQWRqdXN0bWVudHMSMS5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZEludm9pY2VBZGp1c3RtZW50c1JlcXVlc3QaHC5ibHVlYXBpLmFwaS53YXZlLkFkanVzdG1lbnQiL4LT5JMCKToBKiIkL3YxL3t2ZW5kb3J9L2ludm9pY2VhZGp1c3RtZW50czpyZWFkMAESowEKFVJlYWRBZGp1c3RtZW50RW50cmllcxIwLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkQWRqdXN0bWVudEVudHJpZXNSZXF1ZXN0GiYuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkFkanVzdG1lbnRFbnRyeSIugtPkkwIoOgEqIiMvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXM6cmVhZDABEpgBChJHZXRBZGp1c3RtZW50RW50cnkSLS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBomLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5BZGp1c3RtZW50RW50cnkiK4LT5JMCJRIjL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzL3tpZH0SkAEKFEFwcGx5QWRqdXN0bWVudEVudHJ5Ei8uYmx1ZWFwaS5iaWxsaW5nLnYxLkFwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIvgtPkkwIpOgEqIiQvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXM6YXBwbHkSlgEKFlJlc3RvcmVBZGp1c3RtZW50RW50cnkSMS5ibHVlYXBpLmJpbGxpbmcudjEuUmVzdG9yZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMYLT5JMCKzoBKiImL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzOnJlc3RvcmUSlQEKFFNwbGl0QWRqdXN0bWVudEVudHJ5Ei8uYmx1ZWFwaS5iaWxsaW5nLnYxLlNwbGl0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI0gtPkkwIuOgEqIikvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXMve2lkfS9zcGxpdBKeAQoXQWxsb2NhdGVBZGp1c3RtZW50RW50cnkSMi5ibHVlYXBpLmJpbGxpbmcudjEuQWxsb2NhdGVBZGp1c3RtZW50RW50cnlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjeC0+STAjE6ASoiLC92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllcy97aWR9L2FsbG9jYXRlEqsBChtSZXN0b3JlU3BsaXRBZGp1c3RtZW50RW50cnkSNi5ibHVlYXBpLmJpbGxpbmcudjEuUmVzdG9yZVNwbGl0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2OgEqIjEvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXMve2lkfS9zcGxpdDpyZXN0b3JlErQBCh5SZXN0b3JlQWxsb2NhdGVBZGp1c3RtZW50RW50cnkSOS5ibHVlYXBpLmJpbGxpbmcudjEuUmVzdG9yZUFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI/gtPkkwI5OgEqIjQvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXMve2lkfS9hbGxvY2F0ZTpyZXN0b3JlEqABCg9DcmVhdGVDdXN0b21GZWUSKi5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tRmVlUmVxdWVzdBorLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVDdXN0b21GZWVSZXNwb25zZSI0gtPkkwIuOgEqIikvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXMvY3VzdG9tZmVlcxKtAQoYTGlzdEFkanVzdG1lbnRFbnRyeUl0ZW1zEjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBZGp1c3RtZW50RW50cnlJdGVtc1JlcXVlc3QaJy5ibHVlYXBpLmJpbGxpbmcudjEuQWRqdXN0bWVudEVudHJ5SXRlbSIxgtPkkwIrOgEqIiYvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJ5aXRlbXM6cmVhZDABEpcBChRMaXN0QWNjb3VudFJlc291cmNlcxIvLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QWNjb3VudFJlc291cmNlc1JlcXVlc3QaIy5ibHVlYXBpLmJpbGxpbmcudjEuUmVzb3VyY2VBY2NvdW50IieC0+STAiESHy92MS9yZXNvdXJjZXMvYWNjb3VudHMve3ZlbmRvcn0wARKLAQoTR2V0QWRqdXN0bWVudENvbmZpZxIuLmJsdWVhcGkuYmlsbGluZy52MS5HZXRBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBodLmJsdWVhcGkuYXBpLkFkanVzdG1lbnRDb25maWciJYLT5JMCHxIdL3YxL2FkanVzdG1lbnRjb25maWcve3ZlbmRvcn0SlAEKFkNyZWF0ZUFkanVzdG1lbnRDb25maWcSMS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QaHS5ibHVlYXBpLmFwaS5BZGp1c3RtZW50Q29uZmlnIiiC0+STAiI6ASoiHS92MS9hZGp1c3RtZW50Y29uZmlnL3t2ZW5kb3J9EpQBChZVcGRhdGVBZGp1c3RtZW50Q29uZmlnEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFkanVzdG1lbnRDb25maWdSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkuQWRqdXN0bWVudENvbmZpZyIogtPkkwIiOgEqGh0vdjEvYWRqdXN0bWVudGNvbmZpZy97dmVuZG9yfRKKAQoWRGVsZXRlQWRqdXN0bWVudENvbmZpZxIxLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIlgtPkkwIfKh0vdjEvYWRqdXN0bWVudGNvbmZpZy97dmVuZG9yfRKVAQoSUmVhZFVudGFnZ2VkR3JvdXBzEi0uYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRVbnRhZ2dlZEdyb3Vwc1JlcXVlc3QaIS5ibHVlYXBpLmFwaS5yaXBwbGUuVW50YWdnZWRHcm91cCIrgtPkkwIlOgEqIiAvdjEve3ZlbmRvcn0vdW50YWdnZWRncm91cHM6cmVhZDABErgBCh1SZWFkQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlcxI4LmJsdWVhcGkuYmlsbGluZy52MS5SZWFkQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlc1JlcXVlc3QaLC5ibHVlYXBpLmFwaS5yaXBwbGUuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlIi2C0+STAic6ASoiIi92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzOnJlYWQwARKvAQobR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QaLC5ibHVlYXBpLmFwaS5yaXBwbGUuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlIiqC0+STAiQSIi92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzL3tpZH0SswEKHkNyZWF0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRI5LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0GiwuYmx1ZWFwaS5hcGkucmlwcGxlLkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZSIogtPkkwIiOgEqIh0vdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcxK4AQoeVXBkYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEjkuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QaLC5ibHVlYXBpLmFwaS5yaXBwbGUuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlIi2C0+STAic6ASoaIi92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzL3tpZH0SnwEKHkRlbGV0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRI5LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQqIi92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzL3tpZH0S+wEKJ0dldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cBJCLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0GkMuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlc3BvbnNlIkWC0+STAj8SPS92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzL2JpbGxpbmdncm91cC97Z3JvdXBJZH0ve3ZlbmRvcn0wARLPAQonU2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwEkIuYmx1ZWFwaS5iaWxsaW5nLnYxLlNldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiSILT5JMCQjoBKiI9L3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMvYmlsbGluZ2dyb3VwL3tncm91cElkfS97dmVuZG9yfRLSAQoqRGVsZXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwEkUuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiRYLT5JMCPyo9L3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMvYmlsbGluZ2dyb3VwL3tncm91cElkfS97dmVuZG9yfRJeCgdHZXRUYWdzEiIuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldFRhZ3NSZXF1ZXN0GhsuYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ0RhdGEiEILT5JMCChIIL3YxL3RhZ3MwARJ9Cg1MaXN0VGFnVmFsdWVzEiguYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RUYWdWYWx1ZXNSZXF1ZXN0GikuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RUYWdWYWx1ZXNSZXNwb25zZSIXgtPkkwIREg8vdjEvdGFnczp2YWx1ZXMSfgoRQ3JlYXRlQ3VzdG9tRmllbGQSLC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tRmllbGRSZXF1ZXN0Gh8uYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZpZWxkIhqC0+STAhQ6ASoiDy92MS9jdXN0b21maWVsZBKBAQoPTGlzdEN1c3RvbUZpZWxkEiouYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RDdXN0b21GaWVsZFJlcXVlc3QaHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiH4LT5JMCGToBKiIUL3YxL2N1c3RvbWZpZWxkOnJlYWQwARKUAQoaQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQSNS5ibHVlYXBpLmJpbGxpbmcudjEuQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IieC0+STAiE6ASoiHC92MS9iaWxsaW5nZ3JvdXAvY3VzdG9tZmllbGQSvgEKG0xpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZBI2LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0GjcuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlc3BvbnNlIiyC0+STAiY6ASoiIS92MS9iaWxsaW5nZ3JvdXAvY3VzdG9tZmllbGQ6cmVhZDABEoMBChVBZGRUYWdzVG9CaWxsaW5nR3JvdXASMC5ibHVlYXBpLmJpbGxpbmcudjEuQWRkVGFnc1RvQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIggtPkkwIaOgEqIhUvdjEvYmlsbGluZ2dyb3VwL3RhZ3MSrwEKH1VwZGF0ZU5vblRhZ0dyb3VwVG9CaWxsaW5nR3JvdXASOi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlTm9uVGFnR3JvdXBUb0JpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiOILT5JMCMjoBKiItL3YxL2JpbGxpbmdncm91cC97aWR9L3t2ZW5kb3J9L3VudGFnZ2VkZ3JvdXBzErEBCh1EZWxldGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZBI4LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiPoLT5JMCOCo2L3YxL2JpbGxpbmdncm91cC9jdXN0b21maWVsZC97Z3JvdXBJZH0ve2N1c3RvbUZpZWxkSWR9EoMBChFVcGRhdGVDdXN0b21GaWVsZBIsLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDdXN0b21GaWVsZFJlcXVlc3QaHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiH4LT5JMCGToBKhoUL3YxL2N1c3RvbWZpZWxkL3tpZH0SdwoRRGVsZXRlQ3VzdG9tRmllbGQSLC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQ3VzdG9tRmllbGRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYqFC92MS9jdXN0b21maWVsZC97aWR9EnIKEENyZWF0ZUZyZWVGb3JtYXQSKy5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlRnJlZUZvcm1hdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGYLT5JMCEzoBKiIOL3YxL2ZyZWVmb3JtYXQSeQoQRGVsZXRlRnJlZUZvcm1hdBIrLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVGcmVlRm9ybWF0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIggtPkkwIaKhgvdjEvZnJlZWZvcm1hdC97Z3JvdXBJZH0SiAEKDUdldEZyZWVGb3JtYXQSKC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0RnJlZUZvcm1hdFJlcXVlc3QaKS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0RnJlZUZvcm1hdFJlc3BvbnNlIiCC0+STAhoSGC92MS9mcmVlZm9ybWF0L3tncm91cElkfTABEr0BCh9HZXRNb250aGx5TWlzY0ZlZUltcG9ydFRlbXBsYXRlEjouYmx1ZWFwaS5iaWxsaW5nLnYxLkdldE1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGVSZXF1ZXN0GjAuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGUiLILT5JMCJhIkL3YxL21vbnRobHktbWlzYy1mZWVzOmltcG9ydFRlbXBsYXRlEq4BChlCdWxrSW1wb3J0TW9udGhseU1pc2NGZWVzEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtJbXBvcnRNb250aGx5TWlzY0ZlZXNSZXF1ZXN0Gi4uYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlSW1wb3J0UmVzdWx0IiuC0+STAiU6ASoiIC92MS9tb250aGx5LW1pc2MtZmVlczpidWxrSW1wb3J0EpUBChNMaXN0TW9udGhseU1pc2NGZWVzEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RNb250aGx5TWlzY0ZlZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RNb250aGx5TWlzY0ZlZXNSZXNwb25zZSIdgtPkkwIXEhUvdjEvbW9udGhseS1taXNjLWZlZXMShwEKFERlbGV0ZU1vbnRobHlNaXNjRmVlEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZU1vbnRobHlNaXNjRmVlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSImgtPkkwIgKh4vdjEvbW9udGhseS1taXNjLWZlZXMve3Jvd19pZH0SogEKFEdldFRhZ3NBZGRpbmdTZXR0aW5nEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldFRhZ3NBZGRpbmdTZXR0aW5nUmVxdWVzdBolLmJsdWVhcGkuYmlsbGluZy52MS5UYWdzQWRkaW5nU2V0dGluZyIwgtPkkwIqEigvdjEve3ZlbmRvcn0vdGFnc2FkZGluZ3NldHRpbmcve2dyb3VwSWR9MAESmgEKF1VwZGF0ZVRhZ3NBZGRpbmdTZXR0aW5nEjIuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZVRhZ3NBZGRpbmdTZXR0aW5nUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItOgEqGigvdjEve3ZlbmRvcn0vdGFnc2FkZGluZ3NldHRpbmcve2dyb3VwSWR9EqEBChVFeHBvcnRCaWxsaW5nR3JvdXBDc3YSMC5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0QmlsbGluZ0dyb3VwQ3N2UmVxdWVzdBoxLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRCaWxsaW5nR3JvdXBDc3ZSZXNwb25zZSIjgtPkkwIdEhsvdjEvZXhwb3J0Y3N2L2JpbGxpbmctZ3JvdXASqQEKF0V4cG9ydEludm9pY2VTZXR0aW5nQ3N2EjIuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEludm9pY2VTZXR0aW5nQ3N2UmVxdWVzdBozLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlc3BvbnNlIiWC0+STAh8SHS92MS9leHBvcnRjc3YvaW52b2ljZS1zZXR0aW5nEqcBCiJVcGRhdGVCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEj0uYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQ6ASoaHy92MS9iaWxsaW5nZ3JvdXAve2lkfTpiYXNpY0luZm8SogEKHlVwZGF0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkcxI5LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAic6ASoaIi92MS9iaWxsaW5nZ3JvdXAve2lkfTpjdXN0b21GaWVsZHMSnAEKHFVwZGF0ZUJpbGxpbmdHcm91cEZyZWVGb3JtYXQSNy5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwRnJlZUZvcm1hdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiK4LT5JMCJToBKhogL3YxL2JpbGxpbmdncm91cC97aWR9OmZyZWVGb3JtYXQSpQEKIVVwZGF0ZUJpbGxpbmdHcm91cExpbmtlZFJlc291cmNlcxI8LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBMaW5rZWRSZXNvdXJjZXNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQ6ASoaHy92MS9iaWxsaW5nZ3JvdXAve2lkfTpyZXNvdXJjZXMSqwEKIVVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5ncxI8LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjCC0+STAio6ASoaJS92MS9iaWxsaW5nZ3JvdXAve2lkfTppbnZvaWNlU2V0dGluZ3MSqwEKIVVwZGF0ZUJpbGxpbmdHcm91cFJlc2VsbGVyQ2hhcmdlcxI8LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBSZXNlbGxlckNoYXJnZXNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjCC0+STAio6ASoaJS92MS9iaWxsaW5nZ3JvdXAve2lkfTpyZXNlbGxlckNoYXJnZXMSsQEKI1VwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzEj4uYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIygtPkkwIsOgEqGicvdjEvYmlsbGluZ2dyb3VwL3tpZH06YWRkaXRpb25hbENoYXJnZXMS1AEKIUdldEJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhbhI8LmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXF1ZXN0Gj0uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlc3BvbnNlIjKC0+STAiwSKi92MS9iaWxsaW5nZ3JvdXAve2lkfS97dmVuZG9yfS9zdXBwb3J0cGxhbhK2AQokVXBkYXRlQmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiNYLT5JMCLzoBKhoqL3YxL2JpbGxpbmdncm91cC97aWR9L3t2ZW5kb3J9L3N1cHBvcnRwbGFuEoEBChJDcmVhdGVBbm5vdW5jZW1lbnQSLS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQW5ub3VuY2VtZW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeOgEqIhkvdjEvcmVzZWxsZXIvYW5ub3VuY2VtZW50EpIBChJVcGRhdGVBbm5vdW5jZW1lbnQSLS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQW5ub3VuY2VtZW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI1gtPkkwIvOgEqGiovdjEvcmVzZWxsZXIvYW5ub3VuY2VtZW50L3thbm5vdW5jZW1lbnRJZH0SnAEKGVVwZGF0ZUFubm91bmNlbWVudHNTdGF0dXMSNC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQW5ub3VuY2VtZW50c1N0YXR1c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMYLT5JMCKzoBKjImL3YxL3Jlc2VsbGVyL2Fubm91bmNlbWVudHMvYnVsay9zdGF0dXMSoAEKFlVwZGF0ZUFubm91bmNlbWVudERhdGUSMS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQW5ub3VuY2VtZW50RGF0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNToBKjIwL3YxL3Jlc2VsbGVyL2Fubm91bmNlbWVudHMve2Fubm91bmNlbWVudElkfS9kYXRlEo8BChJEZWxldGVBbm5vdW5jZW1lbnQSLS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQW5ub3VuY2VtZW50UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIygtPkkwIsKiovdjEvcmVzZWxsZXIvYW5ub3VuY2VtZW50L3thbm5vdW5jZW1lbnRJZH0SoAEKEEdldEFubm91bmNlbWVudHMSKy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QW5ub3VuY2VtZW50c1JlcXVlc3QaIC5ibHVlYXBpLmJpbGxpbmcudjEuQW5ub3VuY2VtZW50IjuC0+STAjUSMy9iaWxsaW5nL3YxL3Jlc2VsbGVyL2Fubm91bmNlbWVudHMve2Fubm91bmNlbWVudElkfTABEs4BChxHZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzEjcuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEFubm91bmNlbWVudHNSZXF1ZXN0GjguYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEFubm91bmNlbWVudHNSZXNwb25zZSI5gtPkkwIzEjEvdjEvYmlsbGluZ2dyb3VwL3Jlc2VsbGVyL2Fubm91bmNlbWVudHMve2dyb3VwSWR9MAESZgoKR2V0Q3JlZGl0cxIlLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDcmVkaXRzUmVxdWVzdBoaLmJsdWVhcGkuYmlsbGluZy52MS5DcmVkaXQiE4LT5JMCDRILL3YxL2NyZWRpdHMwARJ2Cg5HZXRDc3ZTZXR0aW5ncxIpLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDc3ZTZXR0aW5nc1JlcXVlc3QaHi5ibHVlYXBpLmJpbGxpbmcudjEuQ3N2U2V0dGluZyIXgtPkkwIREg8vdjEvY3N2c2V0dGluZ3MwARKpAQoXQ3JlYXRlQ2hpbGRCaWxsaW5nR3JvdXASMi5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0GjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2UiJYLT5JMCHzoBKiIaL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4SqgEKFEdldENoaWxkQmlsbGluZ0dyb3VwEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBowLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIi+C0+STAikSJy92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfRKgAQoWUmVhZENoaWxkQmlsbGluZ0dyb3VwcxIxLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkQ2hpbGRCaWxsaW5nR3JvdXBzUmVxdWVzdBolLmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cCIqgtPkkwIkOgEqIh8vdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbjpyZWFkMAEStgEKF1VwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwEjIuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBozLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIjKC0+STAiw6ASoaJy92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfRKzAQoXRGVsZXRlQ2hpbGRCaWxsaW5nR3JvdXASMi5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0GjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUNoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2UiL4LT5JMCKSonL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9EvMBCiZVcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5ncxJBLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QaQi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSZXNwb25zZSJCgtPkkwI8OgEqGjcvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vaW52b2ljZVNldHRpbmdzEtIBCitTZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkYuYmx1ZWFwaS5iaWxsaW5nLnYxLlNldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkOC0+STAj06ASoiOC92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9zZXJ2aWNlRGlzY291bnRzEu0BCjJTZXRDaGlsZEJpbGxpbmdHcm91cEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxJNLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDaGlsZEJpbGxpbmdHcm91cEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiUILT5JMCSjoBKiJFL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L3NlcnZpY2VEaXNjb3VudHMvYWNjb3VudHM6c2V0EuUBCixTZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRJHLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiVILT5JMCTjoBKiJJL3YxL3t2ZW5kb3J9L2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L2N1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRKWAgosR2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2USRy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0GkguYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVzcG9uc2UiUYLT5JMCSxJJL3YxL3t2ZW5kb3J9L2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L2N1c3RvbWl6ZWRCaWxsaW5nU2VydmljZTABEoACCitHZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkYuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GkcuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZSJAgtPkkwI6EjgvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vc2VydmljZURpc2NvdW50cxKLAgozUmVhZENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEk4uYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRDaGlsZEJpbGxpbmdHcm91cEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzIk6C0+STAkgSRi92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9zZXJ2aWNlRGlzY291bnRzL2FjY291bnRzOnJlYWQwARKHAQoWQnVsa0NyZWF0ZUJpbGxpbmdHcm91cBIxLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iJ4LT5JMCIToBKiIcL3YxL2JpbGxpbmdncm91cHM6YnVsa0NyZWF0ZRKHAQoWQnVsa1VwZGF0ZUJpbGxpbmdHcm91cBIxLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrVXBkYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iJ4LT5JMCIToBKiIcL3YxL2JpbGxpbmdncm91cHM6YnVsa1VwZGF0ZRK/AQoZQ3JlYXRlRXhjbHVkZVNlcnZpY2VFbnRyeRI0LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVxdWVzdBo1LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2UiNYLT5JMCLzoBKiIqL3YxL2JpbGxpbmdncm91cHMvZXhjbHVkZS1zZXJ2aWNlLXNldHRpbmdzEr8BChlVcGRhdGVFeGNsdWRlU2VydmljZUVudHJ5EjQuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0GjUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZSI1gtPkkwIvOgEqGiovdjEvYmlsbGluZ2dyb3Vwcy9leGNsdWRlLXNlcnZpY2Utc2V0dGluZ3MSvAEKGURlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnkSNC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QaNS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlc3BvbnNlIjKC0+STAiwqKi92MS9iaWxsaW5nZ3JvdXBzL2V4Y2x1ZGUtc2VydmljZS1zZXR0aW5ncxKqAQoTTGlzdEV4Y2x1ZGVTZXJ2aWNlcxIuLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0RXhjbHVkZVNlcnZpY2VzUmVxdWVzdBovLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0RXhjbHVkZVNlcnZpY2VzUmVzcG9uc2UiMoLT5JMCLBIqL3YxL2JpbGxpbmdncm91cHMvZXhjbHVkZS1zZXJ2aWNlLXNldHRpbmdzEoABCgxMaXN0U2VydmljZXMSJy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdFNlcnZpY2VzUmVxdWVzdBooLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0U2VydmljZXNSZXNwb25zZSIdgtPkkwIXEhUvdjEve3ZlbmRvcn0vc2VydmljZXMSfgoPQnVsa0xpbmtBY2NvdW50EiouYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtMaW5rQWNjb3VudFJlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIiyC0+STAiY6ASoiIS92MS9iaWxsaW5nZ3JvdXBzOmJ1bGtMaW5rQWNjb3VudBJ+ChNCdWxrVGFnQmlsbGluZ0dyb3VwEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtUYWdCaWxsaW5nR3JvdXBSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIkgtPkkwIeOgEqIhkvdjEvYmlsbGluZ2dyb3VwczpidWxrVGFnEtcBCiJHZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnEj0uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0Gj4uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXNwb25zZSIygtPkkwIsEiovdjEvYmlsbGluZ2dyb3Vwcy97aWR9L2ludm9pY2VsYXlvdXRjb25maWcSsgEKIlNldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWcSPS5ibHVlYXBpLmJpbGxpbmcudjEuU2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiNYLT5JMCLzoBKiIqL3YxL2JpbGxpbmdncm91cHMve2lkfS9pbnZvaWNlbGF5b3V0Y29uZmlnEqwBChlDcmVhdGVJbnZvaWNlTGF5b3V0Q29uZmlnEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0GjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUludm9pY2VMYXlvdXRDb25maWdSZXNwb25zZSIigtPkkwIcOgEqIhcvdjEvaW52b2ljZWxheW91dGNvbmZpZxKSAQoZVXBkYXRlSW52b2ljZUxheW91dENvbmZpZxI0LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIngtPkkwIhOgEqGhwvdjEvaW52b2ljZWxheW91dGNvbmZpZy97aWR9Eq0BChdSZWFkSW52b2ljZUxheW91dENvbmZpZxIyLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaMy5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZEludm9pY2VMYXlvdXRDb25maWdSZXNwb25zZSIngtPkkwIhOgEqIhwvdjEvaW52b2ljZWxheW91dGNvbmZpZzpyZWFkMAEStQEKJURlbGV0ZUJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWcSQC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMoLT5JMCLCoqL3YxL2JpbGxpbmdncm91cHMve2lkfS9pbnZvaWNlbGF5b3V0Y29uZmlnEo8BChlEZWxldGVJbnZvaWNlTGF5b3V0Q29uZmlnEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4qHC92MS9pbnZvaWNlbGF5b3V0Y29uZmlnL3tpZH0S3QEKJExpc3RJbnZvaWNlTGF5b3V0Q29uZmlnQmlsbGluZ0dyb3VwcxI/LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZUxheW91dENvbmZpZ0JpbGxpbmdHcm91cHNSZXF1ZXN0GkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlTGF5b3V0Q29uZmlnQmlsbGluZ0dyb3Vwc1Jlc3BvbnNlIjKC0+STAiwSKi92MS9pbnZvaWNlbGF5b3V0Y29uZmlnL3tpZH0vYmlsbGluZ2dyb3VwcxqdAZJBmQESRihCRVRBKSBCaWxsaW5nIEFQSS4gQmFzZSBVUkw6IGh0dHBzOi8vYXBpLmFscGhhdXMuY2xvdWQvbS9ibHVlL2JpbGxpbmcaTwoSU2VydmljZSBkZWZpbml0aW9uEjlodHRwczovL2dpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS90cmVlL21haW4vYmlsbGluZy9CUQoZY2xvdWQuYWxwaGF1cy5hcGkuYmlsbGluZ0IMQmlsbGluZ1Byb3RvWiZnaXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvYmlsbGluZ2IGcHJvdG8z", [file_api_account, file_api_invoice, file_api_costtag, file_api_ripple_accessgroup, file_api_ripple_billinggroup, file_api_ripple_reseller, file_api_ripple_yearmonth, file_api_ripple_rounding, file_api_ripple_invoicelayout, file_api_ripple_duedate, file_api_ripple_exchangerate, file_api_ripple_untaggedgroup, file_api_ripple_customizedbillingservice, file_api_ripple_v1_invoiceservicediscounts, file_api_ripple_v1_accountsupportplan, file_api_ripple_v1_adjustmententry, file_api_adjustment, file_api_wave_adjustment, file_protos_operation, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_empty, file_protoc_gen_openapiv2_options_annotations, file_google_protobuf_field_mask]);
56
+ fileDesc("ChhiaWxsaW5nL3YxL2JpbGxpbmcucHJvdG8SEmJsdWVhcGkuYmlsbGluZy52MSKgBAoMQmlsbGluZ0dyb3VwEhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEwoLY29tcGFueU5hbWUYByABKAkSDAoEdHlwZRgMIAEoCRIQCghoYXNDaGlsZBgNIAEoCBI+ChBiaWxsaW5nR3JvdXBJbmZvGAogASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8SOgoOYWNjb3VudE9wdGlvbnMYCCABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnMSJgoIYWNjb3VudHMYBCADKAsyFC5ibHVlYXBpLmFwaS5BY2NvdW50EiIKBHRhZ3MYBiADKAsyFC5ibHVlYXBpLmFwaS5Db3N0VGFnEkgKD2ludm9pY2VTZXR0aW5ncxgFIAEoCzIvLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSSAoPYWRkaXRpb25hbEl0ZW1zGAsgASgLMi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cEFkZGl0aW9uYWxJdGVtcxIyCgphd3NPcHRpb25zGAkgASgLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c09wdGlvbnMioAEKG0JpbGxpbmdHcm91cEFkZGl0aW9uYWxJdGVtcxIpCgNhd3MYASADKAsyHC5ibHVlYXBpLmFwaS5BZGRpdGlvbmFsSXRlbXMSKwoFYXp1cmUYAiADKAsyHC5ibHVlYXBpLmFwaS5BZGRpdGlvbmFsSXRlbXMSKQoDZ2NwGAMgAygLMhwuYmx1ZWFwaS5hcGkuQWRkaXRpb25hbEl0ZW1zIu4BChtCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSQwoDYXdzGAEgASgLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cFZlbmRvcmVkSW52b2ljZVNldHRpbmcSRQoFYXp1cmUYAiABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZxJDCgNnY3AYAyABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZyLxAwoiQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZxIQCghjYWxjVHlwZRgBIAEoCRIUCgxkaXNjb3VudFJhdGUYAiABKAESFwoPc3Vic3RpdHV0aW9uRmVlGAMgASgJEhcKD3N1YnN0aXR1dGlvbkZpeBgEIAEoARIYChBzdWJzdGl0dXRpb25SYXRlGAUgASgBEhIKCnN1cHBvcnRGZWUYBiABKAkSEwoLc3VwcG9ydFJhdGUYByABKAESEgoKc3VwcG9ydEZpeBgIIAEoARIPCgd0YXhSYXRlGAkgASgBEhAKCGN1cnJlbmN5GAogASgJEhsKE2Rpc2NvdW50VGFyZ2V0VXNhZ2UYCyABKAkSIgoac3Vic3RpdHV0aW9uRmVlVGFyZ2V0VXNhZ2UYDCABKAkSGQoRZGlzY291bnRDYWxjTG9naWMYDSABKAkSIQoZc3Vic3RpdHV0aW9uRmVlQ2FsY1RhcmdldBgOIAEoCRIfChdzdWJzdGl0dXRpb25GZWVDYWxjVHlwZRgPIAEoCRIbChNzdXBwb3J0QW1vdW50VGFyZ2V0GBAgASgJEhwKFHN1cHBvcnRGZWVDYWxjVGFyZ2V0GBEgASgJEhwKFHN1cHBvcnRGZWVBZGp1c3RtZW50GBIgASgBIpIBChhMaXN0QmlsbGluZ0dyb3Vwc1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSDwoHdmVuZG9ycxgCIAEoCRIQCghjYWxjVHlwZRgDIAEoCRITCgtkaXNwbGF5Q29zdBgEIAEoCRIOCgZiZ1R5cGUYBSABKAkiswQKGUNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgCIAEoCRITCgtjb21wYW55TmFtZRgDIAEoCRIUCgxiaWxsaW5nVGl0bGUYBCABKAkSEwoLcGhvbmVOdW1iZXIYBSABKAkSEgoKcG9zdGFsQ29kZRgGIAEoCRIPCgdhZGRyZXNzGAcgASgJEhAKCHBlcnNvbmFsGAggASgJEg8KB3JlbWFya3MYCSABKAkSEQoJcHJvamVjdElkGAogASgJEhAKCGxhbmd1YWdlGAsgASgJEhMKC2Rpc3BsYXlDb3N0GAwgASgJEhgKEGV4Y2hhbmdlUmF0ZVR5cGUYDSABKAkSOgoOYWNjb3VudE9wdGlvbnMYDyABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnMSRgoIaW52b2ljZXMYDiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2USMgoKYXdzT3B0aW9ucxgQIAEoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5Bd3NPcHRpb25zEgwKBGNpdHkYESABKAkSEgoKcHJlZmVjdHVyZRgSIAEoCRIPCgdjb3VudHJ5GBMgASgJEh0KFWludm9pY2VMYXlvdXRDb25maWdJZBgUIAEoCSI1CgpBd3NPcHRpb25zEhYKDnVzZVByb0Zvcm1hQ3VyGAEgASgIEg8KB3BheWVySWQYAiABKAkiqwEKDkFjY291bnRPcHRpb25zEjEKA2F3cxgBIAEoCzIkLmJsdWVhcGkuYmlsbGluZy52MS5SZWdpc3RlckFjY291bnRzEjEKA2djcBgCIAEoCzIkLmJsdWVhcGkuYmlsbGluZy52MS5SZWdpc3RlckFjY291bnRzEjMKBWF6dXJlGAMgASgLMiQuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlZ2lzdGVyQWNjb3VudHMiTgoQUmVnaXN0ZXJBY2NvdW50cxIPCgdlbmFibGVkGAEgASgIEhEKCWFjY291bnRJZBgCIAEoCRIWCg51bkxpbmtPblJlbW92ZRgDIAEoCCJUCg5WZW5kb3JBY2NvdW50cxIOCgZ2ZW5kb3IYASABKAkSMgoIYWNjb3VudHMYAiADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFRvQWRkImAKDEF6dXJlT3B0aW9ucxIVCg1yZXNvdXJjZUdyb3VwGAEgASgIEhsKE2FwcGx5UGNFYXJuZWRDcmVkaXQYAiABKAgSHAoUYXBwbHlDYW1wYWlnblByaWNpbmcYAyABKAgiqgcKH0NyZWF0ZUJpbGxpbmdHcm91cE1lcmdlZFJlcXVlc3QSFgoOYmlsbGluZ0dyb3VwSWQYASABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgCIAEoCRITCgtjb21wYW55TmFtZRgDIAEoCRIUCgxiaWxsaW5nVGl0bGUYBCABKAkSEwoLcGhvbmVOdW1iZXIYBSABKAkSEgoKcG9zdGFsQ29kZRgGIAEoCRIPCgdhZGRyZXNzGAcgASgJEhAKCHBlcnNvbmFsGAggASgJEg8KB3JlbWFya3MYCSABKAkSEQoJcHJvamVjdElkGAogASgJEhAKCGxhbmd1YWdlGAsgASgJEhMKC2Rpc3BsYXlDb3N0GAwgASgJEhgKEGV4Y2hhbmdlUmF0ZVR5cGUYDSABKAkSOgoOYWNjb3VudE9wdGlvbnMYDyABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnMSRgoIaW52b2ljZXMYDiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2USMgoKYXdzT3B0aW9ucxgQIAEoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5Bd3NPcHRpb25zEgwKBGNpdHkYESABKAkSEgoKcHJlZmVjdHVyZRgSIAEoCRIPCgdjb3VudHJ5GBMgASgJEhkKEWludm9pY2VUZW1wbGF0ZUlkGBQgASgJEjMKC3RhZ1NldHRpbmdzGBUgAygLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ1NldHRpbmcSOAoNbm9uVGFnU2V0dGluZxgWIAEoCzIhLmJsdWVhcGkuYmlsbGluZy52MS5Ob25UYWdTZXR0aW5nEjoKDnZlbmRvckFjY291bnRzGBcgAygLMiIuYmx1ZWFwaS5iaWxsaW5nLnYxLlZlbmRvckFjY291bnRzElsKDGN1c3RvbUZpZWxkcxgYIAMoCzJFLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBNZXJnZWRSZXF1ZXN0LkN1c3RvbUZpZWxkc0VudHJ5EjYKDGF6dXJlT3B0aW9ucxgZIAEoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5BenVyZU9wdGlvbnMaMwoRQ3VzdG9tRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL/AQogQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2USRwoDYXdzGAEgASgLMjouYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3RJbnZvaWNlVmVuZG9yEkkKBWF6dXJlGAIgASgLMjouYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3RJbnZvaWNlVmVuZG9yEkcKA2djcBgDIAEoCzI6LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0SW52b2ljZVZlbmRvciL1AwomQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2VWZW5kb3ISEAoIY2FsY1R5cGUYASABKAkSFAoMZGlzY291bnRSYXRlGAIgASgBEhcKD3N1YnN0aXR1dGlvbkZlZRgDIAEoCRIXCg9zdWJzdGl0dXRpb25GaXgYBCABKAESGAoQc3Vic3RpdHV0aW9uUmF0ZRgFIAEoARISCgpzdXBwb3J0RmVlGAYgASgJEhMKC3N1cHBvcnRSYXRlGAcgASgBEhIKCnN1cHBvcnRGaXgYCCABKAESDwoHdGF4UmF0ZRgJIAEoARIQCghjdXJyZW5jeRgKIAEoCRIbChNkaXNjb3VudFRhcmdldFVzYWdlGAsgASgJEiIKGnN1YnN0aXR1dGlvbkZlZVRhcmdldFVzYWdlGAwgASgJEhkKEWRpc2NvdW50Q2FsY0xvZ2ljGA0gASgJEiEKGXN1YnN0aXR1dGlvbkZlZUNhbGNUYXJnZXQYDiABKAkSHwoXc3Vic3RpdHV0aW9uRmVlQ2FsY1R5cGUYDyABKAkSGwoTc3VwcG9ydEFtb3VudFRhcmdldBgQIAEoCRIcChRzdXBwb3J0RmVlQ2FsY1RhcmdldBgRIAEoCRIcChRzdXBwb3J0RmVlQWRqdXN0bWVudBgSIAEoASJjChZHZXRCaWxsaW5nR3JvdXBSZXF1ZXN0EhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIlEKF0dldEJpbGxpbmdHcm91cFJlc3BvbnNlEjYKDGJpbGxpbmdHcm91cBgBIAEoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAilgEKC0FjY2Vzc0dyb3VwEhUKDWFjY2Vzc0dyb3VwSWQYASABKAkSFwoPYWNjZXNzR3JvdXBOYW1lGAIgASgJEh4KFmFjY2Vzc0dyb3VwRGVzY3JpcHRpb24YAyABKAkSNwoNYmlsbGluZ0dyb3VwcxgEIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAiXgoVR2V0QWNjZXNzR3JvdXBSZXF1ZXN0EhUKDWFjY2Vzc0dyb3VwSWQYASABKAkSLgoKZmllbGRfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siTgoWR2V0QWNjZXNzR3JvdXBSZXNwb25zZRI0CgthY2Nlc3NHcm91cBgBIAEoCzIfLmJsdWVhcGkuYmlsbGluZy52MS5BY2Nlc3NHcm91cCKvAgoSQXdzRGFpbHlSdW5IaXN0b3J5EhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg0KBW1vbnRoGAMgASgJEkAKCGFjY291bnRzGAQgAygLMi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c0RhaWx5UnVuSGlzdG9yeS5BY2NvdW50GpQBCgdBY2NvdW50EhEKCWFjY291bnRJZBgBIAEoCRJHCgdoaXN0b3J5GAIgAygLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkF3c0RhaWx5UnVuSGlzdG9yeS5BY2NvdW50Lkhpc3RvcnkaLQoHSGlzdG9yeRIRCgl0aW1lc3RhbXAYASABKAkSDwoHdHJpZ2dlchgCIAEoCSI/Ch1MaXN0QXdzRGFpbHlSdW5IaXN0b3J5UmVxdWVzdBINCgVtb250aBgBIAEoCRIPCgdncm91cElkGAIgASgJIlYKGkxpc3RVc2FnZUNvc3RzRHJpZnRSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIZChFiaWxsaW5nSW50ZXJuYWxJZBgCIAEoCRINCgVtb250aBgDIAEoCSKGAQoPVXNhZ2VDb3N0c0RyaWZ0EhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg8KB2FjY291bnQYAyABKAkSEAoIc25hcHNob3QYBCABKAESDwoHY3VycmVudBgFIAEoARIMCgRkaWZmGAYgASgBIjIKEUdldEludm9pY2VSZXF1ZXN0EgwKBGRhdGUYASABKAkSDwoHZ3JvdXBJZBgCIAEoCSI5ChhFeHBvcnRJbnZvaWNlRmlsZVJlcXVlc3QSDAoEZGF0ZRgBIAEoCRIPCgdncm91cElkGAIgASgJIigKGUV4cG9ydEludm9pY2VGaWxlUmVzcG9uc2USCwoDdXJsGAEgASgJIjUKI1JlYWRTZXJ2aWNlRGlzY291bnRzU2VydmljZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSIkCiJMaXN0SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Il4KIUdldEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIKCgJpZBgBIAEoCRItCglmaWVsZE1hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrImoKF0ludm9pY2VTZXJ2aWNlRGlzY291bnRzEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHY3JlYXRlZBgEIAEoCRIPCgd1cGRhdGVkGAUgASgJIhwKGkxpc3RJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0Il0KKFVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VUZW1wbGF0ZVJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISHwoRaW52b2ljZVRlbXBsYXRlSWQYAiABKAlCBOJBAQIingIKG0xpc3RJbnZvaWNlVGVtcGxhdGVSZXNwb25zZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB2NyZWF0ZWQYBCABKAkSDwoHdXBkYXRlZBgFIAEoCRIZChFudW1iZXJPZkNvbm5lY3RlZBgGIAEoBRJQChVjb25uZWN0ZWRCaWxsaW5nR3JvdXAYByADKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZUNvbm5lY3RlZEJpbGxpbmdHcm91cHMSQQoIaW52b2ljZXMYCCABKAsyLy5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzIiIKIEdldEludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXF1ZXN0IkgKIUdldEludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXNwb25zZRIjChtzaG93UklTUFVwZnJvbnRUaW1lSW50ZXJ2YWwYASABKAgirAEKI1VwZGF0ZUludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXF1ZXN0ElUKB3NldHRpbmcYASADKAsyRC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZURpc3BsYXlTZXR0aW5nc1JlcXVlc3QuU2V0dGluZ0VudHJ5Gi4KDFNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAg6AjgBImwKHUludm9pY2VDb25uZWN0ZWRCaWxsaW5nR3JvdXBzEhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkiPAopTGlzdEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSKHAQoeQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEgoKAmlkGAEgASgJEg8KB2FjY291bnQYAiABKAkSSAoQc2VydmljZURpc2NvdW50cxgDIAEoCzIuLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50cyI4ChdBY2NvdW50U2VydmljZURpc2NvdW50cxIKCgJpZBgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkifQorQ3JlYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIm0KLENyZWF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIn0KK1VwZGF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRI9CghhY2NvdW50cxgEIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50U2VydmljZURpc2NvdW50cyJtCixVcGRhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRI9CghhY2NvdW50cxgEIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50U2VydmljZURpc2NvdW50cyI+CitEZWxldGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkifQorUmVtb3ZlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIk8KMENyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEgoKAmlkGAIgASgJIj8KMUNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiTwowVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSCgoCaWQYAiABKAkiPwoxVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSJDCjBEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSJzChRDcmVhdGVJbnZvaWNlUmVxdWVzdBIMCgRkYXRlGAQgASgJEg4KBnZlbmRvchgBIAEoCRIRCglhbGxHcm91cHMYAiABKAgSDgoGZ3JvdXBzGAMgAygJEhoKEmV4Y2x1ZGVEZXNjZW5kYW50cxgFIAEoCCIlChdHZXRJbnZvaWNlU3RhdHVzUmVxdWVzdBIKCgJpZBgBIAEoCSIoChhMaXN0SW52b2ljZVN0YXR1c1JlcXVlc3QSDAoEZGF0ZRgBIAEoCSJgChxVcGRhdGVJbnZvaWNlUHJldmlld3NSZXF1ZXN0EgwKBGRhdGUYASABKAkSEQoJYWxsR3JvdXBzGAIgASgIEg4KBmdyb3VwcxgDIAMoCRIPCgdlbmFibGVkGAQgASgIIs8BChVDcmVhdGVSZXNlbGxlclJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRINCgVlbWFpbBgCIAEoCRIQCghwYXNzd29yZBgDIAEoCRIUCgxub3RpZmljYXRpb24YBCABKAgSNgoKd2F2ZUNvbmZpZxgFIAMoCzIiLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlckNvbmZpZxI2CgphcXVhQ29uZmlnGAYgAygLMiIuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyQ29uZmlnIkYKFExpc3RSZXNlbGxlcnNSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIlAKEkdldFJlc2VsbGVyUmVxdWVzdBIKCgJpZBgBIAEoCRIuCgpmaWVsZF9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayKmAgoVVXBkYXRlUmVzZWxsZXJSZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEhMKBWVtYWlsGAIgASgJQgTiQQEBEhcKCHBhc3N3b3JkGAMgASgJQgXiQQIEARI8Cgp3YXZlQ29uZmlnGAQgAygLMiIuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyQ29uZmlnQgTiQQEBEjwKCmFxdWFDb25maWcYBSADKAsyIi5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXJDb25maWdCBOJBAQESGwoMbm90aWZpY2F0aW9uGAYgASgIQgXiQQIEARI0Cgp1cGRhdGVNYXNrGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIjChVEZWxldGVSZXNlbGxlclJlcXVlc3QSCgoCaWQYASABKAkiSgoYR2V0QmlsbGluZ1NldHRpbmdSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIscCChlHZXRCaWxsaW5nU2V0dGluZ1Jlc3BvbnNlEjAKCXllYXJNb250aBgBIAMoCzIdLmJsdWVhcGkuYXBpLnJpcHBsZS5ZZWFyTW9udGgSNAoOcm91bmRpbmdNZXRob2QYAiABKAsyHC5ibHVlYXBpLmFwaS5yaXBwbGUuUm91bmRpbmcSOgoUZXhwb3J0Um91bmRpbmdNZXRob2QYAyABKAsyHC5ibHVlYXBpLmFwaS5yaXBwbGUuUm91bmRpbmcSOAoNaW52b2ljZUxheW91dBgEIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0EjMKDmludm9pY2VEdWVEYXRlGAUgASgLMhsuYmx1ZWFwaS5hcGkucmlwcGxlLkR1ZURhdGUSFwoPc3VwcG9ydEN1cnJlbmN5GAYgAygJIjkKGExpc3RFeGNoYW5nZVJhdGVzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkiZQocU2V0R2xvYmFsRXhjaGFuZ2VSYXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDQoFbW9udGgYAiABKAkSEAoIY3VycmVuY3kYAyABKAkSFAoMZXhjaGFuZ2VSYXRlGAQgASgBIncKG1NldFBheWVyRXhjaGFuZ2VSYXRlUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg0KBW1vbnRoGAMgASgJEhAKCGN1cnJlbmN5GAQgASgJEhQKDGV4Y2hhbmdlUmF0ZRgFIAEoASJsCiJTZXRCaWxsaW5nR3JvdXBFeGNoYW5nZVJhdGVSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDQoFbW9udGgYAiABKAkSEAoIY3VycmVuY3kYAyABKAkSFAoMZXhjaGFuZ2VSYXRlGAQgASgBIuIBChlMaXN0RXhjaGFuZ2VSYXRlc1Jlc3BvbnNlEg0KBW1vbnRoGAEgASgJEjYKBmNvbW1vbhgCIAEoCzImLmJsdWVhcGkuYXBpLnJpcHBsZS5Db21tb25FeGNoYW5nZVJhdGUSQgoMYmlsbGluZ0dyb3VwGAMgAygLMiwuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEV4Y2hhbmdlUmF0ZRI6CgVwYXllchgEIAEoCzIrLmJsdWVhcGkuYXBpLnJpcHBsZS5WZW5kb3JQYXllckV4Y2hhbmdlUmF0ZSJJChdMaXN0QWNjZXNzR3JvdXBzUmVxdWVzdBIuCgpmaWVsZF9tYXNrGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayJUChhDcmVhdGVBY2Nlc3NHcm91cFJlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIVCg1iaWxsaW5nR3JvdXBzGAMgAygJImAKGFVwZGF0ZUFjY2Vzc0dyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEhUKDWJpbGxpbmdHcm91cHMYBCADKAkiJgoYRGVsZXRlQWNjZXNzR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJIp4BChJMaXN0SW52b2ljZVJlcXVlc3QSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSGQoRYmlsbGluZ0ludGVybmFsSWQYAyABKAkSLgoKZmllbGRfbWFzaxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sSHwoXY2hpbGRCaWxsaW5nSW50ZXJuYWxJZHMYBSADKAkinQkKE0xpc3RJbnZvaWNlUmVzcG9uc2USGQoRYmlsbGluZ0ludGVybmFsSWQYASABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSGAoQYmlsbGluZ0dyb3VwTmFtZRgDIAEoCRITCgtjb21wYW55TmFtZRgEIAEoCRIaChJmaW5hbGl6YXRpb25TdGF0dXMYBSABKAkSEQoJaXNDcmVhdGVkGAYgASgIEhkKEWlzU2V0dGluZ01vZGlmaWVkGAcgASgIEhMKC2NyZWF0ZWREYXRlGAggASgJEhMKC3VwZGF0ZWREYXRlGAkgASgJEhYKDmNyZWF0ZWRWZW5kb3JzGAogAygJEhMKC2lzUHVibGlzaGVkGAsgASgIEl0KE3ZlbmRvckJpbGxpbmdBbW91bnQYDCADKAsyQC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZS5WZW5kb3JCaWxsaW5nQW1vdW50RW50cnkSGgoSYmlsbGluZ0Ftb3VudFRvdGFsGA0gASgJEhAKCGN1cnJlbmN5GA4gASgJEg0KBXVybElkGA8gASgJEm0KG2NyZWF0ZWRWZW5kb3JJbnZvaWNlU2V0dGluZxgQIAMoCzJILmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVJlc3BvbnNlLkNyZWF0ZWRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5EmkKGXNhdmVkVmVuZG9ySW52b2ljZVNldHRpbmcYESADKAsyRi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZS5TYXZlZFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSbQobZGVmYXVsdFZlbmRvckludm9pY2VTZXR0aW5nGBIgAygLMkguYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UuRGVmYXVsdFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSEAoIaGFzQ2hpbGQYEyABKAgSFwoPYXR0YWNoZWRWZW5kb3JzGBQgAygJGjoKGFZlbmRvckJpbGxpbmdBbW91bnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGmcKIENyZWF0ZWRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5EgsKA2tleRgBIAEoCRIyCgV2YWx1ZRgCIAEoCzIjLmJsdWVhcGkuYmlsbGluZy52MS5JbnZvaWNlU2V0dGluZ3M6AjgBGmUKHlNhdmVkVmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzOgI4ARpnCiBEZWZhdWx0VmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzOgI4ASIpChtMaXN0QWJjQmlsbGluZ0dyb3Vwc1JlcXVlc3QSCgoCaWQYASABKAkiTgoiTGlzdEFiY0JpbGxpbmdHcm91cEFjY291bnRzUmVxdWVzdBIPCgdwYXllcklkGAEgASgJEhcKD2JpbGxpbmdHcm91cEFybhgCIAEoCSKPAQoPQWJjQmlsbGluZ0dyb3VwEgsKA2FybhgBIAEoCRIMCgRuYW1lGAIgASgJEhQKDGNyZWF0aW9uVGltZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIYChBwcmltYXJ5QWNjb3VudElkGAUgASgJEgwKBHNpemUYBiABKAkSDgoGc3RhdHVzGAcgASgJIjQKCkFiY0FjY291bnQSEQoJYWNjb3VudElkGAEgASgJEhMKC2FjY291bnROYW1lGAIgASgJImIKHVJlYWRJbnZvaWNlQWRqdXN0bWVudHNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDQoFbW9udGgYAyABKAkSDwoHZmVlVHlwZRgEIAEoCSKZAQocUmVhZEFkanVzdG1lbnRFbnRyaWVzUmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEwoFbW9udGgYAiABKAlCBOJBAQEaTgoiQWRqdXN0bWVudEVudHJpZXNSZXF1ZXN0QXdzT3B0aW9ucxITCgtzcHBEaXNjb3VudBgBIAEoCBITCgtlZHBEaXNjb3VudBgCIAEoCCJDChlHZXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhIQCgJpZBgCIAEoCUIE4kEBAiKeAwobQXBwbHlBZGp1c3RtZW50RW50cnlSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhJTCgdzZXR0aW5nGAIgASgLMjwuYmx1ZWFwaS5iaWxsaW5nLnYxLkFwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdC5BcHBseVNldHRpbmdCBOJBAQISFQoHZW50cmllcxgDIAMoCUIE4kEBAhr8AQoMQXBwbHlTZXR0aW5nEhMKBW1vbnRoGAEgASgJQgTiQQEBEhUKB3RheEZyZWUYAiABKAhCBOJBAQESagoMZXhjaGFuZ2VSYXRlGAMgAygLMk4uYmx1ZWFwaS5iaWxsaW5nLnYxLkFwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdC5BcHBseVNldHRpbmcuRXhjaGFuZ2VSYXRlRW50cnlCBOJBAQESHwoRYmlsbGluZ0ludGVybmFsSWQYBCABKAlCBOJBAQEaMwoRRXhjaGFuZ2VSYXRlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJMCh1SZXN0b3JlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISFQoHZW50cmllcxgDIAMoCUIE4kEBAiJfChtTcGxpdEFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECEhgKCnN0YXJ0TW9udGgYAyABKAlCBOJBAQIi/AEKHkFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQISVgoGY29uZmlnGAMgAygLMkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdC5BY2NvdW50Q29uZmlnQgTiQQECEiEKE2FjY291bnRGb3JSZW1haW5pbmcYBCABKAlCBOJBAQIaNwoNQWNjb3VudENvbmZpZxIQCgJpZBgBIAEoCUIE4kEBAhIUCgZhbW91bnQYAiABKAFCBOJBAQIiTAoiUmVzdG9yZVNwbGl0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQIiTwolUmVzdG9yZUFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQIifgoWQ3JlYXRlQ3VzdG9tRmVlUmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEwoFbW9udGgYAiABKAlCBOJBAQISOQoHZW50cmllcxgDIAMoCzIiLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GZWVFbnRyeUIE4kEBAiKhAwoOQ3VzdG9tRmVlRW50cnkSFwoJYWNjb3VudElkGAEgASgJQgTiQQECEhwKDnBheWVyQWNjb3VudElkGAIgASgJQgTiQQECEhUKB2ZlZVR5cGUYAyABKAlCBOJBAQISGQoLbW9iaW5naVR5cGUYBCABKAlCBOJBAQISFAoGYW1vdW50GAUgASgBQgTiQQECEhoKDGN1cnJlbmN5Q29kZRgGIAEoCUIE4kEBAhIZCgtkZXNjcmlwdGlvbhgHIAEoCUIE4kEBAhIZCgtwcm9kdWN0Q29kZRgIIAEoCUIE4kEBARIZCgtwcm9kdWN0TmFtZRgJIAEoCUIE4kEBARIYCgp1c2FnZVN0YXJ0GAogASgJQgTiQQEBEhoKDHRpbWVJbnRlcnZhbBgLIAEoCUIE4kEBARJACgRtZXRhGAwgAygLMiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZlZUVudHJ5Lk1ldGFFbnRyeUIE4kEBARorCglNZXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASIqChdDcmVhdGVDdXN0b21GZWVSZXNwb25zZRIPCgdjcmVhdGVkGAEgASgFIn0KH0xpc3RBZGp1c3RtZW50RW50cnlJdGVtc1JlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhMKBW1vbnRoGAIgASgJQgTiQQECEhkKC21vYmluZ2lUeXBlGAMgASgJQgTiQQEBEhQKBnN0YXR1cxgEIAEoCUIE4kEBASK6AQoTQWRqdXN0bWVudEVudHJ5SXRlbRI1CgVlbnRyeRgBIAEoCzImLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5BZGp1c3RtZW50RW50cnkSPwoEbWV0YRgCIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5BZGp1c3RtZW50RW50cnlJdGVtLk1ldGFFbnRyeRorCglNZXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASI8ChtMaXN0QWNjb3VudFJlc291cmNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg0KBW1vbnRoGAIgASgJIkoKD1Jlc291cmNlQWNjb3VudBIPCgdwYXllcklkGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSEgoKcmVnaXN0ZXJlZBgDIAEoCCJIChpHZXRBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSGgoSaW5jbHVkZVNQUERpc2NvdW50GAIgASgIIo0BCh1DcmVhdGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSKgoGY29uZmlnGAIgAygLMhouYmx1ZWFwaS5hcGkuQ29uZmlnRmlsdGVycxIwCghhY2NvdW50cxgDIAMoCzIeLmJsdWVhcGkuYXBpLk1hbmFnZW1lbnRBY2NvdW50Io0BCh1VcGRhdGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSKgoGY29uZmlnGAIgAygLMhouYmx1ZWFwaS5hcGkuQ29uZmlnRmlsdGVycxIwCghhY2NvdW50cxgDIAMoCzIeLmJsdWVhcGkuYXBpLk1hbmFnZW1lbnRBY2NvdW50Ii8KHURlbGV0ZUFkanVzdG1lbnRDb25maWdSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCSJnChlSZWFkVW50YWdnZWRHcm91cHNSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhI0CgpmaWVsZF9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBASJcCiRSZWFkQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlc1JlcXVlc3QSNAoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQEiZgoiR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIKCgJpZBgBIAEoCRI0CgpmaWVsZF9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBASJ8CiVDcmVhdGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSMAoGY29uZmlnGAMgASgLMiAuYmx1ZWFwaS5hcGkucmlwcGxlLk1ldGhvZENvbmZpZyLFAQolVXBkYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAhJUChhjdXN0b21pemVkQmlsbGluZ1NlcnZpY2UYAiABKAsyLC5ibHVlYXBpLmFwaS5yaXBwbGUuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQgTiQQECEjQKCnVwZGF0ZU1hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIjMKJURlbGV0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSCgoCaWQYASABKAkiXQouR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBIVCgdncm91cElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAiLJAQovR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVzcG9uc2USEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEkAKDmNoYXJnaW5nVGFyZ2V0GAMgASgOMiIuYmx1ZWFwaS5hcGkucmlwcGxlLkNoYXJnaW5nVGFyZ2V0QgTiQQECEiwKCGFjY291bnRzGAQgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudEIE4kEBASL3AgouU2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBIVCgdncm91cElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhKAAQoHc2V0dGluZxgDIAMoCzJpLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0LkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nQgTiQQECGpQBCiZDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZxIQCgJpZBgBIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgCIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIWCghhY2NvdW50cxgDIAMoCUIE4kEBASJgCjFEZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0EhUKB2dyb3VwSWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECIpEBCiRDcmVhdGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRJGCgdzZXR0aW5nGAMgASgLMjUuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzU2V0dGluZyLFAQokVXBkYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECElUKF2ludm9pY2VTZXJ2aWNlRGlzY291bnRzGAIgASgLMi4uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzQgTiQQECEjQKCnVwZGF0ZU1hc2sYAyABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIjIKJERlbGV0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIKCgJpZBgBIAEoCSJuCgdUYWdEYXRhEhIKCmN1c3RvbWVySWQYASABKAkSEQoJYWNjb3VudElkGAIgASgJEhQKDGN1c3RvbWVyTmFtZRgDIAEoCRImCgR0YWdzGAQgAygLMhguYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ3MiTwoEVGFncxILCgNrZXkYASABKAkSDgoGdmFsdWVzGAIgAygJEhcKD3RvdGFsVmFsdWVDb3VudBgDIAEoBRIRCgl0cnVuY2F0ZWQYBCABKAgiLgoOR2V0VGFnc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgwKBHR5cGUYAiABKAkigAEKFExpc3RUYWdWYWx1ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEg4KBnRhZ0tleRgDIAEoCRISCgpwYWdlTnVtYmVyGAQgASgFEhAKCHBhZ2VTaXplGAUgASgFEg4KBnNlYXJjaBgGIAEoCSJ6ChVMaXN0VGFnVmFsdWVzUmVzcG9uc2USDgoGdmFsdWVzGAEgAygJEhcKD3RvdGFsVmFsdWVDb3VudBgCIAEoBRISCgpwYWdlTnVtYmVyGAMgASgFEhAKCHBhZ2VTaXplGAQgASgFEhIKCnRvdGFsUGFnZXMYBSABKAUiOwoLQ3VzdG9tRmllbGQSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIl4KF0JpbGxpbmdHcm91cEN1c3RvbUZpZWxkEg0KBXZhbHVlGAEgASgJEjQKC2N1c3RvbUZpZWxkGAIgASgLMh8uYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZpZWxkIjUKIkxpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSKFAQojTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVzcG9uc2USDwoHZ3JvdXBJZBgBIAEoCRJNChhiaWxsaW5nR3JvdXBDdXN0b21GaWVsZHMYAiADKAsyKy5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQiPAoYQ3JlYXRlQ3VzdG9tRmllbGRSZXF1ZXN0EgsKA2tleRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCSJIChhVcGRhdGVDdXN0b21GaWVsZFJlcXVlc3QSCgoCaWQYASABKAkSCwoDa2V5GAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJIiYKGERlbGV0ZUN1c3RvbUZpZWxkUmVxdWVzdBIKCgJpZBgBIAEoCSIYChZMaXN0Q3VzdG9tRmllbGRSZXF1ZXN0ImsKF0NyZWF0ZUZyZWVGb3JtYXRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJEi8KBWl0ZW1zGAMgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbSJhCgxGcmVlRm9ybUl0ZW0SDQoFbGFiZWwYASABKAkSEAoIdW5pdENvc3QYAiABKAMSDQoFdG90YWwYBSABKAMSEAoIcXVhbnRpdHkYAyABKA0SDwoHZW5hYmxlZBgEIAEoCCI6ChdEZWxldGVGcmVlRm9ybWF0UmVxdWVzdBIPCgdncm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCSI9ChRHZXRGcmVlRm9ybWF0UmVxdWVzdBIPCgdncm91cElkGAEgASgJEhQKDGlzQXNzb2NpYXRlZBgCIAEoCCJuChVHZXRGcmVlRm9ybWF0UmVzcG9uc2USDwoHZ3JvdXBJZBgDIAEoCRIOCgZ2ZW5kb3IYASABKAkSNAoKZnJlZUZvcm1hdBgCIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5GcmVlRm9ybUl0ZW0iOgomR2V0TW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZVJlcXVlc3QSEAoIbGFuZ3VhZ2UYASABKAkisQEKHE1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGUSDgoGZm9ybWF0GAEgASgJEhYKDmZvcm1hdF92ZXJzaW9uGAIgASgJEg8KB2hlYWRlcnMYAyADKAkSEgoKc2FtcGxlX3JvdxgEIAMoCRIVCg1hbGxvd2VkX21vZGVzGAUgAygJEhsKE21heF9maWxlX3NpemVfYnl0ZXMYBiABKAMSEAoIbWF4X3Jvd3MYByABKAUirwEKIEJ1bGtJbXBvcnRNb250aGx5TWlzY0ZlZXNSZXF1ZXN0EhkKC2Nzdl9jb250ZW50GAEgASgJQgTiQQECEhcKCWZpbGVfbmFtZRgCIAEoCUIE4kEBAhISCgRtb2RlGAMgASgJQgTiQQECEhQKBmZvcm1hdBgEIAEoCUIE4kEBAhIcCg5mb3JtYXRfdmVyc2lvbhgFIAEoCUIE4kEBAhIPCgdkcnlfcnVuGAYgASgIIrABChpMaXN0TW9udGhseU1pc2NGZWVzUmVxdWVzdBIbCg1iaWxsaW5nX21vbnRoGAEgASgJQgTiQQECEhgKEGJpbGxpbmdfZ3JvdXBfaWQYAiABKAkSIAoYYmlsbGluZ19ncm91cF9uYW1lX3F1ZXJ5GAMgASgJEhIKCml0ZW1fcXVlcnkYBCABKAkSEQoJcGFnZV9zaXplGAUgASgFEhIKCnBhZ2VfdG9rZW4YBiABKAkifQobTGlzdE1vbnRobHlNaXNjRmVlc1Jlc3BvbnNlEjAKBHJvd3MYASADKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWUSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMKC3RvdGFsX2NvdW50GAMgASgFIlAKG0RlbGV0ZU1vbnRobHlNaXNjRmVlUmVxdWVzdBIUCgZyb3dfaWQYASABKAlCBOJBAQISGwoNYmlsbGluZ19tb250aBgCIAEoCUIE4kEBAiL4AQoOTW9udGhseU1pc2NGZWUSDgoGcm93X2lkGAEgASgJEhUKDWJpbGxpbmdfbW9udGgYAiABKAkSGAoQYmlsbGluZ19ncm91cF9pZBgDIAEoCRIaChJiaWxsaW5nX2dyb3VwX25hbWUYBCABKAkSDgoGdmVuZG9yGAUgASgJEhEKCWl0ZW1fbmFtZRgGIAEoCRIQCghxdWFudGl0eRgHIAEoDRIRCgl1bml0X2Nvc3QYCCABKAMSDgoGYW1vdW50GAkgASgDEg8KB2VuYWJsZWQYCiABKAgSDgoGc291cmNlGAsgASgJEhAKCGN1cnJlbmN5GAwgASgJIpYDChpNb250aGx5TWlzY0ZlZUltcG9ydFJlc3VsdBIOCgZzdGF0dXMYASABKAkSEQoJZmlsZV9uYW1lGAIgASgJEhIKCnRvdGFsX3Jvd3MYAyABKAUSEgoKdmFsaWRfcm93cxgEIAEoBRIVCg1pbnNlcnRlZF9yb3dzGAUgASgFEhQKDHVwZGF0ZWRfcm93cxgGIAEoBRIWCg51bmNoYW5nZWRfcm93cxgHIAEoBRITCgtmYWlsZWRfcm93cxgIIAEoBRJGCgtyb3dfcmVzdWx0cxgJIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydFJvd1Jlc3VsdBIUCgxyZW1vdmVkX3Jvd3MYCiABKAUSFgoOYmlsbGluZ19tb250aHMYCyADKAkSDwoHdmVuZG9ycxgMIAMoCRJMCg5iaWxsaW5nX2dyb3VwcxgNIAMoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydEdyb3VwU3VtbWFyeSJYCiBNb250aGx5TWlzY0ZlZUltcG9ydEdyb3VwU3VtbWFyeRIYChBiaWxsaW5nX2dyb3VwX2lkGAEgASgJEhoKEmJpbGxpbmdfZ3JvdXBfbmFtZRgCIAEoCSLtAgodTW9udGhseU1pc2NGZWVJbXBvcnRSb3dSZXN1bHQSFgoOY3N2X3Jvd19udW1iZXIYASABKAUSDgoGYWN0aW9uGAIgASgJEhgKEGJpbGxpbmdfZ3JvdXBfaWQYAyABKAkSGgoSYmlsbGluZ19ncm91cF9uYW1lGAQgASgJEg4KBnZlbmRvchgFIAEoCRIRCglpdGVtX25hbWUYBiABKAkSEAoIcXVhbnRpdHkYByABKA0SEQoJdW5pdF9jb3N0GAggASgDEg4KBmFtb3VudBgJIAEoAxIPCgdlbmFibGVkGAogASgIEkwKEXZhbGlkYXRpb25fZXJyb3JzGAsgAygLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlVmFsaWRhdGlvbkVycm9yEhUKDWJpbGxpbmdfbW9udGgYDCABKAkSEAoIY3VycmVuY3kYDSABKAkSDgoGc291cmNlGA4gASgJIk0KHU1vbnRobHlNaXNjRmVlVmFsaWRhdGlvbkVycm9yEg0KBWZpZWxkGAEgASgJEgwKBGNvZGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSJ3Ch5VcGRhdGVUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSNAoFaXRlbXMYAyADKAsyJS5ibHVlYXBpLmJpbGxpbmcudjEuVGFnc0FkZGluZ1NldHRpbmciPgobR2V0VGFnc0FkZGluZ1NldHRpbmdSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJIkkKEVRhZ3NBZGRpbmdTZXR0aW5nEg8KB2dyb3VwSWQYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRIPCgd0YWdLZXlzGAMgAygJIk0KHUV4cG9ydFNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhQKBmZvcm1hdBgBIAEoCUIE4kEBAhIWCghsYW5ndWFnZRgCIAEoCUIE4kEBASKkAQorRXhwb3J0QWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIUCgZmb3JtYXQYASABKAlCBOJBAQISFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESEgoKZGlyZWN0TGluaxgDIAEoCBIdCg9iaWxsaW5nR3JvdXBJZHMYBCADKAlCBOJBAQESFAoGbGF5ZXJzGAUgAygFQgTiQQEBIqkBCjBFeHBvcnRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSFAoGZm9ybWF0GAEgASgJQgTiQQECEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhIKCmRpcmVjdExpbmsYAyABKAgSHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBEhQKBmxheWVycxgFIAMoBUIE4kEBASJrChxFeHBvcnRCaWxsaW5nR3JvdXBDc3ZSZXF1ZXN0EhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEh0KD2JpbGxpbmdHcm91cElkcxgDIAMoCUIE4kEBARIUCgZsYXllcnMYBCADKAVCBOJBAQEiNQodRXhwb3J0QmlsbGluZ0dyb3VwQ3N2UmVzcG9uc2USFAoMZG93bmxvYWRMaW5rGAEgASgJIpEBCh5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlcXVlc3QSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESIgoUaW5jbHVkZU1pc2NlbGxhbmVvdXMYAyABKAhCBOJBAQESHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBEhQKBmxheWVycxgFIAMoBUIE4kEBASI3Ch9FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSKPAwojUHJldmlld0JpbGxpbmdHcm91cENzdkV4cG9ydFJlcXVlc3QSXQoLZXhwb3J0X3R5cGUYASABKA4yQi5ibHVlYXBpLmJpbGxpbmcudjEuUHJldmlld0JpbGxpbmdHcm91cENzdkV4cG9ydFJlcXVlc3QuRXhwb3J0VHlwZUIE4kEBAhIUCgZsYXllcnMYAiADKAVCBOJBAQISIwoVaW5jbHVkZV9taXNjZWxsYW5lb3VzGAMgASgIQgTiQQEBIs0BCgpFeHBvcnRUeXBlEhsKF0VYUE9SVF9UWVBFX1VOU1BFQ0lGSUVEEAASJAogRVhQT1JUX1RZUEVfQklMTElOR19HUk9VUF9ERVRBSUwQARIgChxFWFBPUlRfVFlQRV9JTlZPSUNFX1NFVFRJTkdTEAISLworRVhQT1JUX1RZUEVfQklMTElOR19HUk9VUF9TRVJWSUNFX0RJU0NPVU5UUxADEikKJUVYUE9SVF9UWVBFX0FDQ09VTlRfU0VSVklDRV9ESVNDT1VOVFMQBCKCAgokUHJldmlld0JpbGxpbmdHcm91cENzdkV4cG9ydFJlc3BvbnNlEl8KDGxheWVyX2NvdW50cxgBIAMoCzJJLmJsdWVhcGkuYmlsbGluZy52MS5QcmV2aWV3QmlsbGluZ0dyb3VwQ3N2RXhwb3J0UmVzcG9uc2UuTGF5ZXJDb3VudHNFbnRyeRIVCg1wcmV2aWV3X3Rva2VuGAIgASgJEi4KCmV4cGlyZXNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGjIKEExheWVyQ291bnRzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASJyCiVFeHBvcnRQcmV2aWV3ZWRCaWxsaW5nR3JvdXBDc3ZSZXF1ZXN0EhsKDXByZXZpZXdfdG9rZW4YASABKAlCBOJBAQISFAoGbGF5ZXJzGAIgAygFQgTiQQECEhYKCGxhbmd1YWdlGAMgASgJQgTiQQEBIj8KJkV4cG9ydFByZXZpZXdlZEJpbGxpbmdHcm91cENzdlJlc3BvbnNlEhUKDWRvd25sb2FkX2xpbmsYASABKAkiQAotR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkiPAouR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSK5AQohQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSUwoHaWRUb0tleRgCIAMoCzJCLmJsdWVhcGkuYmlsbGluZy52MS5BZGRCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QuSWRUb0tleUVudHJ5Gi4KDElkVG9LZXlFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIk4KJERlbGV0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBIPCgdncm91cElkGAEgASgJEhUKDWN1c3RvbUZpZWxkSWQYAiABKAkidgofQWRkQWNjb3VudFRvQmlsbGluZ0dyb3VwUmVxdWVzdBIPCgdncm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIyCghhY2NvdW50cxgDIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50VG9BZGQiUQoMQWNjb3VudFRvQWRkEhIKCmN1c3RvbWVySWQYASABKAkSEQoJYWNjb3VudElkGAIgASgJEgwKBG5hbWUYAyABKAkSDAoEbm90ZRgEIAEoCSKrAQocQWRkVGFnc1RvQmlsbGluZ0dyb3VwUmVxdWVzdBIPCgdncm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIwCghzZXR0aW5ncxgDIAMoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5UYWdTZXR0aW5nEjgKDW5vblRhZ1NldHRpbmcYBCABKAsyIS5ibHVlYXBpLmJpbGxpbmcudjEuTm9uVGFnU2V0dGluZyJHCgpUYWdTZXR0aW5nEhIKCmN1c3RvbWVySWQYASABKAkSJQoEdGFncxgCIAMoCzIXLmJsdWVhcGkuYmlsbGluZy52MS5UYWciMQoDVGFnEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIOCgZhc3NpZ24YAyABKAUiPgoNTm9uVGFnU2V0dGluZxIPCgdpbmNsdWRlGAEgASgIEgwKBHR5cGUYAiABKAkSDgoGYW1vdW50GAMgASgBIj4KHVNhdmVUYWdJbnZvaWNlU2V0dGluZ1Jlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCRINCgVlcnJvchgCIAEoCSJ+CiZVcGRhdGVOb25UYWdHcm91cFRvQmlsbGluZ0dyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSOAoIc2V0dGluZ3MYAyADKAsyJi5ibHVlYXBpLmJpbGxpbmcudjEuTm9uVGFnR3JvdXBTZXR0aW5nIj4KEk5vblRhZ0dyb3VwU2V0dGluZxIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJEg4KBmFtb3VudBgDIAEoASKaAQoaU2F2ZUludm9pY2VTZXR0aW5nc1JlcXVlc3QSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEQoJYWxsR3JvdXBzGAMgASgIEg4KBmdyb3VwcxgEIAMoCRI7Cg5pbnZvaWNlU2V0dGluZxgFIAEoCzIjLmJsdWVhcGkuYmlsbGluZy52MS5JbnZvaWNlU2V0dGluZ3MiswQKD0ludm9pY2VTZXR0aW5ncxIRCglpbnZvaWNlTm8YAiABKAkSFAoMZGlzY291bnRSYXRlGAQgASgBEhsKE2Rpc2NvdW50VGFyZ2V0VXNhZ2UYBSABKAkSGQoRZGlzY291bnRDYWxjTG9naWMYBiABKAkSDwoHdGF4UmF0ZRgHIAEoARISCgpzdXBwb3J0RmVlGAggASgJEhMKC3N1cHBvcnRSYXRlGAkgASgBEhwKFHN1cHBvcnRGZWVDYWxjVGFyZ2V0GAogASgJEhIKCnN1cHBvcnRGaXgYCyABKAESFwoPc3Vic3RpdHV0aW9uRmVlGAwgASgJEhgKEHN1YnN0aXR1dGlvblJhdGUYDSABKAESFwoPc3Vic3RpdHV0aW9uRml4GA4gASgBEiEKGXN1YnN0aXR1dGlvbkZlZUNhbGNUYXJnZXQYDyABKAkSIgoac3Vic3RpdHV0aW9uRmVlVGFyZ2V0VXNhZ2UYECABKAkSHwoXc3Vic3RpdHV0aW9uRmVlQ2FsY1R5cGUYESABKAkSEAoIY3VycmVuY3kYAyABKAkSFAoMZXhjaGFuZ2VSYXRlGBIgASgBEgwKBG1lbW8YEyABKAkSEAoIY2FsY1R5cGUYFCABKAkSOQoPYWRkaXRpb25hbEl0ZW1zGBUgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbRIcChRzdXBwb3J0RmVlQWRqdXN0bWVudBgWIAEoASKtAwoQQmFzaWNJbmZvcm1hdGlvbhIYChBiaWxsaW5nR3JvdXBOYW1lGAIgASgJEhYKDmJpbGxpbmdHcm91cElkGAMgASgJEhMKC2NvbXBhbnlOYW1lGAQgASgJEhYKCWFkZHJlc3NlZRgFIAEoCUgAiAEBEhQKB2NvdW50cnkYBiABKAlIAYgBARIXCgpwb3N0YWxDb2RlGAcgASgJSAKIAQESEQoEY2l0eRgIIAEoCUgDiAEBEhgKC3Bob25lTnVtYmVyGAkgASgJSASIAQESGQoMYWRkcmVzc0xpbmUxGAogASgJSAWIAQESGQoMYWRkcmVzc0xpbmUyGAsgASgJSAaIAQESEgoFc3RhdGUYDCABKAlIB4gBARIXCgpwcmVmZWN0dXJlGA0gASgJSAiIAQFCDAoKX2FkZHJlc3NlZUIKCghfY291bnRyeUINCgtfcG9zdGFsQ29kZUIHCgVfY2l0eUIOCgxfcGhvbmVOdW1iZXJCDwoNX2FkZHJlc3NMaW5lMUIPCg1fYWRkcmVzc0xpbmUyQggKBl9zdGF0ZUINCgtfcHJlZmVjdHVyZSJ3CilVcGRhdGVCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRI+ChBiYXNpY0luZm9ybWF0aW9uGAIgASgLMiQuYmx1ZWFwaS5iaWxsaW5nLnYxLkJhc2ljSW5mb3JtYXRpb24ivAEKJVVwZGF0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkc1JlcXVlc3QSCgoCaWQYASABKAkSVwoHaWRUb0tleRgCIAMoCzJGLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZHNSZXF1ZXN0LklkVG9LZXlFbnRyeRouCgxJZFRvS2V5RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJyCiNVcGRhdGVCaWxsaW5nR3JvdXBGcmVlRm9ybWF0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSLwoFaXRlbXMYAyADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuRnJlZUZvcm1JdGVtIuoCCihVcGRhdGVCaWxsaW5nR3JvdXBMaW5rZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIXCg9zZWxlY3Rpb25NZXRob2QYAyABKAkSMgoIYWNjb3VudHMYBCADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFRvQWRkEjAKCHNldHRpbmdzGAUgAygLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ1NldHRpbmcSPQoNbm9uVGFnU2V0dGluZxgGIAEoCzIhLmJsdWVhcGkuYmlsbGluZy52MS5Ob25UYWdTZXR0aW5nSACIAQESPwoOYWNjb3VudE9wdGlvbnMYByABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnNIAYgBAUIQCg5fbm9uVGFnU2V0dGluZ0IRCg9fYWNjb3VudE9wdGlvbnMi9gEKKFVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QSCgoCaWQYASABKAkSGQoMYmlsbGluZ1RpdGxlGAIgASgJSACIAQESHAoPY2FsY3VsYXRpb25UeXBlGAMgASgJSAGIAQESFQoIbGFuZ3VhZ2UYBCABKAlIAogBARIiChVpbnZvaWNlTGF5b3V0Q29uZmlnSWQYBSABKAlIA4gBAUIPCg1fYmlsbGluZ1RpdGxlQhIKEF9jYWxjdWxhdGlvblR5cGVCCwoJX2xhbmd1YWdlQhgKFl9pbnZvaWNlTGF5b3V0Q29uZmlnSWQirwEKKFVwZGF0ZUJpbGxpbmdHcm91cFJlc2VsbGVyQ2hhcmdlc1JlcXVlc3QSCgoCaWQYASABKAkSHAoPaW52b2ljZVRlbXBsYXRlGAIgASgJSACIAQESRQoHaW52b2ljZRgDIAEoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0SW52b2ljZUISChBfaW52b2ljZVRlbXBsYXRlIr8ECipVcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QSCgoCaWQYASABKAkSeAoDYXdzGAIgAygLMmUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhJ6CgVhenVyZRgDIAMoCzJlLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmdCBOJBAQISeAoDZ2NwGAQgAygLMmUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhqUAQomQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmcSEAoCaWQYASABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAiABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISFgoIYWNjb3VudHMYAyADKAlCBOJBAQEiJwoZRGVsZXRlQmlsbGluZ0dyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCSJSCihHZXRCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAiKgAQopR2V0QmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEg8KB2VuYWJsZWQYAyABKAgSRgoHc2V0dGluZxgEIAMoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5CaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW4i8AEKK1VwZGF0ZUJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEhUKB2VuYWJsZWQYAyABKAhCBOJBAQESTAoHc2V0dGluZxgEIAMoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5CaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5CBOJBAQESNAoKdXBkYXRlTWFzaxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQIiMQoXR2V0QW5ub3VuY2VtZW50c1JlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASABKAkipwEKGUNyZWF0ZUFubm91bmNlbWVudFJlcXVlc3QSDQoFbGFiZWwYASABKAkSDAoEdHlwZRgCIAEoCRIQCghjb250ZW50cxgDIAEoCRIVCg1iaWxsaW5nR3JvdXBzGAQgAygJEhgKEGFsbEJpbGxpbmdHcm91cHMYBSABKAgSDQoFc3RhcnQYBiABKAMSCwoDZW5kGAcgASgDEg4KBnN0YXR1cxgIIAEoCSJ4ChlVcGRhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgASgJEkMKDGFubm91bmNlbWVudBgCIAEoCzItLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0IkoKIFVwZGF0ZUFubm91bmNlbWVudHNTdGF0dXNSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgAygJEg4KBnN0YXR1cxgCIAEoCSJFCh1VcGRhdGVBbm5vdW5jZW1lbnREYXRlUmVxdWVzdBIWCg5hbm5vdW5jZW1lbnRJZBgBIAMoCRIMCgRkYXRlGAIgASgDIjMKGURlbGV0ZUFubm91bmNlbWVudFJlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASABKAki6QEKDEFubm91bmNlbWVudBIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIMCgR0eXBlGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSFQoNYmlsbGluZ0dyb3VwcxgFIAMoCRIYChBhbGxCaWxsaW5nR3JvdXBzGA0gASgIEg0KBXN0YXJ0GAYgASgJEgsKA2VuZBgHIAEoCRIMCgRkYXRlGAggASgJEg4KBnN0YXR1cxgJIAEoCRISCgp1c2VyU3RhdHVzGAogASgJEg8KB2NyZWF0ZWQYCyABKAkSDwoHdXBkYXRlZBgMIAEoCSI2CiNHZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJIpYBCiRHZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzUmVzcG9uc2USDwoHZ3JvdXBJZBgBIAEoCRIRCglncm91cE5hbWUYAiABKAkSEQoJY29tcGFueUlkGAMgASgJEjcKDWFubm91bmNlbWVudHMYBCADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQW5ub3VuY2VtZW50IhMKEUdldENyZWRpdHNSZXF1ZXN0IsQBCgZDcmVkaXQSCgoCaWQYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRIUCgxjdXN0b21lck5hbWUYAyABKAkSFAoMY3JlZGl0QW1vdW50GAQgASgBEgwKBHRlcm0YBSABKAkSEwoLZGVzY3JpcHRpb24YBiABKAkSDwoHY3JlYXRlZBgHIAEoCRISCgppbml0aWFsRmVlGAggASgBEhUKDWNyZWRpdEJhbGFuY2UYCSABKAESDwoHYXBwbGllZBgKIAEoCCIXChVHZXRDc3ZTZXR0aW5nc1JlcXVlc3QipAEKCkNzdlNldHRpbmcSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIyCgNjb2wYAyADKAsyJS5ibHVlYXBpLmJpbGxpbmcudjEuQ3N2U2V0dGluZy5Db2x1bW4aSAoGQ29sdW1uEgwKBG5hbWUYASABKAkSCgoCaWQYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHZW5hYmxlZBgEIAEoCCLmAQogVXBkYXRlSW52b2ljZUV4Y2hhbmdlUmF0ZVJlcXVlc3QSDQoFbW9udGgYASABKAkSDgoGdmVuZG9yGAIgASgJElwKDGV4Y2hhbmdlUmF0ZRgDIAMoCzJGLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlRXhjaGFuZ2VSYXRlUmVxdWVzdC5FeGNoYW5nZVJhdGVFbnRyeRIQCghncm91cElkcxgEIAMoCRozChFFeGNoYW5nZVJhdGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBIo0BChpDb252ZXJ0SW52b2ljZVRvUGRmUmVxdWVzdBIMCgRkYXRlGAEgASgJEhUKDWJpbGxpbmdncm91cHMYAiADKAkSGAoQYWxsQmlsbGluZ0dyb3VwcxgDIAEoCBIUCgZsYXllcnMYBCADKAVCBOJBAQESGgoMcHJldmlld19vbmx5GAUgASgIQgTiQQEBItABChtDb252ZXJ0SW52b2ljZVRvUGRmUmVzcG9uc2USEAoIcHJvZ3Jlc3MYASABKAkSEwoLZG93bmxvYWRVcmwYAiABKAkSVgoMbGF5ZXJfY291bnRzGAMgAygLMkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkNvbnZlcnRJbnZvaWNlVG9QZGZSZXNwb25zZS5MYXllckNvdW50c0VudHJ5GjIKEExheWVyQ291bnRzRW50cnkSCwoDa2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4ASKIAgohTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrEg8KB3ZlbmRvcnMYAiABKAkSEAoIY2FsY1R5cGUYAyABKAkSEwoLZGlzcGxheUNvc3QYBCABKAkSDgoGYmdUeXBlGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYByABKAkSFgoOYmlsbGluZ0dyb3VwSWQYCCABKAkSEAoIcGFnZVNpemUYCSABKAUSEgoKcGFnZU51bWJlchgKIAEoBSKXAgoUQmlsbGluZ0dyb3VwTGlzdEl0ZW0SGAoQYmlsbGluZ0dyb3VwTmFtZRgBIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRITCgtjb21wYW55TmFtZRgDIAEoCRIYChBiaWxsaW5nR3JvdXBUeXBlGAQgASgJEkwKB3ZlbmRvcnMYBSADKAsyOy5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwTGlzdEl0ZW0uQmlsbGluZ0dyb3VwVmVuZG9yEhkKEWJpbGxpbmdJbnRlcm5hbElkGAYgASgJGjUKEkJpbGxpbmdHcm91cFZlbmRvchIOCgZ2ZW5kb3IYASABKAkSDwoHZW5hYmxlZBgCIAEoCCK0AQoiTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXNwb25zZRI/Cg1iaWxsaW5nR3JvdXBzGAEgAygLMiguYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cExpc3RJdGVtEhIKCnRvdGFsQ291bnQYAiABKAUSEwoLY3VycmVudFBhZ2UYAyABKAUSEAoIcGFnZVNpemUYBCABKAUSEgoKdG90YWxQYWdlcxgFIAEoBSKOAQohQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEgoKAmlkGAEgASgJEhIKCmludGVybmFsSWQYBiABKAkSEAoIcGFyZW50SWQYAiABKAkSFAoMcm9vdFBhcmVudElkGAUgASgJEgwKBG5hbWUYAyABKAkSEwoLY29tcGFueU5hbWUYBCABKAkivgEKJEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cBIQCgJpZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAyABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISLAoIYWNjb3VudHMYBCADKAsyFC5ibHVlYXBpLmFwaS5BY2NvdW50QgTiQQEBIoACChFDaGlsZEJpbGxpbmdHcm91cBJPChBiYXNpY0luZm9ybWF0aW9uGAEgASgLMjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvbhJNCg9pbnZvaWNlU2V0dGluZ3MYAiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSOQoLYmlsbGluZ0luZm8YAyABKAsyJC5ibHVlYXBpLmFwaS5yaXBwbGUuQmlsbGluZ0dyb3VwSW5mbxIQCghoYXNDaGlsZBgEIAEoCCKsAgogQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSQwoDYXdzGAEgASgLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cFZlbmRvcmVkSW52b2ljZVNldHRpbmcSIQoZYWNjb3VudFN1cHBvcnRQbGFuRW5hYmxlZBgCIAEoCBJZChphY2NvdW50U3VwcG9ydFBsYW5TZXR0aW5ncxgDIAMoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5CaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW4SRQoFYXp1cmUYBCABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZyKaAgoeQ3JlYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0Ek8KEGJhc2ljSW5mb3JtYXRpb24YASABKAsyNS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEjkKC2JpbGxpbmdJbmZvGAMgASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8STQoPaW52b2ljZVNldHRpbmdzGAIgASgLMjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEh0KFWludm9pY2VMYXlvdXRDb25maWdJZBgEIAEoCSIhCh9DcmVhdGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIjEKG0dldENoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJIlYKHEdldENoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2USNgoHZGV0YWlscxgBIAEoCzIlLmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cCJBCh1SZWFkQ2hpbGRCaWxsaW5nR3JvdXBzUmVxdWVzdBIOCgZyb290SWQYASABKAkSEAoIcGFyZW50SWQYAiABKAkiwAEKHlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJEk8KEGJhc2ljSW5mb3JtYXRpb24YAiABKAsyNS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEjkKC2JpbGxpbmdJbmZvGAMgASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8iIQofVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSI0Ch5EZWxldGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCSIhCh9EZWxldGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlItABCi1VcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRJNCg9pbnZvaWNlU2V0dGluZ3MYAiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSIgoVaW52b2ljZUxheW91dENvbmZpZ0lkGAMgASgJSACIAQFCGAoWX2ludm9pY2VMYXlvdXRDb25maWdJZCIwCi5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1Jlc3BvbnNlIpoDCjNTZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSGAoKaW50ZXJuYWxJZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISFAoGcm9vdElkGAMgASgJQgTiQQECEoUBCgdzZXR0aW5nGAQgAygLMm4uYmx1ZWFwaS5iaWxsaW5nLnYxLlNldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhqUAQomQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmcSEAoCaWQYASABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAiABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISFgoIYWNjb3VudHMYAyADKAlCBOJBAQEiVAoyU2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRIKCgJpZBgCIAEoCSKOAQo5U2V0Q2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSPQoIYWNjb3VudHMYAiADKAsyKy5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFNlcnZpY2VEaXNjb3VudHMiWQozR2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSDgoGdmVuZG9yGAIgASgJIs4BCjRHZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlc3BvbnNlEhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgDIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIsCghhY2NvdW50cxgEIAMoCzIULmJsdWVhcGkuYXBpLkFjY291bnRCBOJBAQEiSAoyR2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCSJBCjNHZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiUAo6UmVhZENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJInkKHUJ1bGtDcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0Eg4KBnZlbmRvchgFIAEoCRISCgpjc3ZDb250ZW50GAEgASgMEhEKCWRlbGltaXRlchgCIAEoCRIRCgloYXNIZWFkZXIYAyABKAgSDgoGZHJ5UnVuGAQgASgIIlUKG0J1bGtDcmVhdGVCaWxsaW5nR3JvdXBFcnJvchINCgVpbmRleBgBIAEoBRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIrMCCh5CdWxrQ3JlYXRlQmlsbGluZ0dyb3VwTWV0YWRhdGESDgoGc3RhdHVzGAEgASgJEhIKCnRvdGFsQ291bnQYAiABKAUSFgoOcHJvY2Vzc2VkQ291bnQYAyABKAUSFAoMc3VjY2Vzc0NvdW50GAQgASgFEhQKDGZhaWx1cmVDb3VudBgFIAEoBRI/CgZlcnJvcnMYBiADKAsyLy5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0NyZWF0ZUJpbGxpbmdHcm91cEVycm9yEhEKCXN0YXJ0VGltZRgHIAEoCRIPCgdlbmRUaW1lGAggASgJEkQKBHJvd3MYCSADKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0JpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JvdyI+Ch1Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBINCgV2YWx1ZRgBIAEoCRIOCgZzb3VyY2UYAiABKAkiqQ0KGU5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ3MSQwoIY2FsY1R5cGUYASABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSRgoLZGlzcGxheUNvc3QYAiABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSTgoTc3VwcG9ydEFtb3VudFRhcmdldBgDIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJPChRzdXBwb3J0RmVlQ2FsY1RhcmdldBgEIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJUChlzdWJzdGl0dXRpb25GZWVDYWxjVGFyZ2V0GAUgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkoKD2ludm9pY2VUZW1wbGF0ZRgGIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJICg1jdXN0b21TZXJ2aWNlGAcgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEksKEHNlcnZpY2VEaXNjb3VudHMYCCABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSQwoIY3VycmVuY3kYCSABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSQgoHdGF4UmF0ZRgKIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJHCgxkaXNjb3VudFJhdGUYCyABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSTgoTZGlzY291bnRUYXJnZXRVc2FnZRgMIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJMChFkaXNjb3VudENhbGNMb2dpYxgNIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJKCg9zdWJzdGl0dXRpb25GZWUYDiABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSSwoQc3Vic3RpdHV0aW9uUmF0ZRgPIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJKCg9zdWJzdGl0dXRpb25GaXgYECABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSVQoac3Vic3RpdHV0aW9uRmVlVGFyZ2V0VXNhZ2UYESABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSUgoXc3Vic3RpdHV0aW9uRmVlQ2FsY1R5cGUYEiABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSRQoKc3VwcG9ydEZlZRgTIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJGCgtzdXBwb3J0UmF0ZRgUIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJFCgpzdXBwb3J0Rml4GBUgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEk8KFHN1cHBvcnRGZWVBZGp1c3RtZW50GBYgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkIuIBCiJCdWxrQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUm93Eg0KBWluZGV4GAEgASgFEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg4KBnN0YXR1cxgDIAEoCRIOCgZlcnJvcnMYBCADKAkSSQoSbm9ybWFsaXplZFNldHRpbmdzGAUgASgLMi0uYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ3MSEwoLZGlzcG9zaXRpb24YBiABKAkSFQoNY3N2TGluZU51bWJlchgHIAEoBSJ5Ch1CdWxrVXBkYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBIOCgZ2ZW5kb3IYBSABKAkSEgoKY3N2Q29udGVudBgBIAEoDBIRCglkZWxpbWl0ZXIYAiABKAkSEQoJaGFzSGVhZGVyGAMgASgIEg4KBmRyeVJ1bhgEIAEoCCJlChtCdWxrVXBkYXRlQmlsbGluZ0dyb3VwRXJyb3ISDQoFaW5kZXgYASABKAUSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSDwoHbWVzc2FnZRgDIAEoCRIOCgZyZWFzb24YBCABKAkiswIKHkJ1bGtVcGRhdGVCaWxsaW5nR3JvdXBNZXRhZGF0YRIOCgZzdGF0dXMYASABKAkSEgoKdG90YWxDb3VudBgCIAEoBRIWCg5wcm9jZXNzZWRDb3VudBgDIAEoBRIUCgxzdWNjZXNzQ291bnQYBCABKAUSFAoMZmFpbHVyZUNvdW50GAUgASgFEj8KBmVycm9ycxgGIAMoCzIvLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrVXBkYXRlQmlsbGluZ0dyb3VwRXJyb3ISEQoJc3RhcnRUaW1lGAcgASgJEg8KB2VuZFRpbWUYCCABKAkSRAoEcm93cxgJIAMoCzI2LmJsdWVhcGkuYmlsbGluZy52MS5CdWxrQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUm93IrkBChNFeGNsdWRlU2VydmljZUVudHJ5Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJEhcKD2V4Y2VwdF9wYXllcl9pZBgGIAMoCRIOCgZhY3Rpb24YByABKAkSDgoGc3RhdHVzGAggASgJEhUKDWVycm9yX21lc3NhZ2UYCSABKAkijwEKIENyZWF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJEhcKD2V4Y2VwdF9wYXllcl9pZBgGIAMoCSJbCiFDcmVhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2USNgoFZW50cnkYASABKAsyJy5ibHVlYXBpLmJpbGxpbmcudjEuRXhjbHVkZVNlcnZpY2VFbnRyeSKPAQogVXBkYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QSDgoGbXNwX2lkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIQCghwYXllcl9pZBgDIAEoCRIPCgdzZXJ2aWNlGAQgASgJEg8KB3Byb2R1Y3QYBSABKAkSFwoPZXhjZXB0X3BheWVyX2lkGAYgAygJIlsKIVVwZGF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZRI2CgVlbnRyeRgBIAEoCzInLmJsdWVhcGkuYmlsbGluZy52MS5FeGNsdWRlU2VydmljZUVudHJ5InYKIERlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJIlsKIURlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZRI2CgVlbnRyeRgBIAEoCzInLmJsdWVhcGkuYmlsbGluZy52MS5FeGNsdWRlU2VydmljZUVudHJ5IjwKGkxpc3RFeGNsdWRlU2VydmljZXNSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkiVwobTGlzdEV4Y2x1ZGVTZXJ2aWNlc1Jlc3BvbnNlEjgKB2VudHJpZXMYASADKAsyJy5ibHVlYXBpLmJpbGxpbmcudjEuRXhjbHVkZVNlcnZpY2VFbnRyeSJECgtTZXJ2aWNlSXRlbRIKCgJpZBgBIAEoCRIMCgRjb2RlGAIgASgJEg0KBW5hbWVzGAMgAygJEgwKBHNrdXMYBCADKAkiMwoTTGlzdFNlcnZpY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDAoEY29kZRgCIAEoCSJFChRMaXN0U2VydmljZXNSZXNwb25zZRItCgRkYXRhGAEgAygLMh8uYmx1ZWFwaS5iaWxsaW5nLnYxLlNlcnZpY2VJdGVtInIKFkJ1bGtMaW5rQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAUgASgJEhIKCmNzdkNvbnRlbnQYASABKAwSEQoJZGVsaW1pdGVyGAIgASgJEhEKCWhhc0hlYWRlchgDIAEoCBIOCgZkcnlSdW4YBCABKAgiYQoUQnVsa0xpbmtBY2NvdW50RXJyb3ISDQoFaW5kZXgYASABKAUSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEg8KB21lc3NhZ2UYBCABKAki3wEKF0J1bGtMaW5rQWNjb3VudE1ldGFkYXRhEg4KBnN0YXR1cxgBIAEoCRISCgp0b3RhbENvdW50GAIgASgFEhYKDnByb2Nlc3NlZENvdW50GAMgASgFEhQKDHN1Y2Nlc3NDb3VudBgEIAEoBRIUCgxmYWlsdXJlQ291bnQYBSABKAUSOAoGZXJyb3JzGAYgAygLMiguYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtMaW5rQWNjb3VudEVycm9yEhEKCXN0YXJ0VGltZRgHIAEoCRIPCgdlbmRUaW1lGAggASgJIj4KGkJ1bGtUYWdCaWxsaW5nR3JvdXBSZXF1ZXN0EhIKCmNzdkNvbnRlbnQYASABKAwSDAoEbW9kZRgCIAEoCSKCAQoYQnVsa1RhZ0JpbGxpbmdHcm91cEVycm9yEg0KBWluZGV4GAEgASgFEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhIKCmN1c3RvbWVySWQYAyABKAkSCwoDa2V5GAQgASgJEg0KBXZhbHVlGAUgASgJEg8KB21lc3NhZ2UYBiABKAki5wEKG0J1bGtUYWdCaWxsaW5nR3JvdXBNZXRhZGF0YRIOCgZzdGF0dXMYASABKAkSEgoKdG90YWxDb3VudBgCIAEoBRIWCg5wcm9jZXNzZWRDb3VudBgDIAEoBRIUCgxzdWNjZXNzQ291bnQYBCABKAUSFAoMZmFpbHVyZUNvdW50GAUgASgFEjwKBmVycm9ycxgGIAMoCzIsLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrVGFnQmlsbGluZ0dyb3VwRXJyb3ISEQoJc3RhcnRUaW1lGAcgASgJEg8KB2VuZFRpbWUYCCABKAkiNwopR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkieQoqR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlEjEKBmxheW91dBgBIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0EgoKAmlkGAIgASgJEgwKBG5hbWUYAyABKAkiSgopU2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkSEQoJbGF5b3V0X2lkGAIgASgJImMKIENyZWF0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgwKBG5hbWUYASABKAkSMQoGbGF5b3V0GAIgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQiNgohQ3JlYXRlSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlEhEKCWxheW91dF9pZBgBIAEoCSJvCiBVcGRhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCRIxCgZsYXlvdXQYAiABKAsyIS5ibHVlYXBpLmFwaS5yaXBwbGUuSW52b2ljZUxheW91dBIMCgRuYW1lGAMgASgJIiAKHlJlYWRJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdCJuCh9SZWFkSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSMQoGbGF5b3V0GAMgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQiOgosRGVsZXRlQmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiLgogRGVsZXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiOQorTGlzdEludm9pY2VMYXlvdXRDb25maWdCaWxsaW5nR3JvdXBzUmVxdWVzdBIKCgJpZBgBIAEoCSJICixMaXN0SW52b2ljZUxheW91dENvbmZpZ0JpbGxpbmdHcm91cHNSZXNwb25zZRIYChBiaWxsaW5nZ3JvdXBfaWRzGAEgAygJMtXKAQoHQmlsbGluZxKAAQoRTGlzdEJpbGxpbmdHcm91cHMSLC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cHNSZXF1ZXN0GiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cCIZgtPkkwITEhEvdjEvYmlsbGluZ2dyb3VwczABErABChpMaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZBI1LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZFJlcXVlc3QaNi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXNwb25zZSIjgtPkkwIdEhsvdjEvYmlsbGluZ2dyb3VwczpwYWdpbmF0ZWQSgwEKEkNyZWF0ZUJpbGxpbmdHcm91cBItLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0GiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cCIcgtPkkwIWOgEqIhEvdjEvYmlsbGluZ2dyb3VwcxKWAQoYQ3JlYXRlQmlsbGluZ0dyb3VwTWVyZ2VkEjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cE1lcmdlZFJlcXVlc3QaIC5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwIiOC0+STAh06ASoiGC92MS9iaWxsaW5nZ3JvdXBzL21lcmdlZBJ5ChFEZWxldGVCaWxsaW5Hcm91cBItLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVCaWxsaW5nR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhcqFS92MS9iaWxsaW5nZ3JvdXAve2lkfRKMAQoYQWRkQWNjb3VudFRvQmlsbGluZ0dyb3VwEjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkFkZEFjY291bnRUb0JpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHToBKiIYL3YxL2JpbGxpbmdncm91cC9hY2NvdW50EpkBCg9HZXRCaWxsaW5nR3JvdXASKi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwUmVxdWVzdBorLmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBSZXNwb25zZSItgtPkkwInEiUvdjEvYmlsbGluZ2dyb3Vwcy97YmlsbGluZ0ludGVybmFsSWR9EpEBCg5HZXRBY2Nlc3NHcm91cBIpLmJsdWVhcGkuYmlsbGluZy52MS5HZXRBY2Nlc3NHcm91cFJlcXVlc3QaKi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QWNjZXNzR3JvdXBSZXNwb25zZSIogtPkkwIiEiAvdjEvYWNjZXNzZ3JvdXBzL3thY2Nlc3NHcm91cElkfRKeAQoWTGlzdEF3c0RhaWx5UnVuSGlzdG9yeRIxLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QXdzRGFpbHlSdW5IaXN0b3J5UmVxdWVzdBomLmJsdWVhcGkuYmlsbGluZy52MS5Bd3NEYWlseVJ1bkhpc3RvcnkiJ4LT5JMCIToBKiIcL3YxL2F3cy9kYWlseXJ1bmhpc3Rvcnk6cmVhZDABEpoBChNMaXN0VXNhZ2VDb3N0c0RyaWZ0Ei4uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RVc2FnZUNvc3RzRHJpZnRSZXF1ZXN0GiMuYmx1ZWFwaS5iaWxsaW5nLnYxLlVzYWdlQ29zdHNEcmlmdCIsgtPkkwImOgEqIiEvdjEve3ZlbmRvcn0vdXNhZ2Vjb3N0c2RyaWZ0OnJlYWQwARJ8Cg1DcmVhdGVJbnZvaWNlEiguYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUludm9pY2VSZXF1ZXN0GhsuYmx1ZWFwaS5hcGkuSW52b2ljZU1lc3NhZ2UiJILT5JMCHjoBKiIZL3YxL2ludm9pY2Uve2RhdGV9OmNyZWF0ZRKbAQoZQ3JlYXRlSW52b2ljZVdpdGhTZXR0aW5ncxIuLmJsdWVhcGkuYmlsbGluZy52MS5TYXZlSW52b2ljZVNldHRpbmdzUmVxdWVzdBobLmJsdWVhcGkuYXBpLkludm9pY2VNZXNzYWdlIjGC0+STAis6ASoiJi92MS9pbnZvaWNlL3tkYXRlfTpjcmVhdGUmc2F2ZXNldHRpbmdzEokBChNTYXZlSW52b2ljZVNldHRpbmdzEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLlNhdmVJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQ6ASoiHy92MS9pbnZvaWNlL3tkYXRlfTpzYXZlc2V0dGluZ3MSogEKE0NvbnZlcnRJbnZvaWNlVG9QZGYSLi5ibHVlYXBpLmJpbGxpbmcudjEuQ29udmVydEludm9pY2VUb1BkZlJlcXVlc3QaLy5ibHVlYXBpLmJpbGxpbmcudjEuQ29udmVydEludm9pY2VUb1BkZlJlc3BvbnNlIiqC0+STAiQ6ASoiHy92MS9pbnZvaWNlL3tkYXRlfTpjb252ZXJ0dG9wZGYSfQoQR2V0SW52b2ljZVN0YXR1cxIrLmJsdWVhcGkuYmlsbGluZy52MS5HZXRJbnZvaWNlU3RhdHVzUmVxdWVzdBobLmJsdWVhcGkuYXBpLkludm9pY2VNZXNzYWdlIh+C0+STAhkSFy92MS9pbnZvaWNlL3N0YXR1cy97aWR9EosBChFMaXN0SW52b2ljZVN0YXR1cxIsLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVN0YXR1c1JlcXVlc3QaGy5ibHVlYXBpLmFwaS5JbnZvaWNlTWVzc2FnZSIpgtPkkwIjOgEqIh4vdjEvaW52b2ljZS9zdGF0dXMve2RhdGV9OnJlYWQwARJtCgpHZXRJbnZvaWNlEiUuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEludm9pY2VSZXF1ZXN0GhQuYmx1ZWFwaS5hcGkuSW52b2ljZSIigtPkkwIcOgEqIhcvdjEvaW52b2ljZS97ZGF0ZX06cmVhZBJ9CgtMaXN0SW52b2ljZRImLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVJlcXVlc3QaJy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZSIbgtPkkwIVOgEqIhAvdjEvaW52b2ljZTpyZWFkMAESiAEKFVVwZGF0ZUludm9pY2VQcmV2aWV3cxIwLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlUHJldmlld3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiWC0+STAh86ASoaGi92MS9pbnZvaWNlL3tkYXRlfTpwcmV2aWV3EpYBChFFeHBvcnRJbnZvaWNlRmlsZRIsLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRJbnZvaWNlRmlsZVJlcXVlc3QaLS5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0SW52b2ljZUZpbGVSZXNwb25zZSIkgtPkkwIeOgEqIhkvdjEvaW52b2ljZS97ZGF0ZX06ZXhwb3J0EpYBChNMaXN0SW52b2ljZVRlbXBsYXRlEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0Gi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSIcgtPkkwIWEhQvdjEvaW52b2ljZS90ZW1wbGF0ZTABEq0BChlHZXRJbnZvaWNlRGlzcGxheVNldHRpbmdzEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXF1ZXN0GjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXNwb25zZSIjgtPkkwIdEhsvdjEvaW52b2ljZS9kaXNwbGF5c2V0dGluZ3MSlwEKHFVwZGF0ZUludm9pY2VEaXNwbGF5U2V0dGluZ3MSNy5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZURpc3BsYXlTZXR0aW5nc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJoLT5JMCIDoBKiIbL3YxL2ludm9pY2UvZGlzcGxheXNldHRpbmdzEpYBChlVcGRhdGVJbnZvaWNlRXhjaGFuZ2VSYXRlEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUludm9pY2VFeGNoYW5nZVJhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiuC0+STAiU6ASoaIC92MS9pbnZvaWNlL2V4Y2hhbmdlcmF0ZS97bW9udGh9EqwBCiFVcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlVGVtcGxhdGUSPC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVRlbXBsYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIxgtPkkwIrOgEqIiYvdjEvYmlsbGluZ2dyb3Vwcy97aWR9L2ludm9pY2V0ZW1wbGF0ZRKxAQocUmVhZFNlcnZpY2VEaXNjb3VudHNTZXJ2aWNlcxI3LmJsdWVhcGkuYmlsbGluZy52MS5SZWFkU2VydmljZURpc2NvdW50c1NlcnZpY2VzUmVxdWVzdBoeLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5TZXJ2aWNlIjaC0+STAjA6ASoiKy92MS9zZXJ2aWNlZGlzY291bnRzL3t2ZW5kb3J9L3NlcnZpY2VzOnJlYWQwARKqAQodQ3JlYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSOC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Gi4uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzIh+C0+STAhk6ASoiFC92MS9zZXJ2aWNlZGlzY291bnRzEq8BCh1VcGRhdGVJbnZvaWNlU2VydmljZURpc2NvdW50cxI4LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaLi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuSW52b2ljZVNlcnZpY2VEaXNjb3VudHMiJILT5JMCHjoBKhoZL3YxL3NlcnZpY2VkaXNjb3VudHMve2lkfRKUAQodRGVsZXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSOC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiGC0+STAhsqGS92MS9zZXJ2aWNlZGlzY291bnRzL3tpZH0SqgEKG0xpc3RJbnZvaWNlU2VydmljZURpc2NvdW50cxI2LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GisuYmx1ZWFwaS5iaWxsaW5nLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzIiSC0+STAh46ASoiGS92MS9zZXJ2aWNlZGlzY291bnRzOnJlYWQwARKmAQoaR2V0SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSNS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Gi4uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzIiGC0+STAhsSGS92MS9zZXJ2aWNlZGlzY291bnRzL3tpZH0SogEKFkV4cG9ydFNlcnZpY2VEaXNjb3VudHMSMS5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0U2VydmljZURpc2NvdW50c1JlcXVlc3QaLS5ibHVlYXBpLmFwaS5yaXBwbGUudjEuU2VydmljZURpc2NvdW50c0V4cG9ydCImgtPkkwIgOgEqIhsvdjEvc2VydmljZWRpc2NvdW50czpleHBvcnQS8AEKKUNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBpFLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlIjaC0+STAjA6ASoiKy92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9iaWxsaW5nZ3JvdXAS8AEKKVVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkQuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBpFLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlIjaC0+STAjA6ASoaKy92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9iaWxsaW5nZ3JvdXASvgEKKURlbGV0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkQuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItKisvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYmlsbGluZ2dyb3VwEtEBCiJMaXN0QWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEj0uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GjIuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cyI2gtPkkwIwOgEqIisvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYWNjb3VudDpyZWFkMAES3AEKJENyZWF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxI/LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlIjGC0+STAis6ASoiJi92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9hY2NvdW50EtwBCiRVcGRhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSPy5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBpALmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZSIxgtPkkwIrOgEqGiYvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYWNjb3VudBK5AQokUmVtb3ZlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLlJlbW92ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiOILT5JMCMjoBKhotL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2FjY291bnQ6cmVtb3ZlEq8BCiREZWxldGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSPy5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoKiYvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYWNjb3VudBLNAQokRXhwb3J0QWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaNC5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQWNjb3VudFNlcnZpY2VEaXNjb3VudHNFeHBvcnQiLoLT5JMCKDoBKiIjL3YxL3NlcnZpY2VkaXNjb3VudHMvYWNjb3VudDpleHBvcnQS2gEKKUV4cG9ydEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkQuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoyLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5Hcm91cFNlcnZpY2VEaXNjb3VudHNFeHBvcnQiM4LT5JMCLToBKiIoL3YxL3NlcnZpY2VkaXNjb3VudHMvYmlsbGluZ2dyb3VwOmV4cG9ydBLkAQomR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSQS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GkIuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2UiM4LT5JMCLRIrL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2JpbGxpbmdncm91cBJzCg5DcmVhdGVSZXNlbGxlchIpLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVSZXNlbGxlclJlcXVlc3QaHC5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXIiGILT5JMCEjoBKiINL3YxL3Jlc2VsbGVycxJwCg1MaXN0UmVzZWxsZXJzEiguYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RSZXNlbGxlcnNSZXF1ZXN0GhwuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyIhWC0+STAg8SDS92MS9yZXNlbGxlcnMwARJvCgtHZXRSZXNlbGxlchImLmJsdWVhcGkuYmlsbGluZy52MS5HZXRSZXNlbGxlclJlcXVlc3QaHC5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXIiGoLT5JMCFBISL3YxL3Jlc2VsbGVycy97aWR9EngKDlVwZGF0ZVJlc2VsbGVyEikuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZVJlc2VsbGVyUmVxdWVzdBocLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlciIdgtPkkwIXOgEqGhIvdjEvcmVzZWxsZXJzL3tpZH0SbwoORGVsZXRlUmVzZWxsZXISKS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlUmVzZWxsZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhqC0+STAhQqEi92MS9yZXNlbGxlcnMve2lkfRKGAQoRR2V0QmlsbGluZ1NldHRpbmcSLC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ1NldHRpbmdSZXF1ZXN0Gi0uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdTZXR0aW5nUmVzcG9uc2UiFILT5JMCDhIML3YxL3NldHRpbmdzEpsBChFMaXN0RXhjaGFuZ2VSYXRlcxIsLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0RXhjaGFuZ2VSYXRlc1JlcXVlc3QaLS5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXNwb25zZSIpgtPkkwIjEiEvdjEve3ZlbmRvcn0vZXhjaGFuZ2VyYXRlL3ttb250aH0SlgEKFVNldEdsb2JhbEV4Y2hhbmdlUmF0ZRIwLmJsdWVhcGkuYmlsbGluZy52MS5TZXRHbG9iYWxFeGNoYW5nZVJhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi06ASoiKC92MS9leGNoYW5nZXJhdGUvZ2xvYmFsL3t2ZW5kb3J9L3ttb250aH0SigEKFFNldFBheWVyRXhjaGFuZ2VSYXRlEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLlNldFBheWVyRXhjaGFuZ2VSYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjOgEqIh4vdjEvZXhjaGFuZ2VyYXRlL3BheWVyL3ttb250aH0SnwEKG1NldEJpbGxpbmdHcm91cEV4Y2hhbmdlUmF0ZRI2LmJsdWVhcGkuYmlsbGluZy52MS5TZXRCaWxsaW5nR3JvdXBFeGNoYW5nZVJhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjCC0+STAio6ASoiJS92MS9leGNoYW5nZXJhdGUvYmlsbGluZ2dyb3VwL3ttb250aH0SfAoQTGlzdEFjY2Vzc0dyb3VwcxIrLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QWNjZXNzR3JvdXBzUmVxdWVzdBofLmJsdWVhcGkuYXBpLnJpcHBsZS5BY2Nlc3NHcm91cCIYgtPkkwISEhAvdjEvYWNjZXNzZ3JvdXBzMAESfwoRQ3JlYXRlQWNjZXNzR3JvdXASLC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQWNjZXNzR3JvdXBSZXF1ZXN0Gh8uYmx1ZWFwaS5hcGkucmlwcGxlLkFjY2Vzc0dyb3VwIhuC0+STAhU6ASoiEC92MS9hY2Nlc3Nncm91cHMShAEKEVVwZGF0ZUFjY2Vzc0dyb3VwEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFjY2Vzc0dyb3VwUmVxdWVzdBofLmJsdWVhcGkuYXBpLnJpcHBsZS5BY2Nlc3NHcm91cCIggtPkkwIaOgEqGhUvdjEvYWNjZXNzZ3JvdXBzL3tpZH0SeAoRRGVsZXRlQWNjZXNzR3JvdXASLC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQWNjZXNzR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhcqFS92MS9hY2Nlc3Nncm91cHMve2lkfRKfAQoUTGlzdEFiY0JpbGxpbmdHcm91cHMSLy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEFiY0JpbGxpbmdHcm91cHNSZXF1ZXN0GiMuYmx1ZWFwaS5iaWxsaW5nLnYxLkFiY0JpbGxpbmdHcm91cCIvgtPkkwIpEicvdjEvYmlsbGluZ2dyb3Vwcy9iaWxsaW5nY29uZHVjdG9yL3tpZH0wARK2AQobTGlzdEFiY0JpbGxpbmdHcm91cEFjY291bnRzEjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBYmNCaWxsaW5nR3JvdXBBY2NvdW50c1JlcXVlc3QaHi5ibHVlYXBpLmJpbGxpbmcudjEuQWJjQWNjb3VudCI9gtPkkwI3EjUvdjEvYmlsbGluZ2dyb3Vwcy9iaWxsaW5nY29uZHVjdG9yL3twYXllcklkfS9hY2NvdW50czABEpwBChZSZWFkSW52b2ljZUFkanVzdG1lbnRzEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRJbnZvaWNlQWRqdXN0bWVudHNSZXF1ZXN0GhwuYmx1ZWFwaS5hcGkud2F2ZS5BZGp1c3RtZW50Ii+C0+STAik6ASoiJC92MS97dmVuZG9yfS9pbnZvaWNlYWRqdXN0bWVudHM6cmVhZDABEqMBChVSZWFkQWRqdXN0bWVudEVudHJpZXMSMC5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZEFkanVzdG1lbnRFbnRyaWVzUmVxdWVzdBomLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5BZGp1c3RtZW50RW50cnkiLoLT5JMCKDoBKiIjL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzOnJlYWQwARKYAQoSR2V0QWRqdXN0bWVudEVudHJ5Ei0uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEFkanVzdG1lbnRFbnRyeVJlcXVlc3QaJi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQWRqdXN0bWVudEVudHJ5IiuC0+STAiUSIy92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllcy97aWR9EpABChRBcHBseUFkanVzdG1lbnRFbnRyeRIvLmJsdWVhcGkuYmlsbGluZy52MS5BcHBseUFkanVzdG1lbnRFbnRyeVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiL4LT5JMCKToBKiIkL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzOmFwcGx5EpYBChZSZXN0b3JlQWRqdXN0bWVudEVudHJ5EjEuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlc3RvcmVBZGp1c3RtZW50RW50cnlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjGC0+STAis6ASoiJi92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllczpyZXN0b3JlEpUBChRTcGxpdEFkanVzdG1lbnRFbnRyeRIvLmJsdWVhcGkuYmlsbGluZy52MS5TcGxpdEFkanVzdG1lbnRFbnRyeVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiNILT5JMCLjoBKiIpL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzL3tpZH0vc3BsaXQSngEKF0FsbG9jYXRlQWRqdXN0bWVudEVudHJ5EjIuYmx1ZWFwaS5iaWxsaW5nLnYxLkFsbG9jYXRlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI3gtPkkwIxOgEqIiwvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXMve2lkfS9hbGxvY2F0ZRKrAQobUmVzdG9yZVNwbGl0QWRqdXN0bWVudEVudHJ5EjYuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlc3RvcmVTcGxpdEFkanVzdG1lbnRFbnRyeVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiPILT5JMCNjoBKiIxL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzL3tpZH0vc3BsaXQ6cmVzdG9yZRK0AQoeUmVzdG9yZUFsbG9jYXRlQWRqdXN0bWVudEVudHJ5EjkuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlc3RvcmVBbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiP4LT5JMCOToBKiI0L3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzL3tpZH0vYWxsb2NhdGU6cmVzdG9yZRKgAQoPQ3JlYXRlQ3VzdG9tRmVlEiouYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbUZlZVJlcXVlc3QaKy5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tRmVlUmVzcG9uc2UiNILT5JMCLjoBKiIpL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzL2N1c3RvbWZlZXMSrQEKGExpc3RBZGp1c3RtZW50RW50cnlJdGVtcxIzLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QWRqdXN0bWVudEVudHJ5SXRlbXNSZXF1ZXN0GicuYmx1ZWFwaS5iaWxsaW5nLnYxLkFkanVzdG1lbnRFbnRyeUl0ZW0iMYLT5JMCKzoBKiImL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyeWl0ZW1zOnJlYWQwARKXAQoUTGlzdEFjY291bnRSZXNvdXJjZXMSLy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEFjY291bnRSZXNvdXJjZXNSZXF1ZXN0GiMuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlc291cmNlQWNjb3VudCIngtPkkwIhEh8vdjEvcmVzb3VyY2VzL2FjY291bnRzL3t2ZW5kb3J9MAESiwEKE0dldEFkanVzdG1lbnRDb25maWcSLi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QWRqdXN0bWVudENvbmZpZ1JlcXVlc3QaHS5ibHVlYXBpLmFwaS5BZGp1c3RtZW50Q29uZmlnIiWC0+STAh8SHS92MS9hZGp1c3RtZW50Y29uZmlnL3t2ZW5kb3J9EpQBChZDcmVhdGVBZGp1c3RtZW50Q29uZmlnEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUFkanVzdG1lbnRDb25maWdSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkuQWRqdXN0bWVudENvbmZpZyIogtPkkwIiOgEqIh0vdjEvYWRqdXN0bWVudGNvbmZpZy97dmVuZG9yfRKUAQoWVXBkYXRlQWRqdXN0bWVudENvbmZpZxIxLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBodLmJsdWVhcGkuYXBpLkFkanVzdG1lbnRDb25maWciKILT5JMCIjoBKhodL3YxL2FkanVzdG1lbnRjb25maWcve3ZlbmRvcn0SigEKFkRlbGV0ZUFkanVzdG1lbnRDb25maWcSMS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJYLT5JMCHyodL3YxL2FkanVzdG1lbnRjb25maWcve3ZlbmRvcn0SlQEKElJlYWRVbnRhZ2dlZEdyb3VwcxItLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkVW50YWdnZWRHcm91cHNSZXF1ZXN0GiEuYmx1ZWFwaS5hcGkucmlwcGxlLlVudGFnZ2VkR3JvdXAiK4LT5JMCJToBKiIgL3YxL3t2ZW5kb3J9L3VudGFnZ2VkZ3JvdXBzOnJlYWQwARK4AQodUmVhZEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZXMSOC5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZXNSZXF1ZXN0GiwuYmx1ZWFwaS5hcGkucmlwcGxlLkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZSItgtPkkwInOgEqIiIvdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlczpyZWFkMAESrwEKG0dldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRI2LmJsdWVhcGkuYmlsbGluZy52MS5HZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0GiwuYmx1ZWFwaS5hcGkucmlwcGxlLkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZSIqgtPkkwIkEiIvdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcy97aWR9ErMBCh5DcmVhdGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2USOS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBosLmJsdWVhcGkuYXBpLnJpcHBsZS5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2UiKILT5JMCIjoBKiIdL3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMSuAEKHlVwZGF0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRI5LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0GiwuYmx1ZWFwaS5hcGkucmlwcGxlLkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZSItgtPkkwInOgEqGiIvdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcy97aWR9Ep8BCh5EZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2USOS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkKiIvdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcy97aWR9EvsBCidHZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXASQi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBpDLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXNwb25zZSJFgtPkkwI/Ej0vdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcy9iaWxsaW5nZ3JvdXAve2dyb3VwSWR9L3t2ZW5kb3J9MAESzwEKJ1NldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cBJCLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkiC0+STAkI6ASoiPS92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzL2JpbGxpbmdncm91cC97Z3JvdXBJZH0ve3ZlbmRvcn0S0gEKKkRlbGV0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cBJFLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IkWC0+STAj8qPS92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzL2JpbGxpbmdncm91cC97Z3JvdXBJZH0ve3ZlbmRvcn0SXgoHR2V0VGFncxIiLmJsdWVhcGkuYmlsbGluZy52MS5HZXRUYWdzUmVxdWVzdBobLmJsdWVhcGkuYmlsbGluZy52MS5UYWdEYXRhIhCC0+STAgoSCC92MS90YWdzMAESfQoNTGlzdFRhZ1ZhbHVlcxIoLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0VGFnVmFsdWVzUmVxdWVzdBopLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0VGFnVmFsdWVzUmVzcG9uc2UiF4LT5JMCERIPL3YxL3RhZ3M6dmFsdWVzEn4KEUNyZWF0ZUN1c3RvbUZpZWxkEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbUZpZWxkUmVxdWVzdBofLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GaWVsZCIagtPkkwIUOgEqIg8vdjEvY3VzdG9tZmllbGQSgQEKD0xpc3RDdXN0b21GaWVsZBIqLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0Q3VzdG9tRmllbGRSZXF1ZXN0Gh8uYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZpZWxkIh+C0+STAhk6ASoiFC92MS9jdXN0b21maWVsZDpyZWFkMAESlAEKGkFkZEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkEjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkFkZEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIngtPkkwIhOgEqIhwvdjEvYmlsbGluZ2dyb3VwL2N1c3RvbWZpZWxkEr4BChtMaXN0QmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQSNi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBo3LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXNwb25zZSIsgtPkkwImOgEqIiEvdjEvYmlsbGluZ2dyb3VwL2N1c3RvbWZpZWxkOnJlYWQwARKDAQoVQWRkVGFnc1RvQmlsbGluZ0dyb3VwEjAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFkZFRhZ3NUb0JpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIILT5JMCGjoBKiIVL3YxL2JpbGxpbmdncm91cC90YWdzEq8BCh9VcGRhdGVOb25UYWdHcm91cFRvQmlsbGluZ0dyb3VwEjouYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZU5vblRhZ0dyb3VwVG9CaWxsaW5nR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjiC0+STAjI6ASoiLS92MS9iaWxsaW5nZ3JvdXAve2lkfS97dmVuZG9yfS91bnRhZ2dlZGdyb3VwcxKxAQodRGVsZXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQSOC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ij6C0+STAjgqNi92MS9iaWxsaW5nZ3JvdXAvY3VzdG9tZmllbGQve2dyb3VwSWR9L3tjdXN0b21GaWVsZElkfRKDAQoRVXBkYXRlQ3VzdG9tRmllbGQSLC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQ3VzdG9tRmllbGRSZXF1ZXN0Gh8uYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZpZWxkIh+C0+STAhk6ASoaFC92MS9jdXN0b21maWVsZC97aWR9EncKEURlbGV0ZUN1c3RvbUZpZWxkEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUN1c3RvbUZpZWxkUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIcgtPkkwIWKhQvdjEvY3VzdG9tZmllbGQve2lkfRJyChBDcmVhdGVGcmVlRm9ybWF0EisuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUZyZWVGb3JtYXRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhM6ASoiDi92MS9mcmVlZm9ybWF0EnkKEERlbGV0ZUZyZWVGb3JtYXQSKy5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlRnJlZUZvcm1hdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIILT5JMCGioYL3YxL2ZyZWVmb3JtYXQve2dyb3VwSWR9EogBCg1HZXRGcmVlRm9ybWF0EiguYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEZyZWVGb3JtYXRSZXF1ZXN0GikuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEZyZWVGb3JtYXRSZXNwb25zZSIggtPkkwIaEhgvdjEvZnJlZWZvcm1hdC97Z3JvdXBJZH0wARK9AQofR2V0TW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZRI6LmJsdWVhcGkuYmlsbGluZy52MS5HZXRNb250aGx5TWlzY0ZlZUltcG9ydFRlbXBsYXRlUmVxdWVzdBowLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydFRlbXBsYXRlIiyC0+STAiYSJC92MS9tb250aGx5LW1pc2MtZmVlczppbXBvcnRUZW1wbGF0ZRKuAQoZQnVsa0ltcG9ydE1vbnRobHlNaXNjRmVlcxI0LmJsdWVhcGkuYmlsbGluZy52MS5CdWxrSW1wb3J0TW9udGhseU1pc2NGZWVzUmVxdWVzdBouLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydFJlc3VsdCIrgtPkkwIlOgEqIiAvdjEvbW9udGhseS1taXNjLWZlZXM6YnVsa0ltcG9ydBKVAQoTTGlzdE1vbnRobHlNaXNjRmVlcxIuLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0TW9udGhseU1pc2NGZWVzUmVxdWVzdBovLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0TW9udGhseU1pc2NGZWVzUmVzcG9uc2UiHYLT5JMCFxIVL3YxL21vbnRobHktbWlzYy1mZWVzEocBChREZWxldGVNb250aGx5TWlzY0ZlZRIvLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVNb250aGx5TWlzY0ZlZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJoLT5JMCICoeL3YxL21vbnRobHktbWlzYy1mZWVzL3tyb3dfaWR9EqIBChRHZXRUYWdzQWRkaW5nU2V0dGluZxIvLmJsdWVhcGkuYmlsbGluZy52MS5HZXRUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QaJS5ibHVlYXBpLmJpbGxpbmcudjEuVGFnc0FkZGluZ1NldHRpbmciMILT5JMCKhIoL3YxL3t2ZW5kb3J9L3RhZ3NhZGRpbmdzZXR0aW5nL3tncm91cElkfTABEpoBChdVcGRhdGVUYWdzQWRkaW5nU2V0dGluZxIyLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLToBKhooL3YxL3t2ZW5kb3J9L3RhZ3NhZGRpbmdzZXR0aW5nL3tncm91cElkfRKhAQoVRXhwb3J0QmlsbGluZ0dyb3VwQ3N2EjAuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEJpbGxpbmdHcm91cENzdlJlcXVlc3QaMS5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0QmlsbGluZ0dyb3VwQ3N2UmVzcG9uc2UiI4LT5JMCHRIbL3YxL2V4cG9ydGNzdi9iaWxsaW5nLWdyb3VwEqkBChdFeHBvcnRJbnZvaWNlU2V0dGluZ0NzdhIyLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlcXVlc3QaMy5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0SW52b2ljZVNldHRpbmdDc3ZSZXNwb25zZSIlgtPkkwIfEh0vdjEvZXhwb3J0Y3N2L2ludm9pY2Utc2V0dGluZxLBAQocUHJldmlld0JpbGxpbmdHcm91cENzdkV4cG9ydBI3LmJsdWVhcGkuYmlsbGluZy52MS5QcmV2aWV3QmlsbGluZ0dyb3VwQ3N2RXhwb3J0UmVxdWVzdBo4LmJsdWVhcGkuYmlsbGluZy52MS5QcmV2aWV3QmlsbGluZ0dyb3VwQ3N2RXhwb3J0UmVzcG9uc2UiLoLT5JMCKDoBKiIjL3YxL2V4cG9ydGNzdi9iaWxsaW5nLWdyb3VwOnByZXZpZXcSzwEKHkV4cG9ydFByZXZpZXdlZEJpbGxpbmdHcm91cENzdhI5LmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRQcmV2aWV3ZWRCaWxsaW5nR3JvdXBDc3ZSZXF1ZXN0GjouYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydFByZXZpZXdlZEJpbGxpbmdHcm91cENzdlJlc3BvbnNlIjaC0+STAjA6ASoiKy92MS9leHBvcnRjc3YvYmlsbGluZy1ncm91cDpleHBvcnRQcmV2aWV3ZWQSpwEKIlVwZGF0ZUJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb24SPS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKhofL3YxL2JpbGxpbmdncm91cC97aWR9OmJhc2ljSW5mbxKiAQoeVXBkYXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRzEjkuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJzoBKhoiL3YxL2JpbGxpbmdncm91cC97aWR9OmN1c3RvbUZpZWxkcxKcAQocVXBkYXRlQmlsbGluZ0dyb3VwRnJlZUZvcm1hdBI3LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBGcmVlRm9ybWF0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIrgtPkkwIlOgEqGiAvdjEvYmlsbGluZ2dyb3VwL3tpZH06ZnJlZUZvcm1hdBKlAQohVXBkYXRlQmlsbGluZ0dyb3VwTGlua2VkUmVzb3VyY2VzEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cExpbmtlZFJlc291cmNlc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKhofL3YxL2JpbGxpbmdncm91cC97aWR9OnJlc291cmNlcxKrAQohVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKjoBKholL3YxL2JpbGxpbmdncm91cC97aWR9Omludm9pY2VTZXR0aW5ncxKrAQohVXBkYXRlQmlsbGluZ0dyb3VwUmVzZWxsZXJDaGFyZ2VzEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cFJlc2VsbGVyQ2hhcmdlc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKjoBKholL3YxL2JpbGxpbmdncm91cC97aWR9OnJlc2VsbGVyQ2hhcmdlcxKxAQojVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXMSPi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjKC0+STAiw6ASoaJy92MS9iaWxsaW5nZ3JvdXAve2lkfTphZGRpdGlvbmFsQ2hhcmdlcxLUAQohR2V0QmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlcXVlc3QaPS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVzcG9uc2UiMoLT5JMCLBIqL3YxL2JpbGxpbmdncm91cC97aWR9L3t2ZW5kb3J9L3N1cHBvcnRwbGFuErYBCiRVcGRhdGVCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW4SPy5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI1gtPkkwIvOgEqGiovdjEvYmlsbGluZ2dyb3VwL3tpZH0ve3ZlbmRvcn0vc3VwcG9ydHBsYW4SgQEKEkNyZWF0ZUFubm91bmNlbWVudBItLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh46ASoiGS92MS9yZXNlbGxlci9hbm5vdW5jZW1lbnQSkgEKElVwZGF0ZUFubm91bmNlbWVudBItLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjWC0+STAi86ASoaKi92MS9yZXNlbGxlci9hbm5vdW5jZW1lbnQve2Fubm91bmNlbWVudElkfRKcAQoZVXBkYXRlQW5ub3VuY2VtZW50c1N0YXR1cxI0LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBbm5vdW5jZW1lbnRzU3RhdHVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIxgtPkkwIrOgEqMiYvdjEvcmVzZWxsZXIvYW5ub3VuY2VtZW50cy9idWxrL3N0YXR1cxKgAQoWVXBkYXRlQW5ub3VuY2VtZW50RGF0ZRIxLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBbm5vdW5jZW1lbnREYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI7gtPkkwI1OgEqMjAvdjEvcmVzZWxsZXIvYW5ub3VuY2VtZW50cy97YW5ub3VuY2VtZW50SWR9L2RhdGUSjwEKEkRlbGV0ZUFubm91bmNlbWVudBItLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVBbm5vdW5jZW1lbnRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjKC0+STAiwqKi92MS9yZXNlbGxlci9hbm5vdW5jZW1lbnQve2Fubm91bmNlbWVudElkfRKgAQoQR2V0QW5ub3VuY2VtZW50cxIrLmJsdWVhcGkuYmlsbGluZy52MS5HZXRBbm5vdW5jZW1lbnRzUmVxdWVzdBogLmJsdWVhcGkuYmlsbGluZy52MS5Bbm5vdW5jZW1lbnQiO4LT5JMCNRIzL2JpbGxpbmcvdjEvcmVzZWxsZXIvYW5ub3VuY2VtZW50cy97YW5ub3VuY2VtZW50SWR9MAESzgEKHEdldEJpbGxpbmdHcm91cEFubm91bmNlbWVudHMSNy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwQW5ub3VuY2VtZW50c1JlcXVlc3QaOC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwQW5ub3VuY2VtZW50c1Jlc3BvbnNlIjmC0+STAjMSMS92MS9iaWxsaW5nZ3JvdXAvcmVzZWxsZXIvYW5ub3VuY2VtZW50cy97Z3JvdXBJZH0wARJmCgpHZXRDcmVkaXRzEiUuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENyZWRpdHNSZXF1ZXN0GhouYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWRpdCITgtPkkwINEgsvdjEvY3JlZGl0czABEnYKDkdldENzdlNldHRpbmdzEikuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENzdlNldHRpbmdzUmVxdWVzdBoeLmJsdWVhcGkuYmlsbGluZy52MS5Dc3ZTZXR0aW5nIheC0+STAhESDy92MS9jc3ZzZXR0aW5nczABEqkBChdDcmVhdGVDaGlsZEJpbGxpbmdHcm91cBIyLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QaMy5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbhKqAQoUR2V0Q2hpbGRCaWxsaW5nR3JvdXASLy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0GjAuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2UiL4LT5JMCKRInL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9EqABChZSZWFkQ2hpbGRCaWxsaW5nR3JvdXBzEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRDaGlsZEJpbGxpbmdHcm91cHNSZXF1ZXN0GiUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwIiqC0+STAiQ6ASoiHy92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuOnJlYWQwARK2AQoXVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXASMi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0GjMuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2UiMoLT5JMCLDoBKhonL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9ErMBChdEZWxldGVDaGlsZEJpbGxpbmdHcm91cBIyLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QaMy5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSIvgtPkkwIpKicvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0S8wEKJlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEkEuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUmVxdWVzdBpCLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1Jlc3BvbnNlIkKC0+STAjw6ASoaNy92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9pbnZvaWNlU2V0dGluZ3MS0gEKK1NldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSRi5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiQ4LT5JMCPToBKiI4L3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L3NlcnZpY2VEaXNjb3VudHMS7QEKMlNldENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEk0uYmx1ZWFwaS5iaWxsaW5nLnYxLlNldENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJQgtPkkwJKOgEqIkUvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vc2VydmljZURpc2NvdW50cy9hY2NvdW50czpzZXQS5QEKLFNldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEkcuYmx1ZWFwaS5iaWxsaW5nLnYxLlNldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJUgtPkkwJOOgEqIkkvdjEve3ZlbmRvcn0vYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vY3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEpYCCixHZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZRJHLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QaSC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXNwb25zZSJRgtPkkwJLEkkvdjEve3ZlbmRvcn0vYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vY3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlMAESgAIKK0dldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSRi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaRy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlIkCC0+STAjoSOC92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9zZXJ2aWNlRGlzY291bnRzEosCCjNSZWFkQ2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSTi5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoyLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMiToLT5JMCSBJGL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L3NlcnZpY2VEaXNjb3VudHMvYWNjb3VudHM6cmVhZDABEocBChZCdWxrQ3JlYXRlQmlsbGluZ0dyb3VwEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtDcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIngtPkkwIhOgEqIhwvdjEvYmlsbGluZ2dyb3VwczpidWxrQ3JlYXRlEocBChZCdWxrVXBkYXRlQmlsbGluZ0dyb3VwEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtVcGRhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIngtPkkwIhOgEqIhwvdjEvYmlsbGluZ2dyb3VwczpidWxrVXBkYXRlEr8BChlDcmVhdGVFeGNsdWRlU2VydmljZUVudHJ5EjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0GjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZSI1gtPkkwIvOgEqIiovdjEvYmlsbGluZ2dyb3Vwcy9leGNsdWRlLXNlcnZpY2Utc2V0dGluZ3MSvwEKGVVwZGF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnkSNC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QaNS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlc3BvbnNlIjWC0+STAi86ASoaKi92MS9iaWxsaW5nZ3JvdXBzL2V4Y2x1ZGUtc2VydmljZS1zZXR0aW5ncxK8AQoZRGVsZXRlRXhjbHVkZVNlcnZpY2VFbnRyeRI0LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVFeGNsdWRlU2VydmljZUVudHJ5UmVxdWVzdBo1LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2UiMoLT5JMCLCoqL3YxL2JpbGxpbmdncm91cHMvZXhjbHVkZS1zZXJ2aWNlLXNldHRpbmdzEqoBChNMaXN0RXhjbHVkZVNlcnZpY2VzEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RFeGNsdWRlU2VydmljZXNSZXF1ZXN0Gi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RFeGNsdWRlU2VydmljZXNSZXNwb25zZSIygtPkkwIsEiovdjEvYmlsbGluZ2dyb3Vwcy9leGNsdWRlLXNlcnZpY2Utc2V0dGluZ3MSgAEKDExpc3RTZXJ2aWNlcxInLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0U2VydmljZXNSZXF1ZXN0GiguYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RTZXJ2aWNlc1Jlc3BvbnNlIh2C0+STAhcSFS92MS97dmVuZG9yfS9zZXJ2aWNlcxJ+Cg9CdWxrTGlua0FjY291bnQSKi5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0xpbmtBY2NvdW50UmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iLILT5JMCJjoBKiIhL3YxL2JpbGxpbmdncm91cHM6YnVsa0xpbmtBY2NvdW50En4KE0J1bGtUYWdCaWxsaW5nR3JvdXASLi5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa1RhZ0JpbGxpbmdHcm91cFJlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIiSC0+STAh46ASoiGS92MS9iaWxsaW5nZ3JvdXBzOmJ1bGtUYWcS1wEKIkdldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWcSPS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaPi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlIjKC0+STAiwSKi92MS9iaWxsaW5nZ3JvdXBzL3tpZH0vaW52b2ljZWxheW91dGNvbmZpZxKyAQoiU2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZxI9LmJsdWVhcGkuYmlsbGluZy52MS5TZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI1gtPkkwIvOgEqIiovdjEvYmlsbGluZ2dyb3Vwcy97aWR9L2ludm9pY2VsYXlvdXRjb25maWcSrAEKGUNyZWF0ZUludm9pY2VMYXlvdXRDb25maWcSNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaNS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlIiKC0+STAhw6ASoiFy92MS9pbnZvaWNlbGF5b3V0Y29uZmlnEpIBChlVcGRhdGVJbnZvaWNlTGF5b3V0Q29uZmlnEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IieC0+STAiE6ASoaHC92MS9pbnZvaWNlbGF5b3V0Y29uZmlnL3tpZH0SrQEKF1JlYWRJbnZvaWNlTGF5b3V0Q29uZmlnEjIuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBozLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlIieC0+STAiE6ASoiHC92MS9pbnZvaWNlbGF5b3V0Y29uZmlnOnJlYWQwARK1AQolRGVsZXRlQmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZxJALmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIygtPkkwIsKiovdjEvYmlsbGluZ2dyb3Vwcy97aWR9L2ludm9pY2VsYXlvdXRjb25maWcSjwEKGURlbGV0ZUludm9pY2VMYXlvdXRDb25maWcSNC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHiocL3YxL2ludm9pY2VsYXlvdXRjb25maWcve2lkfRLdAQokTGlzdEludm9pY2VMYXlvdXRDb25maWdCaWxsaW5nR3JvdXBzEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlTGF5b3V0Q29uZmlnQmlsbGluZ0dyb3Vwc1JlcXVlc3QaQC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VMYXlvdXRDb25maWdCaWxsaW5nR3JvdXBzUmVzcG9uc2UiMoLT5JMCLBIqL3YxL2ludm9pY2VsYXlvdXRjb25maWcve2lkfS9iaWxsaW5nZ3JvdXBzGp0BkkGZARJGKEJFVEEpIEJpbGxpbmcgQVBJLiBCYXNlIFVSTDogaHR0cHM6Ly9hcGkuYWxwaGF1cy5jbG91ZC9tL2JsdWUvYmlsbGluZxpPChJTZXJ2aWNlIGRlZmluaXRpb24SOWh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL3RyZWUvbWFpbi9iaWxsaW5nL0JRChljbG91ZC5hbHBoYXVzLmFwaS5iaWxsaW5nQgxCaWxsaW5nUHJvdG9aJmdpdGh1Yi5jb20vYWxwaGF1c2xhYnMvYmx1ZWFwaS9iaWxsaW5nYgZwcm90bzM", [file_api_account, file_api_invoice, file_api_costtag, file_api_ripple_accessgroup, file_api_ripple_billinggroup, file_api_ripple_reseller, file_api_ripple_yearmonth, file_api_ripple_rounding, file_api_ripple_invoicelayout, file_api_ripple_duedate, file_api_ripple_exchangerate, file_api_ripple_untaggedgroup, file_api_ripple_customizedbillingservice, file_api_ripple_v1_invoiceservicediscounts, file_api_ripple_v1_accountsupportplan, file_api_ripple_v1_adjustmententry, file_api_adjustment, file_api_wave_adjustment, file_protos_operation, file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_empty, file_protoc_gen_openapiv2_options_annotations, file_google_protobuf_field_mask, file_google_protobuf_timestamp]);
57
57
 
58
58
  /**
59
59
  * @generated from message blueapi.billing.v1.BillingGroup
@@ -5870,6 +5870,206 @@ export type ExportInvoiceSettingCsvResponse = Message<"blueapi.billing.v1.Export
5870
5870
  export const ExportInvoiceSettingCsvResponseSchema: GenMessage<ExportInvoiceSettingCsvResponse> = /*@__PURE__*/
5871
5871
  messageDesc(file_billing_v1_billing, 148);
5872
5872
 
5873
+ /**
5874
+ * Stores eligible groups for a layer-scoped CSV export.
5875
+ * Invalid type/options/layers return InvalidArgument; denied access returns
5876
+ * PermissionDenied. Capacity overflow returns ResourceExhausted. Read or storage
5877
+ * failures return an error, never partial counts or a usable token.
5878
+ *
5879
+ * @generated from message blueapi.billing.v1.PreviewBillingGroupCsvExportRequest
5880
+ */
5881
+ export type PreviewBillingGroupCsvExportRequest = Message<"blueapi.billing.v1.PreviewBillingGroupCsvExportRequest"> & {
5882
+ /**
5883
+ * Required. Supported CSV exporter.
5884
+ *
5885
+ * @generated from field: blueapi.billing.v1.PreviewBillingGroupCsvExportRequest.ExportType export_type = 1;
5886
+ */
5887
+ exportType: PreviewBillingGroupCsvExportRequest_ExportType;
5888
+
5889
+ /**
5890
+ * Required. Non-empty MSP-wide layers: 0 = Root, 1-4 = children.
5891
+ * Values outside 0-4 are invalid; duplicates count once.
5892
+ * Membership is resolved by the backend, independent of UI filters/flags.
5893
+ *
5894
+ * @generated from field: repeated int32 layers = 2;
5895
+ */
5896
+ layers: number[];
5897
+
5898
+ /**
5899
+ * Optional. Include miscellaneous items. Defaults to false.
5900
+ * True is valid only for EXPORT_TYPE_INVOICE_SETTINGS.
5901
+ *
5902
+ * @generated from field: bool include_miscellaneous = 3;
5903
+ */
5904
+ includeMiscellaneous: boolean;
5905
+ };
5906
+
5907
+ /**
5908
+ * Describes the message blueapi.billing.v1.PreviewBillingGroupCsvExportRequest.
5909
+ * Use `create(PreviewBillingGroupCsvExportRequestSchema)` to create a new message.
5910
+ */
5911
+ export const PreviewBillingGroupCsvExportRequestSchema: GenMessage<PreviewBillingGroupCsvExportRequest> = /*@__PURE__*/
5912
+ messageDesc(file_billing_v1_billing, 149);
5913
+
5914
+ /**
5915
+ * Exporter whose row eligibility rules determine the selection.
5916
+ *
5917
+ * @generated from enum blueapi.billing.v1.PreviewBillingGroupCsvExportRequest.ExportType
5918
+ */
5919
+ export enum PreviewBillingGroupCsvExportRequest_ExportType {
5920
+ /**
5921
+ * Invalid; choose a supported exporter.
5922
+ *
5923
+ * @generated from enum value: EXPORT_TYPE_UNSPECIFIED = 0;
5924
+ */
5925
+ UNSPECIFIED = 0,
5926
+
5927
+ /**
5928
+ * ExportBillingGroupCsv.
5929
+ *
5930
+ * @generated from enum value: EXPORT_TYPE_BILLING_GROUP_DETAIL = 1;
5931
+ */
5932
+ BILLING_GROUP_DETAIL = 1,
5933
+
5934
+ /**
5935
+ * ExportInvoiceSettingCsv, also used for reseller charges.
5936
+ *
5937
+ * @generated from enum value: EXPORT_TYPE_INVOICE_SETTINGS = 2;
5938
+ */
5939
+ INVOICE_SETTINGS = 2,
5940
+
5941
+ /**
5942
+ * ExportBillingGroupInvoiceServiceDiscounts, CSV format.
5943
+ *
5944
+ * @generated from enum value: EXPORT_TYPE_BILLING_GROUP_SERVICE_DISCOUNTS = 3;
5945
+ */
5946
+ BILLING_GROUP_SERVICE_DISCOUNTS = 3,
5947
+
5948
+ /**
5949
+ * ExportAccountInvoiceServiceDiscounts, CSV format.
5950
+ *
5951
+ * @generated from enum value: EXPORT_TYPE_ACCOUNT_SERVICE_DISCOUNTS = 4;
5952
+ */
5953
+ ACCOUNT_SERVICE_DISCOUNTS = 4,
5954
+ }
5955
+
5956
+ /**
5957
+ * Describes the enum blueapi.billing.v1.PreviewBillingGroupCsvExportRequest.ExportType.
5958
+ */
5959
+ export const PreviewBillingGroupCsvExportRequest_ExportTypeSchema: GenEnum<PreviewBillingGroupCsvExportRequest_ExportType> = /*@__PURE__*/
5960
+ enumDesc(file_billing_v1_billing, 149, 0);
5961
+
5962
+ /**
5963
+ * Returned after the complete eligible selection is stored.
5964
+ * Preview generates no CSV or download link.
5965
+ *
5966
+ * @generated from message blueapi.billing.v1.PreviewBillingGroupCsvExportResponse
5967
+ */
5968
+ export type PreviewBillingGroupCsvExportResponse = Message<"blueapi.billing.v1.PreviewBillingGroupCsvExportResponse"> & {
5969
+ /**
5970
+ * Distinct groups contributing CSV rows per requested layer, including zero.
5971
+ * Counts groups once despite multiple vendor/account rows. No extra layers.
5972
+ *
5973
+ * @generated from field: map<int32, int32> layer_counts = 1;
5974
+ */
5975
+ layerCounts: { [key: number]: number };
5976
+
5977
+ /**
5978
+ * Sensitive opaque token bound to the authenticated MSP/principal and export
5979
+ * type/options. Single-use on successful export; contains no group IDs.
5980
+ * Do not log it or send it in URLs.
5981
+ *
5982
+ * @generated from field: string preview_token = 2;
5983
+ */
5984
+ previewToken: string;
5985
+
5986
+ /**
5987
+ * Acceptance expiry: 10 minutes after preview completion.
5988
+ * Storage cleanup is separate; accepted exports may finish after this time.
5989
+ *
5990
+ * @generated from field: google.protobuf.Timestamp expires_at = 3;
5991
+ */
5992
+ expiresAt?: Timestamp;
5993
+ };
5994
+
5995
+ /**
5996
+ * Describes the message blueapi.billing.v1.PreviewBillingGroupCsvExportResponse.
5997
+ * Use `create(PreviewBillingGroupCsvExportResponseSchema)` to create a new message.
5998
+ */
5999
+ export const PreviewBillingGroupCsvExportResponseSchema: GenMessage<PreviewBillingGroupCsvExportResponse> = /*@__PURE__*/
6000
+ messageDesc(file_billing_v1_billing, 150);
6001
+
6002
+ /**
6003
+ * Exports saved IDs/layers with current settings and authorization checks.
6004
+ * Does not rediscover membership. Missing/expired/consumed tokens or deleted/
6005
+ * ineligible groups return FailedPrecondition; lost access returns PermissionDenied.
6006
+ * Concurrent claims return Aborted. Failed exports may retry before token expiry.
6007
+ * Confirm durable consumption before returning a link, then delete the selection.
6008
+ * Persistence/write/upload/signing failures must not return a success link.
6009
+ * Default request budget: 34 minutes (2 preparation + 30 export + 2 response).
6010
+ * Pre-claim is manifest metadata only; chunk/group checks run after the claim.
6011
+ * Cap accepted work at min(claim time + 30 minutes, caller deadline - 2 minutes).
6012
+ * Honor shorter caller deadlines and cancellation; exhausted preparation fails
6013
+ * with DeadlineExceeded before claiming. Claim release/cleanup use a detached
6014
+ * bounded context. Detailed lease/cleanup rules are in OpenSpec.
6015
+ * Existing export RPCs remain supported without preview tokens.
6016
+ *
6017
+ * @generated from message blueapi.billing.v1.ExportPreviewedBillingGroupCsvRequest
6018
+ */
6019
+ export type ExportPreviewedBillingGroupCsvRequest = Message<"blueapi.billing.v1.ExportPreviewedBillingGroupCsvRequest"> & {
6020
+ /**
6021
+ * Required. Token from PreviewBillingGroupCsvExport, sent in the request body.
6022
+ *
6023
+ * @generated from field: string preview_token = 1;
6024
+ */
6025
+ previewToken: string;
6026
+
6027
+ /**
6028
+ * Required. Non-empty subset of previewed layers, 0 = Root and 1-4 = children.
6029
+ * Invalid/uncovered values return InvalidArgument; duplicates count once.
6030
+ * Root uses saved root IDs. A zero-group selection returns FailedPrecondition.
6031
+ *
6032
+ * @generated from field: repeated int32 layers = 2;
6033
+ */
6034
+ layers: number[];
6035
+
6036
+ /**
6037
+ * Optional. en or ja; empty uses the user's language. Other values are invalid.
6038
+ * Does not change the selection or token-bound options.
6039
+ *
6040
+ * @generated from field: string language = 3;
6041
+ */
6042
+ language: string;
6043
+ };
6044
+
6045
+ /**
6046
+ * Describes the message blueapi.billing.v1.ExportPreviewedBillingGroupCsvRequest.
6047
+ * Use `create(ExportPreviewedBillingGroupCsvRequestSchema)` to create a new message.
6048
+ */
6049
+ export const ExportPreviewedBillingGroupCsvRequestSchema: GenMessage<ExportPreviewedBillingGroupCsvRequest> = /*@__PURE__*/
6050
+ messageDesc(file_billing_v1_billing, 151);
6051
+
6052
+ /**
6053
+ * @generated from message blueapi.billing.v1.ExportPreviewedBillingGroupCsvResponse
6054
+ */
6055
+ export type ExportPreviewedBillingGroupCsvResponse = Message<"blueapi.billing.v1.ExportPreviewedBillingGroupCsvResponse"> & {
6056
+ /**
6057
+ * Signed CSV link after successful artifact creation and durable consumption.
6058
+ * Includes the localized Layer column, even for Root only. The saved selection
6059
+ * is deleted; another export needs a new preview. Link expiry is independent.
6060
+ *
6061
+ * @generated from field: string download_link = 1;
6062
+ */
6063
+ downloadLink: string;
6064
+ };
6065
+
6066
+ /**
6067
+ * Describes the message blueapi.billing.v1.ExportPreviewedBillingGroupCsvResponse.
6068
+ * Use `create(ExportPreviewedBillingGroupCsvResponseSchema)` to create a new message.
6069
+ */
6070
+ export const ExportPreviewedBillingGroupCsvResponseSchema: GenMessage<ExportPreviewedBillingGroupCsvResponse> = /*@__PURE__*/
6071
+ messageDesc(file_billing_v1_billing, 152);
6072
+
5873
6073
  /**
5874
6074
  * @generated from message blueapi.billing.v1.GetBillingGroupInvoiceServiceDiscountsRequest
5875
6075
  */
@@ -5885,7 +6085,7 @@ export type GetBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.bil
5885
6085
  * Use `create(GetBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
5886
6086
  */
5887
6087
  export const GetBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<GetBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
5888
- messageDesc(file_billing_v1_billing, 149);
6088
+ messageDesc(file_billing_v1_billing, 153);
5889
6089
 
5890
6090
  /**
5891
6091
  * @generated from message blueapi.billing.v1.GetBillingGroupInvoiceServiceDiscountsResponse
@@ -5904,7 +6104,7 @@ export type GetBillingGroupInvoiceServiceDiscountsResponse = Message<"blueapi.bi
5904
6104
  * Use `create(GetBillingGroupInvoiceServiceDiscountsResponseSchema)` to create a new message.
5905
6105
  */
5906
6106
  export const GetBillingGroupInvoiceServiceDiscountsResponseSchema: GenMessage<GetBillingGroupInvoiceServiceDiscountsResponse> = /*@__PURE__*/
5907
- messageDesc(file_billing_v1_billing, 150);
6107
+ messageDesc(file_billing_v1_billing, 154);
5908
6108
 
5909
6109
  /**
5910
6110
  * @generated from message blueapi.billing.v1.AddBillingGroupCustomFieldRequest
@@ -5930,7 +6130,7 @@ export type AddBillingGroupCustomFieldRequest = Message<"blueapi.billing.v1.AddB
5930
6130
  * Use `create(AddBillingGroupCustomFieldRequestSchema)` to create a new message.
5931
6131
  */
5932
6132
  export const AddBillingGroupCustomFieldRequestSchema: GenMessage<AddBillingGroupCustomFieldRequest> = /*@__PURE__*/
5933
- messageDesc(file_billing_v1_billing, 151);
6133
+ messageDesc(file_billing_v1_billing, 155);
5934
6134
 
5935
6135
  /**
5936
6136
  * @generated from message blueapi.billing.v1.DeleteBillingGroupCustomFieldRequest
@@ -5956,7 +6156,7 @@ export type DeleteBillingGroupCustomFieldRequest = Message<"blueapi.billing.v1.D
5956
6156
  * Use `create(DeleteBillingGroupCustomFieldRequestSchema)` to create a new message.
5957
6157
  */
5958
6158
  export const DeleteBillingGroupCustomFieldRequestSchema: GenMessage<DeleteBillingGroupCustomFieldRequest> = /*@__PURE__*/
5959
- messageDesc(file_billing_v1_billing, 152);
6159
+ messageDesc(file_billing_v1_billing, 156);
5960
6160
 
5961
6161
  /**
5962
6162
  * @generated from message blueapi.billing.v1.AddAccountToBillingGroupRequest
@@ -5989,7 +6189,7 @@ export type AddAccountToBillingGroupRequest = Message<"blueapi.billing.v1.AddAcc
5989
6189
  * Use `create(AddAccountToBillingGroupRequestSchema)` to create a new message.
5990
6190
  */
5991
6191
  export const AddAccountToBillingGroupRequestSchema: GenMessage<AddAccountToBillingGroupRequest> = /*@__PURE__*/
5992
- messageDesc(file_billing_v1_billing, 153);
6192
+ messageDesc(file_billing_v1_billing, 157);
5993
6193
 
5994
6194
  /**
5995
6195
  * New message for account details
@@ -6031,7 +6231,7 @@ export type AccountToAdd = Message<"blueapi.billing.v1.AccountToAdd"> & {
6031
6231
  * Use `create(AccountToAddSchema)` to create a new message.
6032
6232
  */
6033
6233
  export const AccountToAddSchema: GenMessage<AccountToAdd> = /*@__PURE__*/
6034
- messageDesc(file_billing_v1_billing, 154);
6234
+ messageDesc(file_billing_v1_billing, 158);
6035
6235
 
6036
6236
  /**
6037
6237
  * @generated from message blueapi.billing.v1.AddTagsToBillingGroupRequest
@@ -6071,7 +6271,7 @@ export type AddTagsToBillingGroupRequest = Message<"blueapi.billing.v1.AddTagsTo
6071
6271
  * Use `create(AddTagsToBillingGroupRequestSchema)` to create a new message.
6072
6272
  */
6073
6273
  export const AddTagsToBillingGroupRequestSchema: GenMessage<AddTagsToBillingGroupRequest> = /*@__PURE__*/
6074
- messageDesc(file_billing_v1_billing, 155);
6274
+ messageDesc(file_billing_v1_billing, 159);
6075
6275
 
6076
6276
  /**
6077
6277
  * Settings for a specific customer account for AddTagsToBillingGroup
@@ -6099,7 +6299,7 @@ export type TagSetting = Message<"blueapi.billing.v1.TagSetting"> & {
6099
6299
  * Use `create(TagSettingSchema)` to create a new message.
6100
6300
  */
6101
6301
  export const TagSettingSchema: GenMessage<TagSetting> = /*@__PURE__*/
6102
- messageDesc(file_billing_v1_billing, 156);
6302
+ messageDesc(file_billing_v1_billing, 160);
6103
6303
 
6104
6304
  /**
6105
6305
  * Individual tag definition for AddTagsToBillingGroup
@@ -6134,7 +6334,7 @@ export type Tag = Message<"blueapi.billing.v1.Tag"> & {
6134
6334
  * Use `create(TagSchema)` to create a new message.
6135
6335
  */
6136
6336
  export const TagSchema: GenMessage<Tag> = /*@__PURE__*/
6137
- messageDesc(file_billing_v1_billing, 157);
6337
+ messageDesc(file_billing_v1_billing, 161);
6138
6338
 
6139
6339
  /**
6140
6340
  * Non-tag settings for a billing group for AddTagsToBillingGroup
@@ -6169,7 +6369,7 @@ export type NonTagSetting = Message<"blueapi.billing.v1.NonTagSetting"> & {
6169
6369
  * Use `create(NonTagSettingSchema)` to create a new message.
6170
6370
  */
6171
6371
  export const NonTagSettingSchema: GenMessage<NonTagSetting> = /*@__PURE__*/
6172
- messageDesc(file_billing_v1_billing, 158);
6372
+ messageDesc(file_billing_v1_billing, 162);
6173
6373
 
6174
6374
  /**
6175
6375
  * Response message for tag invoice setting operation for AddTagsToBillingGroup
@@ -6197,7 +6397,7 @@ export type SaveTagInvoiceSettingResponse = Message<"blueapi.billing.v1.SaveTagI
6197
6397
  * Use `create(SaveTagInvoiceSettingResponseSchema)` to create a new message.
6198
6398
  */
6199
6399
  export const SaveTagInvoiceSettingResponseSchema: GenMessage<SaveTagInvoiceSettingResponse> = /*@__PURE__*/
6200
- messageDesc(file_billing_v1_billing, 159);
6400
+ messageDesc(file_billing_v1_billing, 163);
6201
6401
 
6202
6402
  /**
6203
6403
  * Request message for updating non-tag group settings for a billing group for UpdateNonTagGroupToBillingGroup
@@ -6232,7 +6432,7 @@ export type UpdateNonTagGroupToBillingGroupRequest = Message<"blueapi.billing.v1
6232
6432
  * Use `create(UpdateNonTagGroupToBillingGroupRequestSchema)` to create a new message.
6233
6433
  */
6234
6434
  export const UpdateNonTagGroupToBillingGroupRequestSchema: GenMessage<UpdateNonTagGroupToBillingGroupRequest> = /*@__PURE__*/
6235
- messageDesc(file_billing_v1_billing, 160);
6435
+ messageDesc(file_billing_v1_billing, 164);
6236
6436
 
6237
6437
  /**
6238
6438
  * Individual non-tag group setting for UpdateNonTagGroupToBillingGroup
@@ -6267,7 +6467,7 @@ export type NonTagGroupSetting = Message<"blueapi.billing.v1.NonTagGroupSetting"
6267
6467
  * Use `create(NonTagGroupSettingSchema)` to create a new message.
6268
6468
  */
6269
6469
  export const NonTagGroupSettingSchema: GenMessage<NonTagGroupSetting> = /*@__PURE__*/
6270
- messageDesc(file_billing_v1_billing, 161);
6470
+ messageDesc(file_billing_v1_billing, 165);
6271
6471
 
6272
6472
  /**
6273
6473
  * @generated from message blueapi.billing.v1.SaveInvoiceSettingsRequest
@@ -6317,7 +6517,7 @@ export type SaveInvoiceSettingsRequest = Message<"blueapi.billing.v1.SaveInvoice
6317
6517
  * Use `create(SaveInvoiceSettingsRequestSchema)` to create a new message.
6318
6518
  */
6319
6519
  export const SaveInvoiceSettingsRequestSchema: GenMessage<SaveInvoiceSettingsRequest> = /*@__PURE__*/
6320
- messageDesc(file_billing_v1_billing, 162);
6520
+ messageDesc(file_billing_v1_billing, 166);
6321
6521
 
6322
6522
  /**
6323
6523
  * @generated from message blueapi.billing.v1.InvoiceSettings
@@ -6457,7 +6657,7 @@ export type InvoiceSettings = Message<"blueapi.billing.v1.InvoiceSettings"> & {
6457
6657
  * Use `create(InvoiceSettingsSchema)` to create a new message.
6458
6658
  */
6459
6659
  export const InvoiceSettingsSchema: GenMessage<InvoiceSettings> = /*@__PURE__*/
6460
- messageDesc(file_billing_v1_billing, 163);
6660
+ messageDesc(file_billing_v1_billing, 167);
6461
6661
 
6462
6662
  /**
6463
6663
  * @generated from message blueapi.billing.v1.BasicInformation
@@ -6529,7 +6729,7 @@ export type BasicInformation = Message<"blueapi.billing.v1.BasicInformation"> &
6529
6729
  * Use `create(BasicInformationSchema)` to create a new message.
6530
6730
  */
6531
6731
  export const BasicInformationSchema: GenMessage<BasicInformation> = /*@__PURE__*/
6532
- messageDesc(file_billing_v1_billing, 164);
6732
+ messageDesc(file_billing_v1_billing, 168);
6533
6733
 
6534
6734
  /**
6535
6735
  * @generated from message blueapi.billing.v1.UpdateBillingGroupBasicInformationRequest
@@ -6551,7 +6751,7 @@ export type UpdateBillingGroupBasicInformationRequest = Message<"blueapi.billing
6551
6751
  * Use `create(UpdateBillingGroupBasicInformationRequestSchema)` to create a new message.
6552
6752
  */
6553
6753
  export const UpdateBillingGroupBasicInformationRequestSchema: GenMessage<UpdateBillingGroupBasicInformationRequest> = /*@__PURE__*/
6554
- messageDesc(file_billing_v1_billing, 165);
6754
+ messageDesc(file_billing_v1_billing, 169);
6555
6755
 
6556
6756
  /**
6557
6757
  * @generated from message blueapi.billing.v1.UpdateBillingGroupCustomFieldsRequest
@@ -6573,7 +6773,7 @@ export type UpdateBillingGroupCustomFieldsRequest = Message<"blueapi.billing.v1.
6573
6773
  * Use `create(UpdateBillingGroupCustomFieldsRequestSchema)` to create a new message.
6574
6774
  */
6575
6775
  export const UpdateBillingGroupCustomFieldsRequestSchema: GenMessage<UpdateBillingGroupCustomFieldsRequest> = /*@__PURE__*/
6576
- messageDesc(file_billing_v1_billing, 166);
6776
+ messageDesc(file_billing_v1_billing, 170);
6577
6777
 
6578
6778
  /**
6579
6779
  * @generated from message blueapi.billing.v1.UpdateBillingGroupFreeFormatRequest
@@ -6600,7 +6800,7 @@ export type UpdateBillingGroupFreeFormatRequest = Message<"blueapi.billing.v1.Up
6600
6800
  * Use `create(UpdateBillingGroupFreeFormatRequestSchema)` to create a new message.
6601
6801
  */
6602
6802
  export const UpdateBillingGroupFreeFormatRequestSchema: GenMessage<UpdateBillingGroupFreeFormatRequest> = /*@__PURE__*/
6603
- messageDesc(file_billing_v1_billing, 167);
6803
+ messageDesc(file_billing_v1_billing, 171);
6604
6804
 
6605
6805
  /**
6606
6806
  * @generated from message blueapi.billing.v1.UpdateBillingGroupLinkedResourcesRequest
@@ -6653,7 +6853,7 @@ export type UpdateBillingGroupLinkedResourcesRequest = Message<"blueapi.billing.
6653
6853
  * Use `create(UpdateBillingGroupLinkedResourcesRequestSchema)` to create a new message.
6654
6854
  */
6655
6855
  export const UpdateBillingGroupLinkedResourcesRequestSchema: GenMessage<UpdateBillingGroupLinkedResourcesRequest> = /*@__PURE__*/
6656
- messageDesc(file_billing_v1_billing, 168);
6856
+ messageDesc(file_billing_v1_billing, 172);
6657
6857
 
6658
6858
  /**
6659
6859
  * @generated from message blueapi.billing.v1.UpdateBillingGroupInvoiceSettingsRequest
@@ -6692,7 +6892,7 @@ export type UpdateBillingGroupInvoiceSettingsRequest = Message<"blueapi.billing.
6692
6892
  * Use `create(UpdateBillingGroupInvoiceSettingsRequestSchema)` to create a new message.
6693
6893
  */
6694
6894
  export const UpdateBillingGroupInvoiceSettingsRequestSchema: GenMessage<UpdateBillingGroupInvoiceSettingsRequest> = /*@__PURE__*/
6695
- messageDesc(file_billing_v1_billing, 169);
6895
+ messageDesc(file_billing_v1_billing, 173);
6696
6896
 
6697
6897
  /**
6698
6898
  * @generated from message blueapi.billing.v1.UpdateBillingGroupResellerChargesRequest
@@ -6719,7 +6919,7 @@ export type UpdateBillingGroupResellerChargesRequest = Message<"blueapi.billing.
6719
6919
  * Use `create(UpdateBillingGroupResellerChargesRequestSchema)` to create a new message.
6720
6920
  */
6721
6921
  export const UpdateBillingGroupResellerChargesRequestSchema: GenMessage<UpdateBillingGroupResellerChargesRequest> = /*@__PURE__*/
6722
- messageDesc(file_billing_v1_billing, 170);
6922
+ messageDesc(file_billing_v1_billing, 174);
6723
6923
 
6724
6924
  /**
6725
6925
  * @generated from message blueapi.billing.v1.UpdateBillingGroupAdditionalChargesRequest
@@ -6753,7 +6953,7 @@ export type UpdateBillingGroupAdditionalChargesRequest = Message<"blueapi.billin
6753
6953
  * Use `create(UpdateBillingGroupAdditionalChargesRequestSchema)` to create a new message.
6754
6954
  */
6755
6955
  export const UpdateBillingGroupAdditionalChargesRequestSchema: GenMessage<UpdateBillingGroupAdditionalChargesRequest> = /*@__PURE__*/
6756
- messageDesc(file_billing_v1_billing, 171);
6956
+ messageDesc(file_billing_v1_billing, 175);
6757
6957
 
6758
6958
  /**
6759
6959
  * CustomizedBillingServiceBillingSetting
@@ -6790,7 +6990,7 @@ export type UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceB
6790
6990
  * Use `create(UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceBillingSettingSchema)` to create a new message.
6791
6991
  */
6792
6992
  export const UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceBillingSettingSchema: GenMessage<UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceBillingSetting> = /*@__PURE__*/
6793
- messageDesc(file_billing_v1_billing, 171, 0);
6993
+ messageDesc(file_billing_v1_billing, 175, 0);
6794
6994
 
6795
6995
  /**
6796
6996
  * @generated from message blueapi.billing.v1.DeleteBillingGroupRequest
@@ -6807,7 +7007,7 @@ export type DeleteBillingGroupRequest = Message<"blueapi.billing.v1.DeleteBillin
6807
7007
  * Use `create(DeleteBillingGroupRequestSchema)` to create a new message.
6808
7008
  */
6809
7009
  export const DeleteBillingGroupRequestSchema: GenMessage<DeleteBillingGroupRequest> = /*@__PURE__*/
6810
- messageDesc(file_billing_v1_billing, 172);
7010
+ messageDesc(file_billing_v1_billing, 176);
6811
7011
 
6812
7012
  /**
6813
7013
  * Request message for the GetBillingGroupAccountSupportPlan rpc.
@@ -6835,7 +7035,7 @@ export type GetBillingGroupAccountSupportPlanRequest = Message<"blueapi.billing.
6835
7035
  * Use `create(GetBillingGroupAccountSupportPlanRequestSchema)` to create a new message.
6836
7036
  */
6837
7037
  export const GetBillingGroupAccountSupportPlanRequestSchema: GenMessage<GetBillingGroupAccountSupportPlanRequest> = /*@__PURE__*/
6838
- messageDesc(file_billing_v1_billing, 173);
7038
+ messageDesc(file_billing_v1_billing, 177);
6839
7039
 
6840
7040
  /**
6841
7041
  * Response message for the GetBillingGroupAccountSupportPlan rpc.
@@ -6877,7 +7077,7 @@ export type GetBillingGroupAccountSupportPlanResponse = Message<"blueapi.billing
6877
7077
  * Use `create(GetBillingGroupAccountSupportPlanResponseSchema)` to create a new message.
6878
7078
  */
6879
7079
  export const GetBillingGroupAccountSupportPlanResponseSchema: GenMessage<GetBillingGroupAccountSupportPlanResponse> = /*@__PURE__*/
6880
- messageDesc(file_billing_v1_billing, 174);
7080
+ messageDesc(file_billing_v1_billing, 178);
6881
7081
 
6882
7082
  /**
6883
7083
  * Request message for the UpdateBillingGroupAccountSupportPlan rpc.
@@ -6927,7 +7127,7 @@ export type UpdateBillingGroupAccountSupportPlanRequest = Message<"blueapi.billi
6927
7127
  * Use `create(UpdateBillingGroupAccountSupportPlanRequestSchema)` to create a new message.
6928
7128
  */
6929
7129
  export const UpdateBillingGroupAccountSupportPlanRequestSchema: GenMessage<UpdateBillingGroupAccountSupportPlanRequest> = /*@__PURE__*/
6930
- messageDesc(file_billing_v1_billing, 175);
7130
+ messageDesc(file_billing_v1_billing, 179);
6931
7131
 
6932
7132
  /**
6933
7133
  * @generated from message blueapi.billing.v1.GetAnnouncementsRequest
@@ -6946,7 +7146,7 @@ export type GetAnnouncementsRequest = Message<"blueapi.billing.v1.GetAnnouncemen
6946
7146
  * Use `create(GetAnnouncementsRequestSchema)` to create a new message.
6947
7147
  */
6948
7148
  export const GetAnnouncementsRequestSchema: GenMessage<GetAnnouncementsRequest> = /*@__PURE__*/
6949
- messageDesc(file_billing_v1_billing, 176);
7149
+ messageDesc(file_billing_v1_billing, 180);
6950
7150
 
6951
7151
  /**
6952
7152
  * @generated from message blueapi.billing.v1.CreateAnnouncementRequest
@@ -7014,7 +7214,7 @@ export type CreateAnnouncementRequest = Message<"blueapi.billing.v1.CreateAnnoun
7014
7214
  * Use `create(CreateAnnouncementRequestSchema)` to create a new message.
7015
7215
  */
7016
7216
  export const CreateAnnouncementRequestSchema: GenMessage<CreateAnnouncementRequest> = /*@__PURE__*/
7017
- messageDesc(file_billing_v1_billing, 177);
7217
+ messageDesc(file_billing_v1_billing, 181);
7018
7218
 
7019
7219
  /**
7020
7220
  * @generated from message blueapi.billing.v1.UpdateAnnouncementRequest
@@ -7038,7 +7238,7 @@ export type UpdateAnnouncementRequest = Message<"blueapi.billing.v1.UpdateAnnoun
7038
7238
  * Use `create(UpdateAnnouncementRequestSchema)` to create a new message.
7039
7239
  */
7040
7240
  export const UpdateAnnouncementRequestSchema: GenMessage<UpdateAnnouncementRequest> = /*@__PURE__*/
7041
- messageDesc(file_billing_v1_billing, 178);
7241
+ messageDesc(file_billing_v1_billing, 182);
7042
7242
 
7043
7243
  /**
7044
7244
  * @generated from message blueapi.billing.v1.UpdateAnnouncementsStatusRequest
@@ -7060,7 +7260,7 @@ export type UpdateAnnouncementsStatusRequest = Message<"blueapi.billing.v1.Updat
7060
7260
  * Use `create(UpdateAnnouncementsStatusRequestSchema)` to create a new message.
7061
7261
  */
7062
7262
  export const UpdateAnnouncementsStatusRequestSchema: GenMessage<UpdateAnnouncementsStatusRequest> = /*@__PURE__*/
7063
- messageDesc(file_billing_v1_billing, 179);
7263
+ messageDesc(file_billing_v1_billing, 183);
7064
7264
 
7065
7265
  /**
7066
7266
  * @generated from message blueapi.billing.v1.UpdateAnnouncementDateRequest
@@ -7084,7 +7284,7 @@ export type UpdateAnnouncementDateRequest = Message<"blueapi.billing.v1.UpdateAn
7084
7284
  * Use `create(UpdateAnnouncementDateRequestSchema)` to create a new message.
7085
7285
  */
7086
7286
  export const UpdateAnnouncementDateRequestSchema: GenMessage<UpdateAnnouncementDateRequest> = /*@__PURE__*/
7087
- messageDesc(file_billing_v1_billing, 180);
7287
+ messageDesc(file_billing_v1_billing, 184);
7088
7288
 
7089
7289
  /**
7090
7290
  * @generated from message blueapi.billing.v1.DeleteAnnouncementRequest
@@ -7103,7 +7303,7 @@ export type DeleteAnnouncementRequest = Message<"blueapi.billing.v1.DeleteAnnoun
7103
7303
  * Use `create(DeleteAnnouncementRequestSchema)` to create a new message.
7104
7304
  */
7105
7305
  export const DeleteAnnouncementRequestSchema: GenMessage<DeleteAnnouncementRequest> = /*@__PURE__*/
7106
- messageDesc(file_billing_v1_billing, 181);
7306
+ messageDesc(file_billing_v1_billing, 185);
7107
7307
 
7108
7308
  /**
7109
7309
  * @generated from message blueapi.billing.v1.Announcement
@@ -7180,7 +7380,7 @@ export type Announcement = Message<"blueapi.billing.v1.Announcement"> & {
7180
7380
  * Use `create(AnnouncementSchema)` to create a new message.
7181
7381
  */
7182
7382
  export const AnnouncementSchema: GenMessage<Announcement> = /*@__PURE__*/
7183
- messageDesc(file_billing_v1_billing, 182);
7383
+ messageDesc(file_billing_v1_billing, 186);
7184
7384
 
7185
7385
  /**
7186
7386
  * @generated from message blueapi.billing.v1.GetBillingGroupAnnouncementsRequest
@@ -7199,7 +7399,7 @@ export type GetBillingGroupAnnouncementsRequest = Message<"blueapi.billing.v1.Ge
7199
7399
  * Use `create(GetBillingGroupAnnouncementsRequestSchema)` to create a new message.
7200
7400
  */
7201
7401
  export const GetBillingGroupAnnouncementsRequestSchema: GenMessage<GetBillingGroupAnnouncementsRequest> = /*@__PURE__*/
7202
- messageDesc(file_billing_v1_billing, 183);
7402
+ messageDesc(file_billing_v1_billing, 187);
7203
7403
 
7204
7404
  /**
7205
7405
  * @generated from message blueapi.billing.v1.GetBillingGroupAnnouncementsResponse
@@ -7231,7 +7431,7 @@ export type GetBillingGroupAnnouncementsResponse = Message<"blueapi.billing.v1.G
7231
7431
  * Use `create(GetBillingGroupAnnouncementsResponseSchema)` to create a new message.
7232
7432
  */
7233
7433
  export const GetBillingGroupAnnouncementsResponseSchema: GenMessage<GetBillingGroupAnnouncementsResponse> = /*@__PURE__*/
7234
- messageDesc(file_billing_v1_billing, 184);
7434
+ messageDesc(file_billing_v1_billing, 188);
7235
7435
 
7236
7436
  /**
7237
7437
  * @generated from message blueapi.billing.v1.GetCreditsRequest
@@ -7244,7 +7444,7 @@ export type GetCreditsRequest = Message<"blueapi.billing.v1.GetCreditsRequest">
7244
7444
  * Use `create(GetCreditsRequestSchema)` to create a new message.
7245
7445
  */
7246
7446
  export const GetCreditsRequestSchema: GenMessage<GetCreditsRequest> = /*@__PURE__*/
7247
- messageDesc(file_billing_v1_billing, 185);
7447
+ messageDesc(file_billing_v1_billing, 189);
7248
7448
 
7249
7449
  /**
7250
7450
  * @generated from message blueapi.billing.v1.Credit
@@ -7306,7 +7506,7 @@ export type Credit = Message<"blueapi.billing.v1.Credit"> & {
7306
7506
  * Use `create(CreditSchema)` to create a new message.
7307
7507
  */
7308
7508
  export const CreditSchema: GenMessage<Credit> = /*@__PURE__*/
7309
- messageDesc(file_billing_v1_billing, 186);
7509
+ messageDesc(file_billing_v1_billing, 190);
7310
7510
 
7311
7511
  /**
7312
7512
  * @generated from message blueapi.billing.v1.GetCsvSettingsRequest
@@ -7319,7 +7519,7 @@ export type GetCsvSettingsRequest = Message<"blueapi.billing.v1.GetCsvSettingsRe
7319
7519
  * Use `create(GetCsvSettingsRequestSchema)` to create a new message.
7320
7520
  */
7321
7521
  export const GetCsvSettingsRequestSchema: GenMessage<GetCsvSettingsRequest> = /*@__PURE__*/
7322
- messageDesc(file_billing_v1_billing, 187);
7522
+ messageDesc(file_billing_v1_billing, 191);
7323
7523
 
7324
7524
  /**
7325
7525
  * @generated from message blueapi.billing.v1.CsvSetting
@@ -7346,7 +7546,7 @@ export type CsvSetting = Message<"blueapi.billing.v1.CsvSetting"> & {
7346
7546
  * Use `create(CsvSettingSchema)` to create a new message.
7347
7547
  */
7348
7548
  export const CsvSettingSchema: GenMessage<CsvSetting> = /*@__PURE__*/
7349
- messageDesc(file_billing_v1_billing, 188);
7549
+ messageDesc(file_billing_v1_billing, 192);
7350
7550
 
7351
7551
  /**
7352
7552
  * @generated from message blueapi.billing.v1.CsvSetting.Column
@@ -7378,7 +7578,7 @@ export type CsvSetting_Column = Message<"blueapi.billing.v1.CsvSetting.Column">
7378
7578
  * Use `create(CsvSetting_ColumnSchema)` to create a new message.
7379
7579
  */
7380
7580
  export const CsvSetting_ColumnSchema: GenMessage<CsvSetting_Column> = /*@__PURE__*/
7381
- messageDesc(file_billing_v1_billing, 188, 0);
7581
+ messageDesc(file_billing_v1_billing, 192, 0);
7382
7582
 
7383
7583
  /**
7384
7584
  * @generated from message blueapi.billing.v1.UpdateInvoiceExchangeRateRequest
@@ -7419,7 +7619,7 @@ export type UpdateInvoiceExchangeRateRequest = Message<"blueapi.billing.v1.Updat
7419
7619
  * Use `create(UpdateInvoiceExchangeRateRequestSchema)` to create a new message.
7420
7620
  */
7421
7621
  export const UpdateInvoiceExchangeRateRequestSchema: GenMessage<UpdateInvoiceExchangeRateRequest> = /*@__PURE__*/
7422
- messageDesc(file_billing_v1_billing, 189);
7622
+ messageDesc(file_billing_v1_billing, 193);
7423
7623
 
7424
7624
  /**
7425
7625
  * @generated from message blueapi.billing.v1.ConvertInvoiceToPdfRequest
@@ -7484,7 +7684,7 @@ export type ConvertInvoiceToPdfRequest = Message<"blueapi.billing.v1.ConvertInvo
7484
7684
  * Use `create(ConvertInvoiceToPdfRequestSchema)` to create a new message.
7485
7685
  */
7486
7686
  export const ConvertInvoiceToPdfRequestSchema: GenMessage<ConvertInvoiceToPdfRequest> = /*@__PURE__*/
7487
- messageDesc(file_billing_v1_billing, 190);
7687
+ messageDesc(file_billing_v1_billing, 194);
7488
7688
 
7489
7689
  /**
7490
7690
  * @generated from message blueapi.billing.v1.ConvertInvoiceToPdfResponse
@@ -7521,7 +7721,7 @@ export type ConvertInvoiceToPdfResponse = Message<"blueapi.billing.v1.ConvertInv
7521
7721
  * Use `create(ConvertInvoiceToPdfResponseSchema)` to create a new message.
7522
7722
  */
7523
7723
  export const ConvertInvoiceToPdfResponseSchema: GenMessage<ConvertInvoiceToPdfResponse> = /*@__PURE__*/
7524
- messageDesc(file_billing_v1_billing, 191);
7724
+ messageDesc(file_billing_v1_billing, 195);
7525
7725
 
7526
7726
  /**
7527
7727
  * Request message for the Billing.ListBillingGroupsPaginated rpc.
@@ -7612,7 +7812,7 @@ export type ListBillingGroupsPaginatedRequest = Message<"blueapi.billing.v1.List
7612
7812
  * Use `create(ListBillingGroupsPaginatedRequestSchema)` to create a new message.
7613
7813
  */
7614
7814
  export const ListBillingGroupsPaginatedRequestSchema: GenMessage<ListBillingGroupsPaginatedRequest> = /*@__PURE__*/
7615
- messageDesc(file_billing_v1_billing, 192);
7815
+ messageDesc(file_billing_v1_billing, 196);
7616
7816
 
7617
7817
  /**
7618
7818
  * Response row for paginated billing groups table.
@@ -7668,7 +7868,7 @@ export type BillingGroupListItem = Message<"blueapi.billing.v1.BillingGroupListI
7668
7868
  * Use `create(BillingGroupListItemSchema)` to create a new message.
7669
7869
  */
7670
7870
  export const BillingGroupListItemSchema: GenMessage<BillingGroupListItem> = /*@__PURE__*/
7671
- messageDesc(file_billing_v1_billing, 193);
7871
+ messageDesc(file_billing_v1_billing, 197);
7672
7872
 
7673
7873
  /**
7674
7874
  * Vendor availability entries.
@@ -7696,7 +7896,7 @@ export type BillingGroupListItem_BillingGroupVendor = Message<"blueapi.billing.v
7696
7896
  * Use `create(BillingGroupListItem_BillingGroupVendorSchema)` to create a new message.
7697
7897
  */
7698
7898
  export const BillingGroupListItem_BillingGroupVendorSchema: GenMessage<BillingGroupListItem_BillingGroupVendor> = /*@__PURE__*/
7699
- messageDesc(file_billing_v1_billing, 193, 0);
7899
+ messageDesc(file_billing_v1_billing, 197, 0);
7700
7900
 
7701
7901
  /**
7702
7902
  * Response message for the Billing.ListBillingGroupsPaginated rpc.
@@ -7745,7 +7945,7 @@ export type ListBillingGroupsPaginatedResponse = Message<"blueapi.billing.v1.Lis
7745
7945
  * Use `create(ListBillingGroupsPaginatedResponseSchema)` to create a new message.
7746
7946
  */
7747
7947
  export const ListBillingGroupsPaginatedResponseSchema: GenMessage<ListBillingGroupsPaginatedResponse> = /*@__PURE__*/
7748
- messageDesc(file_billing_v1_billing, 194);
7948
+ messageDesc(file_billing_v1_billing, 198);
7749
7949
 
7750
7950
  /**
7751
7951
  * @generated from message blueapi.billing.v1.ChildBillingGroupBasicInformation
@@ -7799,7 +7999,7 @@ export type ChildBillingGroupBasicInformation = Message<"blueapi.billing.v1.Chil
7799
7999
  * Use `create(ChildBillingGroupBasicInformationSchema)` to create a new message.
7800
8000
  */
7801
8001
  export const ChildBillingGroupBasicInformationSchema: GenMessage<ChildBillingGroupBasicInformation> = /*@__PURE__*/
7802
- messageDesc(file_billing_v1_billing, 195);
8002
+ messageDesc(file_billing_v1_billing, 199);
7803
8003
 
7804
8004
  /**
7805
8005
  * @generated from message blueapi.billing.v1.CustomizedBillingServiceBillingGroup
@@ -7839,7 +8039,7 @@ export type CustomizedBillingServiceBillingGroup = Message<"blueapi.billing.v1.C
7839
8039
  * Use `create(CustomizedBillingServiceBillingGroupSchema)` to create a new message.
7840
8040
  */
7841
8041
  export const CustomizedBillingServiceBillingGroupSchema: GenMessage<CustomizedBillingServiceBillingGroup> = /*@__PURE__*/
7842
- messageDesc(file_billing_v1_billing, 196);
8042
+ messageDesc(file_billing_v1_billing, 200);
7843
8043
 
7844
8044
  /**
7845
8045
  * Contains basic information and invoice settings related data.
@@ -7883,7 +8083,7 @@ export type ChildBillingGroup = Message<"blueapi.billing.v1.ChildBillingGroup">
7883
8083
  * Use `create(ChildBillingGroupSchema)` to create a new message.
7884
8084
  */
7885
8085
  export const ChildBillingGroupSchema: GenMessage<ChildBillingGroup> = /*@__PURE__*/
7886
- messageDesc(file_billing_v1_billing, 197);
8086
+ messageDesc(file_billing_v1_billing, 201);
7887
8087
 
7888
8088
  /**
7889
8089
  * @generated from message blueapi.billing.v1.ChildBillingGroupInvoiceSettings
@@ -7921,7 +8121,7 @@ export type ChildBillingGroupInvoiceSettings = Message<"blueapi.billing.v1.Child
7921
8121
  * Use `create(ChildBillingGroupInvoiceSettingsSchema)` to create a new message.
7922
8122
  */
7923
8123
  export const ChildBillingGroupInvoiceSettingsSchema: GenMessage<ChildBillingGroupInvoiceSettings> = /*@__PURE__*/
7924
- messageDesc(file_billing_v1_billing, 198);
8124
+ messageDesc(file_billing_v1_billing, 202);
7925
8125
 
7926
8126
  /**
7927
8127
  * @generated from message blueapi.billing.v1.CreateChildBillingGroupRequest
@@ -7961,7 +8161,7 @@ export type CreateChildBillingGroupRequest = Message<"blueapi.billing.v1.CreateC
7961
8161
  * Use `create(CreateChildBillingGroupRequestSchema)` to create a new message.
7962
8162
  */
7963
8163
  export const CreateChildBillingGroupRequestSchema: GenMessage<CreateChildBillingGroupRequest> = /*@__PURE__*/
7964
- messageDesc(file_billing_v1_billing, 199);
8164
+ messageDesc(file_billing_v1_billing, 203);
7965
8165
 
7966
8166
  /**
7967
8167
  * @generated from message blueapi.billing.v1.CreateChildBillingGroupResponse
@@ -7974,7 +8174,7 @@ export type CreateChildBillingGroupResponse = Message<"blueapi.billing.v1.Create
7974
8174
  * Use `create(CreateChildBillingGroupResponseSchema)` to create a new message.
7975
8175
  */
7976
8176
  export const CreateChildBillingGroupResponseSchema: GenMessage<CreateChildBillingGroupResponse> = /*@__PURE__*/
7977
- messageDesc(file_billing_v1_billing, 200);
8177
+ messageDesc(file_billing_v1_billing, 204);
7978
8178
 
7979
8179
  /**
7980
8180
  * @generated from message blueapi.billing.v1.GetChildBillingGroupRequest
@@ -7993,7 +8193,7 @@ export type GetChildBillingGroupRequest = Message<"blueapi.billing.v1.GetChildBi
7993
8193
  * Use `create(GetChildBillingGroupRequestSchema)` to create a new message.
7994
8194
  */
7995
8195
  export const GetChildBillingGroupRequestSchema: GenMessage<GetChildBillingGroupRequest> = /*@__PURE__*/
7996
- messageDesc(file_billing_v1_billing, 201);
8196
+ messageDesc(file_billing_v1_billing, 205);
7997
8197
 
7998
8198
  /**
7999
8199
  * @generated from message blueapi.billing.v1.GetChildBillingGroupResponse
@@ -8010,7 +8210,7 @@ export type GetChildBillingGroupResponse = Message<"blueapi.billing.v1.GetChildB
8010
8210
  * Use `create(GetChildBillingGroupResponseSchema)` to create a new message.
8011
8211
  */
8012
8212
  export const GetChildBillingGroupResponseSchema: GenMessage<GetChildBillingGroupResponse> = /*@__PURE__*/
8013
- messageDesc(file_billing_v1_billing, 202);
8213
+ messageDesc(file_billing_v1_billing, 206);
8014
8214
 
8015
8215
  /**
8016
8216
  * @generated from message blueapi.billing.v1.ReadChildBillingGroupsRequest
@@ -8038,7 +8238,7 @@ export type ReadChildBillingGroupsRequest = Message<"blueapi.billing.v1.ReadChil
8038
8238
  * Use `create(ReadChildBillingGroupsRequestSchema)` to create a new message.
8039
8239
  */
8040
8240
  export const ReadChildBillingGroupsRequestSchema: GenMessage<ReadChildBillingGroupsRequest> = /*@__PURE__*/
8041
- messageDesc(file_billing_v1_billing, 203);
8241
+ messageDesc(file_billing_v1_billing, 207);
8042
8242
 
8043
8243
  /**
8044
8244
  * @generated from message blueapi.billing.v1.UpdateChildBillingGroupRequest
@@ -8071,7 +8271,7 @@ export type UpdateChildBillingGroupRequest = Message<"blueapi.billing.v1.UpdateC
8071
8271
  * Use `create(UpdateChildBillingGroupRequestSchema)` to create a new message.
8072
8272
  */
8073
8273
  export const UpdateChildBillingGroupRequestSchema: GenMessage<UpdateChildBillingGroupRequest> = /*@__PURE__*/
8074
- messageDesc(file_billing_v1_billing, 204);
8274
+ messageDesc(file_billing_v1_billing, 208);
8075
8275
 
8076
8276
  /**
8077
8277
  * @generated from message blueapi.billing.v1.UpdateChildBillingGroupResponse
@@ -8084,7 +8284,7 @@ export type UpdateChildBillingGroupResponse = Message<"blueapi.billing.v1.Update
8084
8284
  * Use `create(UpdateChildBillingGroupResponseSchema)` to create a new message.
8085
8285
  */
8086
8286
  export const UpdateChildBillingGroupResponseSchema: GenMessage<UpdateChildBillingGroupResponse> = /*@__PURE__*/
8087
- messageDesc(file_billing_v1_billing, 205);
8287
+ messageDesc(file_billing_v1_billing, 209);
8088
8288
 
8089
8289
  /**
8090
8290
  * @generated from message blueapi.billing.v1.DeleteChildBillingGroupRequest
@@ -8103,7 +8303,7 @@ export type DeleteChildBillingGroupRequest = Message<"blueapi.billing.v1.DeleteC
8103
8303
  * Use `create(DeleteChildBillingGroupRequestSchema)` to create a new message.
8104
8304
  */
8105
8305
  export const DeleteChildBillingGroupRequestSchema: GenMessage<DeleteChildBillingGroupRequest> = /*@__PURE__*/
8106
- messageDesc(file_billing_v1_billing, 206);
8306
+ messageDesc(file_billing_v1_billing, 210);
8107
8307
 
8108
8308
  /**
8109
8309
  * @generated from message blueapi.billing.v1.DeleteChildBillingGroupResponse
@@ -8116,7 +8316,7 @@ export type DeleteChildBillingGroupResponse = Message<"blueapi.billing.v1.Delete
8116
8316
  * Use `create(DeleteChildBillingGroupResponseSchema)` to create a new message.
8117
8317
  */
8118
8318
  export const DeleteChildBillingGroupResponseSchema: GenMessage<DeleteChildBillingGroupResponse> = /*@__PURE__*/
8119
- messageDesc(file_billing_v1_billing, 207);
8319
+ messageDesc(file_billing_v1_billing, 211);
8120
8320
 
8121
8321
  /**
8122
8322
  * @generated from message blueapi.billing.v1.UpdateChildBillingGroupInvoiceSettingsRequest
@@ -8149,7 +8349,7 @@ export type UpdateChildBillingGroupInvoiceSettingsRequest = Message<"blueapi.bil
8149
8349
  * Use `create(UpdateChildBillingGroupInvoiceSettingsRequestSchema)` to create a new message.
8150
8350
  */
8151
8351
  export const UpdateChildBillingGroupInvoiceSettingsRequestSchema: GenMessage<UpdateChildBillingGroupInvoiceSettingsRequest> = /*@__PURE__*/
8152
- messageDesc(file_billing_v1_billing, 208);
8352
+ messageDesc(file_billing_v1_billing, 212);
8153
8353
 
8154
8354
  /**
8155
8355
  * @generated from message blueapi.billing.v1.UpdateChildBillingGroupInvoiceSettingsResponse
@@ -8162,7 +8362,7 @@ export type UpdateChildBillingGroupInvoiceSettingsResponse = Message<"blueapi.bi
8162
8362
  * Use `create(UpdateChildBillingGroupInvoiceSettingsResponseSchema)` to create a new message.
8163
8363
  */
8164
8364
  export const UpdateChildBillingGroupInvoiceSettingsResponseSchema: GenMessage<UpdateChildBillingGroupInvoiceSettingsResponse> = /*@__PURE__*/
8165
- messageDesc(file_billing_v1_billing, 209);
8365
+ messageDesc(file_billing_v1_billing, 213);
8166
8366
 
8167
8367
  /**
8168
8368
  * @generated from message blueapi.billing.v1.SetChildBillingGroupCustomizedBillingServiceRequest
@@ -8202,7 +8402,7 @@ export type SetChildBillingGroupCustomizedBillingServiceRequest = Message<"bluea
8202
8402
  * Use `create(SetChildBillingGroupCustomizedBillingServiceRequestSchema)` to create a new message.
8203
8403
  */
8204
8404
  export const SetChildBillingGroupCustomizedBillingServiceRequestSchema: GenMessage<SetChildBillingGroupCustomizedBillingServiceRequest> = /*@__PURE__*/
8205
- messageDesc(file_billing_v1_billing, 210);
8405
+ messageDesc(file_billing_v1_billing, 214);
8206
8406
 
8207
8407
  /**
8208
8408
  * CustomizedBillingServiceBillingSetting
@@ -8239,7 +8439,7 @@ export type SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillin
8239
8439
  * Use `create(SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillingServiceBillingSettingSchema)` to create a new message.
8240
8440
  */
8241
8441
  export const SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillingServiceBillingSettingSchema: GenMessage<SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillingServiceBillingSetting> = /*@__PURE__*/
8242
- messageDesc(file_billing_v1_billing, 210, 0);
8442
+ messageDesc(file_billing_v1_billing, 214, 0);
8243
8443
 
8244
8444
  /**
8245
8445
  * @generated from message blueapi.billing.v1.SetChildBillingGroupInvoiceServiceDiscountsRequest
@@ -8267,7 +8467,7 @@ export type SetChildBillingGroupInvoiceServiceDiscountsRequest = Message<"blueap
8267
8467
  * Use `create(SetChildBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
8268
8468
  */
8269
8469
  export const SetChildBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<SetChildBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
8270
- messageDesc(file_billing_v1_billing, 211);
8470
+ messageDesc(file_billing_v1_billing, 215);
8271
8471
 
8272
8472
  /**
8273
8473
  * @generated from message blueapi.billing.v1.SetChildBillingGroupAccountInvoiceServiceDiscountsRequest
@@ -8293,7 +8493,7 @@ export type SetChildBillingGroupAccountInvoiceServiceDiscountsRequest = Message<
8293
8493
  * Use `create(SetChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema)` to create a new message.
8294
8494
  */
8295
8495
  export const SetChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema: GenMessage<SetChildBillingGroupAccountInvoiceServiceDiscountsRequest> = /*@__PURE__*/
8296
- messageDesc(file_billing_v1_billing, 212);
8496
+ messageDesc(file_billing_v1_billing, 216);
8297
8497
 
8298
8498
  /**
8299
8499
  * @generated from message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceRequest
@@ -8319,7 +8519,7 @@ export type GetChildBillingGroupCustomizedBillingServiceRequest = Message<"bluea
8319
8519
  * Use `create(GetChildBillingGroupCustomizedBillingServiceRequestSchema)` to create a new message.
8320
8520
  */
8321
8521
  export const GetChildBillingGroupCustomizedBillingServiceRequestSchema: GenMessage<GetChildBillingGroupCustomizedBillingServiceRequest> = /*@__PURE__*/
8322
- messageDesc(file_billing_v1_billing, 213);
8522
+ messageDesc(file_billing_v1_billing, 217);
8323
8523
 
8324
8524
  /**
8325
8525
  * @generated from message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceResponse
@@ -8359,7 +8559,7 @@ export type GetChildBillingGroupCustomizedBillingServiceResponse = Message<"blue
8359
8559
  * Use `create(GetChildBillingGroupCustomizedBillingServiceResponseSchema)` to create a new message.
8360
8560
  */
8361
8561
  export const GetChildBillingGroupCustomizedBillingServiceResponseSchema: GenMessage<GetChildBillingGroupCustomizedBillingServiceResponse> = /*@__PURE__*/
8362
- messageDesc(file_billing_v1_billing, 214);
8562
+ messageDesc(file_billing_v1_billing, 218);
8363
8563
 
8364
8564
  /**
8365
8565
  * @generated from message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest
@@ -8378,7 +8578,7 @@ export type GetChildBillingGroupInvoiceServiceDiscountsRequest = Message<"blueap
8378
8578
  * Use `create(GetChildBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
8379
8579
  */
8380
8580
  export const GetChildBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<GetChildBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
8381
- messageDesc(file_billing_v1_billing, 215);
8581
+ messageDesc(file_billing_v1_billing, 219);
8382
8582
 
8383
8583
  /**
8384
8584
  * @generated from message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse
@@ -8397,7 +8597,7 @@ export type GetChildBillingGroupInvoiceServiceDiscountsResponse = Message<"bluea
8397
8597
  * Use `create(GetChildBillingGroupInvoiceServiceDiscountsResponseSchema)` to create a new message.
8398
8598
  */
8399
8599
  export const GetChildBillingGroupInvoiceServiceDiscountsResponseSchema: GenMessage<GetChildBillingGroupInvoiceServiceDiscountsResponse> = /*@__PURE__*/
8400
- messageDesc(file_billing_v1_billing, 216);
8600
+ messageDesc(file_billing_v1_billing, 220);
8401
8601
 
8402
8602
  /**
8403
8603
  * @generated from message blueapi.billing.v1.ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest
@@ -8416,7 +8616,7 @@ export type ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest = Message
8416
8616
  * Use `create(ReadChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema)` to create a new message.
8417
8617
  */
8418
8618
  export const ReadChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema: GenMessage<ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest> = /*@__PURE__*/
8419
- messageDesc(file_billing_v1_billing, 217);
8619
+ messageDesc(file_billing_v1_billing, 221);
8420
8620
 
8421
8621
  /**
8422
8622
  * @generated from message blueapi.billing.v1.BulkCreateBillingGroupRequest
@@ -8465,7 +8665,7 @@ export type BulkCreateBillingGroupRequest = Message<"blueapi.billing.v1.BulkCrea
8465
8665
  * Use `create(BulkCreateBillingGroupRequestSchema)` to create a new message.
8466
8666
  */
8467
8667
  export const BulkCreateBillingGroupRequestSchema: GenMessage<BulkCreateBillingGroupRequest> = /*@__PURE__*/
8468
- messageDesc(file_billing_v1_billing, 218);
8668
+ messageDesc(file_billing_v1_billing, 222);
8469
8669
 
8470
8670
  /**
8471
8671
  * @generated from message blueapi.billing.v1.BulkCreateBillingGroupError
@@ -8498,7 +8698,7 @@ export type BulkCreateBillingGroupError = Message<"blueapi.billing.v1.BulkCreate
8498
8698
  * Use `create(BulkCreateBillingGroupErrorSchema)` to create a new message.
8499
8699
  */
8500
8700
  export const BulkCreateBillingGroupErrorSchema: GenMessage<BulkCreateBillingGroupError> = /*@__PURE__*/
8501
- messageDesc(file_billing_v1_billing, 219);
8701
+ messageDesc(file_billing_v1_billing, 223);
8502
8702
 
8503
8703
  /**
8504
8704
  * Metadata for the BulkCreateBillingGroup long-running operation.
@@ -8578,7 +8778,7 @@ export type BulkCreateBillingGroupMetadata = Message<"blueapi.billing.v1.BulkCre
8578
8778
  * Use `create(BulkCreateBillingGroupMetadataSchema)` to create a new message.
8579
8779
  */
8580
8780
  export const BulkCreateBillingGroupMetadataSchema: GenMessage<BulkCreateBillingGroupMetadata> = /*@__PURE__*/
8581
- messageDesc(file_billing_v1_billing, 220);
8781
+ messageDesc(file_billing_v1_billing, 224);
8582
8782
 
8583
8783
  /**
8584
8784
  * A single Invoice Settings field's normalized value together with where that value came from.
@@ -8612,7 +8812,7 @@ export type NormalizedInvoiceSettingField = Message<"blueapi.billing.v1.Normaliz
8612
8812
  * Use `create(NormalizedInvoiceSettingFieldSchema)` to create a new message.
8613
8813
  */
8614
8814
  export const NormalizedInvoiceSettingFieldSchema: GenMessage<NormalizedInvoiceSettingField> = /*@__PURE__*/
8615
- messageDesc(file_billing_v1_billing, 221);
8815
+ messageDesc(file_billing_v1_billing, 225);
8616
8816
 
8617
8817
  /**
8618
8818
  * Server-normalized Invoice Settings for a single bulk row, as they will be (Dry-run) or were
@@ -8740,7 +8940,7 @@ export type NormalizedInvoiceSettings = Message<"blueapi.billing.v1.NormalizedIn
8740
8940
  * Use `create(NormalizedInvoiceSettingsSchema)` to create a new message.
8741
8941
  */
8742
8942
  export const NormalizedInvoiceSettingsSchema: GenMessage<NormalizedInvoiceSettings> = /*@__PURE__*/
8743
- messageDesc(file_billing_v1_billing, 222);
8943
+ messageDesc(file_billing_v1_billing, 226);
8744
8944
 
8745
8945
  /**
8746
8946
  * Per-row result for a bulk Create or Update Invoice Settings operation.
@@ -8817,7 +9017,7 @@ export type BulkBillingGroupInvoiceSettingsRow = Message<"blueapi.billing.v1.Bul
8817
9017
  * Use `create(BulkBillingGroupInvoiceSettingsRowSchema)` to create a new message.
8818
9018
  */
8819
9019
  export const BulkBillingGroupInvoiceSettingsRowSchema: GenMessage<BulkBillingGroupInvoiceSettingsRow> = /*@__PURE__*/
8820
- messageDesc(file_billing_v1_billing, 223);
9020
+ messageDesc(file_billing_v1_billing, 227);
8821
9021
 
8822
9022
  /**
8823
9023
  * @generated from message blueapi.billing.v1.BulkUpdateBillingGroupRequest
@@ -8872,7 +9072,7 @@ export type BulkUpdateBillingGroupRequest = Message<"blueapi.billing.v1.BulkUpda
8872
9072
  * Use `create(BulkUpdateBillingGroupRequestSchema)` to create a new message.
8873
9073
  */
8874
9074
  export const BulkUpdateBillingGroupRequestSchema: GenMessage<BulkUpdateBillingGroupRequest> = /*@__PURE__*/
8875
- messageDesc(file_billing_v1_billing, 224);
9075
+ messageDesc(file_billing_v1_billing, 228);
8876
9076
 
8877
9077
  /**
8878
9078
  * @generated from message blueapi.billing.v1.BulkUpdateBillingGroupError
@@ -8919,7 +9119,7 @@ export type BulkUpdateBillingGroupError = Message<"blueapi.billing.v1.BulkUpdate
8919
9119
  * Use `create(BulkUpdateBillingGroupErrorSchema)` to create a new message.
8920
9120
  */
8921
9121
  export const BulkUpdateBillingGroupErrorSchema: GenMessage<BulkUpdateBillingGroupError> = /*@__PURE__*/
8922
- messageDesc(file_billing_v1_billing, 225);
9122
+ messageDesc(file_billing_v1_billing, 229);
8923
9123
 
8924
9124
  /**
8925
9125
  * Metadata for the BulkUpdateBillingGroup long-running operation.
@@ -8998,7 +9198,7 @@ export type BulkUpdateBillingGroupMetadata = Message<"blueapi.billing.v1.BulkUpd
8998
9198
  * Use `create(BulkUpdateBillingGroupMetadataSchema)` to create a new message.
8999
9199
  */
9000
9200
  export const BulkUpdateBillingGroupMetadataSchema: GenMessage<BulkUpdateBillingGroupMetadata> = /*@__PURE__*/
9001
- messageDesc(file_billing_v1_billing, 226);
9201
+ messageDesc(file_billing_v1_billing, 230);
9002
9202
 
9003
9203
  /**
9004
9204
  * @generated from message blueapi.billing.v1.ExcludeServiceEntry
@@ -9073,7 +9273,7 @@ export type ExcludeServiceEntry = Message<"blueapi.billing.v1.ExcludeServiceEntr
9073
9273
  * Use `create(ExcludeServiceEntrySchema)` to create a new message.
9074
9274
  */
9075
9275
  export const ExcludeServiceEntrySchema: GenMessage<ExcludeServiceEntry> = /*@__PURE__*/
9076
- messageDesc(file_billing_v1_billing, 227);
9276
+ messageDesc(file_billing_v1_billing, 231);
9077
9277
 
9078
9278
  /**
9079
9279
  * @generated from message blueapi.billing.v1.CreateExcludeServiceEntryRequest
@@ -9127,7 +9327,7 @@ export type CreateExcludeServiceEntryRequest = Message<"blueapi.billing.v1.Creat
9127
9327
  * Use `create(CreateExcludeServiceEntryRequestSchema)` to create a new message.
9128
9328
  */
9129
9329
  export const CreateExcludeServiceEntryRequestSchema: GenMessage<CreateExcludeServiceEntryRequest> = /*@__PURE__*/
9130
- messageDesc(file_billing_v1_billing, 228);
9330
+ messageDesc(file_billing_v1_billing, 232);
9131
9331
 
9132
9332
  /**
9133
9333
  * @generated from message blueapi.billing.v1.CreateExcludeServiceEntryResponse
@@ -9146,7 +9346,7 @@ export type CreateExcludeServiceEntryResponse = Message<"blueapi.billing.v1.Crea
9146
9346
  * Use `create(CreateExcludeServiceEntryResponseSchema)` to create a new message.
9147
9347
  */
9148
9348
  export const CreateExcludeServiceEntryResponseSchema: GenMessage<CreateExcludeServiceEntryResponse> = /*@__PURE__*/
9149
- messageDesc(file_billing_v1_billing, 229);
9349
+ messageDesc(file_billing_v1_billing, 233);
9150
9350
 
9151
9351
  /**
9152
9352
  * @generated from message blueapi.billing.v1.UpdateExcludeServiceEntryRequest
@@ -9200,7 +9400,7 @@ export type UpdateExcludeServiceEntryRequest = Message<"blueapi.billing.v1.Updat
9200
9400
  * Use `create(UpdateExcludeServiceEntryRequestSchema)` to create a new message.
9201
9401
  */
9202
9402
  export const UpdateExcludeServiceEntryRequestSchema: GenMessage<UpdateExcludeServiceEntryRequest> = /*@__PURE__*/
9203
- messageDesc(file_billing_v1_billing, 230);
9403
+ messageDesc(file_billing_v1_billing, 234);
9204
9404
 
9205
9405
  /**
9206
9406
  * @generated from message blueapi.billing.v1.UpdateExcludeServiceEntryResponse
@@ -9219,7 +9419,7 @@ export type UpdateExcludeServiceEntryResponse = Message<"blueapi.billing.v1.Upda
9219
9419
  * Use `create(UpdateExcludeServiceEntryResponseSchema)` to create a new message.
9220
9420
  */
9221
9421
  export const UpdateExcludeServiceEntryResponseSchema: GenMessage<UpdateExcludeServiceEntryResponse> = /*@__PURE__*/
9222
- messageDesc(file_billing_v1_billing, 231);
9422
+ messageDesc(file_billing_v1_billing, 235);
9223
9423
 
9224
9424
  /**
9225
9425
  * @generated from message blueapi.billing.v1.DeleteExcludeServiceEntryRequest
@@ -9266,7 +9466,7 @@ export type DeleteExcludeServiceEntryRequest = Message<"blueapi.billing.v1.Delet
9266
9466
  * Use `create(DeleteExcludeServiceEntryRequestSchema)` to create a new message.
9267
9467
  */
9268
9468
  export const DeleteExcludeServiceEntryRequestSchema: GenMessage<DeleteExcludeServiceEntryRequest> = /*@__PURE__*/
9269
- messageDesc(file_billing_v1_billing, 232);
9469
+ messageDesc(file_billing_v1_billing, 236);
9270
9470
 
9271
9471
  /**
9272
9472
  * @generated from message blueapi.billing.v1.DeleteExcludeServiceEntryResponse
@@ -9285,7 +9485,7 @@ export type DeleteExcludeServiceEntryResponse = Message<"blueapi.billing.v1.Dele
9285
9485
  * Use `create(DeleteExcludeServiceEntryResponseSchema)` to create a new message.
9286
9486
  */
9287
9487
  export const DeleteExcludeServiceEntryResponseSchema: GenMessage<DeleteExcludeServiceEntryResponse> = /*@__PURE__*/
9288
- messageDesc(file_billing_v1_billing, 233);
9488
+ messageDesc(file_billing_v1_billing, 237);
9289
9489
 
9290
9490
  /**
9291
9491
  * @generated from message blueapi.billing.v1.ListExcludeServicesRequest
@@ -9311,7 +9511,7 @@ export type ListExcludeServicesRequest = Message<"blueapi.billing.v1.ListExclude
9311
9511
  * Use `create(ListExcludeServicesRequestSchema)` to create a new message.
9312
9512
  */
9313
9513
  export const ListExcludeServicesRequestSchema: GenMessage<ListExcludeServicesRequest> = /*@__PURE__*/
9314
- messageDesc(file_billing_v1_billing, 234);
9514
+ messageDesc(file_billing_v1_billing, 238);
9315
9515
 
9316
9516
  /**
9317
9517
  * @generated from message blueapi.billing.v1.ListExcludeServicesResponse
@@ -9330,7 +9530,7 @@ export type ListExcludeServicesResponse = Message<"blueapi.billing.v1.ListExclud
9330
9530
  * Use `create(ListExcludeServicesResponseSchema)` to create a new message.
9331
9531
  */
9332
9532
  export const ListExcludeServicesResponseSchema: GenMessage<ListExcludeServicesResponse> = /*@__PURE__*/
9333
- messageDesc(file_billing_v1_billing, 235);
9533
+ messageDesc(file_billing_v1_billing, 239);
9334
9534
 
9335
9535
  /**
9336
9536
  * Represents a single service with its associated names and SKUs.
@@ -9372,7 +9572,7 @@ export type ServiceItem = Message<"blueapi.billing.v1.ServiceItem"> & {
9372
9572
  * Use `create(ServiceItemSchema)` to create a new message.
9373
9573
  */
9374
9574
  export const ServiceItemSchema: GenMessage<ServiceItem> = /*@__PURE__*/
9375
- messageDesc(file_billing_v1_billing, 236);
9575
+ messageDesc(file_billing_v1_billing, 240);
9376
9576
 
9377
9577
  /**
9378
9578
  * @generated from message blueapi.billing.v1.ListServicesRequest
@@ -9401,7 +9601,7 @@ export type ListServicesRequest = Message<"blueapi.billing.v1.ListServicesReques
9401
9601
  * Use `create(ListServicesRequestSchema)` to create a new message.
9402
9602
  */
9403
9603
  export const ListServicesRequestSchema: GenMessage<ListServicesRequest> = /*@__PURE__*/
9404
- messageDesc(file_billing_v1_billing, 237);
9604
+ messageDesc(file_billing_v1_billing, 241);
9405
9605
 
9406
9606
  /**
9407
9607
  * @generated from message blueapi.billing.v1.ListServicesResponse
@@ -9420,7 +9620,7 @@ export type ListServicesResponse = Message<"blueapi.billing.v1.ListServicesRespo
9420
9620
  * Use `create(ListServicesResponseSchema)` to create a new message.
9421
9621
  */
9422
9622
  export const ListServicesResponseSchema: GenMessage<ListServicesResponse> = /*@__PURE__*/
9423
- messageDesc(file_billing_v1_billing, 238);
9623
+ messageDesc(file_billing_v1_billing, 242);
9424
9624
 
9425
9625
  /**
9426
9626
  * @generated from message blueapi.billing.v1.BulkLinkAccountRequest
@@ -9469,7 +9669,7 @@ export type BulkLinkAccountRequest = Message<"blueapi.billing.v1.BulkLinkAccount
9469
9669
  * Use `create(BulkLinkAccountRequestSchema)` to create a new message.
9470
9670
  */
9471
9671
  export const BulkLinkAccountRequestSchema: GenMessage<BulkLinkAccountRequest> = /*@__PURE__*/
9472
- messageDesc(file_billing_v1_billing, 239);
9672
+ messageDesc(file_billing_v1_billing, 243);
9473
9673
 
9474
9674
  /**
9475
9675
  * @generated from message blueapi.billing.v1.BulkLinkAccountError
@@ -9509,7 +9709,7 @@ export type BulkLinkAccountError = Message<"blueapi.billing.v1.BulkLinkAccountEr
9509
9709
  * Use `create(BulkLinkAccountErrorSchema)` to create a new message.
9510
9710
  */
9511
9711
  export const BulkLinkAccountErrorSchema: GenMessage<BulkLinkAccountError> = /*@__PURE__*/
9512
- messageDesc(file_billing_v1_billing, 240);
9712
+ messageDesc(file_billing_v1_billing, 244);
9513
9713
 
9514
9714
  /**
9515
9715
  * Metadata for the BulkLinkAccount long-running operation.
@@ -9580,7 +9780,7 @@ export type BulkLinkAccountMetadata = Message<"blueapi.billing.v1.BulkLinkAccoun
9580
9780
  * Use `create(BulkLinkAccountMetadataSchema)` to create a new message.
9581
9781
  */
9582
9782
  export const BulkLinkAccountMetadataSchema: GenMessage<BulkLinkAccountMetadata> = /*@__PURE__*/
9583
- messageDesc(file_billing_v1_billing, 241);
9783
+ messageDesc(file_billing_v1_billing, 245);
9584
9784
 
9585
9785
  /**
9586
9786
  * Request for BulkTagBillingGroup.
@@ -9610,7 +9810,7 @@ export type BulkTagBillingGroupRequest = Message<"blueapi.billing.v1.BulkTagBill
9610
9810
  * Use `create(BulkTagBillingGroupRequestSchema)` to create a new message.
9611
9811
  */
9612
9812
  export const BulkTagBillingGroupRequestSchema: GenMessage<BulkTagBillingGroupRequest> = /*@__PURE__*/
9613
- messageDesc(file_billing_v1_billing, 242);
9813
+ messageDesc(file_billing_v1_billing, 246);
9614
9814
 
9615
9815
  /**
9616
9816
  * Describes a single failed row in a BulkTagBillingGroup operation.
@@ -9666,7 +9866,7 @@ export type BulkTagBillingGroupError = Message<"blueapi.billing.v1.BulkTagBillin
9666
9866
  * Use `create(BulkTagBillingGroupErrorSchema)` to create a new message.
9667
9867
  */
9668
9868
  export const BulkTagBillingGroupErrorSchema: GenMessage<BulkTagBillingGroupError> = /*@__PURE__*/
9669
- messageDesc(file_billing_v1_billing, 243);
9869
+ messageDesc(file_billing_v1_billing, 247);
9670
9870
 
9671
9871
  /**
9672
9872
  * Metadata for the BulkTagBillingGroup long-running operation.
@@ -9737,7 +9937,7 @@ export type BulkTagBillingGroupMetadata = Message<"blueapi.billing.v1.BulkTagBil
9737
9937
  * Use `create(BulkTagBillingGroupMetadataSchema)` to create a new message.
9738
9938
  */
9739
9939
  export const BulkTagBillingGroupMetadataSchema: GenMessage<BulkTagBillingGroupMetadata> = /*@__PURE__*/
9740
- messageDesc(file_billing_v1_billing, 244);
9940
+ messageDesc(file_billing_v1_billing, 248);
9741
9941
 
9742
9942
  /**
9743
9943
  * @generated from message blueapi.billing.v1.GetBillingGroupInvoiceLayoutConfigRequest
@@ -9756,7 +9956,7 @@ export type GetBillingGroupInvoiceLayoutConfigRequest = Message<"blueapi.billing
9756
9956
  * Use `create(GetBillingGroupInvoiceLayoutConfigRequestSchema)` to create a new message.
9757
9957
  */
9758
9958
  export const GetBillingGroupInvoiceLayoutConfigRequestSchema: GenMessage<GetBillingGroupInvoiceLayoutConfigRequest> = /*@__PURE__*/
9759
- messageDesc(file_billing_v1_billing, 245);
9959
+ messageDesc(file_billing_v1_billing, 249);
9760
9960
 
9761
9961
  /**
9762
9962
  * @generated from message blueapi.billing.v1.GetBillingGroupInvoiceLayoutConfigResponse
@@ -9787,7 +9987,7 @@ export type GetBillingGroupInvoiceLayoutConfigResponse = Message<"blueapi.billin
9787
9987
  * Use `create(GetBillingGroupInvoiceLayoutConfigResponseSchema)` to create a new message.
9788
9988
  */
9789
9989
  export const GetBillingGroupInvoiceLayoutConfigResponseSchema: GenMessage<GetBillingGroupInvoiceLayoutConfigResponse> = /*@__PURE__*/
9790
- messageDesc(file_billing_v1_billing, 246);
9990
+ messageDesc(file_billing_v1_billing, 250);
9791
9991
 
9792
9992
  /**
9793
9993
  * @generated from message blueapi.billing.v1.SetBillingGroupInvoiceLayoutConfigRequest
@@ -9813,7 +10013,7 @@ export type SetBillingGroupInvoiceLayoutConfigRequest = Message<"blueapi.billing
9813
10013
  * Use `create(SetBillingGroupInvoiceLayoutConfigRequestSchema)` to create a new message.
9814
10014
  */
9815
10015
  export const SetBillingGroupInvoiceLayoutConfigRequestSchema: GenMessage<SetBillingGroupInvoiceLayoutConfigRequest> = /*@__PURE__*/
9816
- messageDesc(file_billing_v1_billing, 247);
10016
+ messageDesc(file_billing_v1_billing, 251);
9817
10017
 
9818
10018
  /**
9819
10019
  * @generated from message blueapi.billing.v1.CreateInvoiceLayoutConfigRequest
@@ -9839,7 +10039,7 @@ export type CreateInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.Creat
9839
10039
  * Use `create(CreateInvoiceLayoutConfigRequestSchema)` to create a new message.
9840
10040
  */
9841
10041
  export const CreateInvoiceLayoutConfigRequestSchema: GenMessage<CreateInvoiceLayoutConfigRequest> = /*@__PURE__*/
9842
- messageDesc(file_billing_v1_billing, 248);
10042
+ messageDesc(file_billing_v1_billing, 252);
9843
10043
 
9844
10044
  /**
9845
10045
  * @generated from message blueapi.billing.v1.CreateInvoiceLayoutConfigResponse
@@ -9858,7 +10058,7 @@ export type CreateInvoiceLayoutConfigResponse = Message<"blueapi.billing.v1.Crea
9858
10058
  * Use `create(CreateInvoiceLayoutConfigResponseSchema)` to create a new message.
9859
10059
  */
9860
10060
  export const CreateInvoiceLayoutConfigResponseSchema: GenMessage<CreateInvoiceLayoutConfigResponse> = /*@__PURE__*/
9861
- messageDesc(file_billing_v1_billing, 249);
10061
+ messageDesc(file_billing_v1_billing, 253);
9862
10062
 
9863
10063
  /**
9864
10064
  * @generated from message blueapi.billing.v1.UpdateInvoiceLayoutConfigRequest
@@ -9891,7 +10091,7 @@ export type UpdateInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.Updat
9891
10091
  * Use `create(UpdateInvoiceLayoutConfigRequestSchema)` to create a new message.
9892
10092
  */
9893
10093
  export const UpdateInvoiceLayoutConfigRequestSchema: GenMessage<UpdateInvoiceLayoutConfigRequest> = /*@__PURE__*/
9894
- messageDesc(file_billing_v1_billing, 250);
10094
+ messageDesc(file_billing_v1_billing, 254);
9895
10095
 
9896
10096
  /**
9897
10097
  * @generated from message blueapi.billing.v1.ReadInvoiceLayoutConfigRequest
@@ -9904,7 +10104,7 @@ export type ReadInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.ReadInv
9904
10104
  * Use `create(ReadInvoiceLayoutConfigRequestSchema)` to create a new message.
9905
10105
  */
9906
10106
  export const ReadInvoiceLayoutConfigRequestSchema: GenMessage<ReadInvoiceLayoutConfigRequest> = /*@__PURE__*/
9907
- messageDesc(file_billing_v1_billing, 251);
10107
+ messageDesc(file_billing_v1_billing, 255);
9908
10108
 
9909
10109
  /**
9910
10110
  * @generated from message blueapi.billing.v1.ReadInvoiceLayoutConfigResponse
@@ -9935,7 +10135,7 @@ export type ReadInvoiceLayoutConfigResponse = Message<"blueapi.billing.v1.ReadIn
9935
10135
  * Use `create(ReadInvoiceLayoutConfigResponseSchema)` to create a new message.
9936
10136
  */
9937
10137
  export const ReadInvoiceLayoutConfigResponseSchema: GenMessage<ReadInvoiceLayoutConfigResponse> = /*@__PURE__*/
9938
- messageDesc(file_billing_v1_billing, 252);
10138
+ messageDesc(file_billing_v1_billing, 256);
9939
10139
 
9940
10140
  /**
9941
10141
  * @generated from message blueapi.billing.v1.DeleteBillingGroupInvoiceLayoutConfigRequest
@@ -9954,7 +10154,7 @@ export type DeleteBillingGroupInvoiceLayoutConfigRequest = Message<"blueapi.bill
9954
10154
  * Use `create(DeleteBillingGroupInvoiceLayoutConfigRequestSchema)` to create a new message.
9955
10155
  */
9956
10156
  export const DeleteBillingGroupInvoiceLayoutConfigRequestSchema: GenMessage<DeleteBillingGroupInvoiceLayoutConfigRequest> = /*@__PURE__*/
9957
- messageDesc(file_billing_v1_billing, 253);
10157
+ messageDesc(file_billing_v1_billing, 257);
9958
10158
 
9959
10159
  /**
9960
10160
  * @generated from message blueapi.billing.v1.DeleteInvoiceLayoutConfigRequest
@@ -9973,7 +10173,7 @@ export type DeleteInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.Delet
9973
10173
  * Use `create(DeleteInvoiceLayoutConfigRequestSchema)` to create a new message.
9974
10174
  */
9975
10175
  export const DeleteInvoiceLayoutConfigRequestSchema: GenMessage<DeleteInvoiceLayoutConfigRequest> = /*@__PURE__*/
9976
- messageDesc(file_billing_v1_billing, 254);
10176
+ messageDesc(file_billing_v1_billing, 258);
9977
10177
 
9978
10178
  /**
9979
10179
  * @generated from message blueapi.billing.v1.ListInvoiceLayoutConfigBillingGroupsRequest
@@ -9992,7 +10192,7 @@ export type ListInvoiceLayoutConfigBillingGroupsRequest = Message<"blueapi.billi
9992
10192
  * Use `create(ListInvoiceLayoutConfigBillingGroupsRequestSchema)` to create a new message.
9993
10193
  */
9994
10194
  export const ListInvoiceLayoutConfigBillingGroupsRequestSchema: GenMessage<ListInvoiceLayoutConfigBillingGroupsRequest> = /*@__PURE__*/
9995
- messageDesc(file_billing_v1_billing, 255);
10195
+ messageDesc(file_billing_v1_billing, 259);
9996
10196
 
9997
10197
  /**
9998
10198
  * @generated from message blueapi.billing.v1.ListInvoiceLayoutConfigBillingGroupsResponse
@@ -10011,7 +10211,7 @@ export type ListInvoiceLayoutConfigBillingGroupsResponse = Message<"blueapi.bill
10011
10211
  * Use `create(ListInvoiceLayoutConfigBillingGroupsResponseSchema)` to create a new message.
10012
10212
  */
10013
10213
  export const ListInvoiceLayoutConfigBillingGroupsResponseSchema: GenMessage<ListInvoiceLayoutConfigBillingGroupsResponse> = /*@__PURE__*/
10014
- messageDesc(file_billing_v1_billing, 256);
10214
+ messageDesc(file_billing_v1_billing, 260);
10015
10215
 
10016
10216
  /**
10017
10217
  * Billing service definition.
@@ -11094,6 +11294,29 @@ export const Billing: GenService<{
11094
11294
  input: typeof ExportInvoiceSettingCsvRequestSchema;
11095
11295
  output: typeof ExportInvoiceSettingCsvResponseSchema;
11096
11296
  },
11297
+ /**
11298
+ * (BETA) Previews eligible billing group counts for a layer-scoped CSV export.
11299
+ * Stores a short-lived selection; does not generate CSVs or download links.
11300
+ *
11301
+ * @generated from rpc blueapi.billing.v1.Billing.PreviewBillingGroupCsvExport
11302
+ */
11303
+ previewBillingGroupCsvExport: {
11304
+ methodKind: "unary";
11305
+ input: typeof PreviewBillingGroupCsvExportRequestSchema;
11306
+ output: typeof PreviewBillingGroupCsvExportResponseSchema;
11307
+ },
11308
+ /**
11309
+ * (BETA) Exports a previously previewed billing group selection.
11310
+ * Uses the saved root/child IDs and layer assignments without rediscovering
11311
+ * hierarchy membership. All export types return a signed CSV download link.
11312
+ *
11313
+ * @generated from rpc blueapi.billing.v1.Billing.ExportPreviewedBillingGroupCsv
11314
+ */
11315
+ exportPreviewedBillingGroupCsv: {
11316
+ methodKind: "unary";
11317
+ input: typeof ExportPreviewedBillingGroupCsvRequestSchema;
11318
+ output: typeof ExportPreviewedBillingGroupCsvResponseSchema;
11319
+ },
11097
11320
  /**
11098
11321
  * Update billing group basic information
11099
11322
  *