@alphauspkgs/blue-sdk-ts 1.0.51 → 1.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/billing/v1/billing_pb.js +189 -179
- package/billing/v1/billing_pb.ts +1022 -776
- package/gc/v1/gc_pb.js +97 -87
- package/gc/v1/gc_pb.ts +185 -85
- package/org/v1/org_pb.js +17 -2
- package/org/v1/org_pb.ts +78 -1
- package/package.json +1 -1
package/billing/v1/billing_pb.ts
CHANGED
|
@@ -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+CitEZWxldGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkifQorUmVtb3ZlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIk8KMENyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEgoKAmlkGAIgASgJIj8KMUNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiTwowVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSCgoCaWQYAiABKAkiPwoxVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSJDCjBEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSJXChRDcmVhdGVJbnZvaWNlUmVxdWVzdBIMCgRkYXRlGAQgASgJEg4KBnZlbmRvchgBIAEoCRIRCglhbGxHcm91cHMYAiABKAgSDgoGZ3JvdXBzGAMgAygJIiUKF0dldEludm9pY2VTdGF0dXNSZXF1ZXN0EgoKAmlkGAEgASgJIigKGExpc3RJbnZvaWNlU3RhdHVzUmVxdWVzdBIMCgRkYXRlGAEgASgJImAKHFVwZGF0ZUludm9pY2VQcmV2aWV3c1JlcXVlc3QSDAoEZGF0ZRgBIAEoCRIRCglhbGxHcm91cHMYAiABKAgSDgoGZ3JvdXBzGAMgAygJEg8KB2VuYWJsZWQYBCABKAgizwEKFUNyZWF0ZVJlc2VsbGVyUmVxdWVzdBIPCgdncm91cElkGAEgASgJEg0KBWVtYWlsGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJEhQKDG5vdGlmaWNhdGlvbhgEIAEoCBI2Cgp3YXZlQ29uZmlnGAUgAygLMiIuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyQ29uZmlnEjYKCmFxdWFDb25maWcYBiADKAsyIi5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXJDb25maWciRgoUTGlzdFJlc2VsbGVyc1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siUAoSR2V0UmVzZWxsZXJSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIqYCChVVcGRhdGVSZXNlbGxlclJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISEwoFZW1haWwYAiABKAlCBOJBAQESFwoIcGFzc3dvcmQYAyABKAlCBeJBAgQBEjwKCndhdmVDb25maWcYBCADKAsyIi5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXJDb25maWdCBOJBAQESPAoKYXF1YUNvbmZpZxgFIAMoCzIiLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlckNvbmZpZ0IE4kEBARIbCgxub3RpZmljYXRpb24YBiABKAhCBeJBAgQBEjQKCnVwZGF0ZU1hc2sYByABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIiMKFURlbGV0ZVJlc2VsbGVyUmVxdWVzdBIKCgJpZBgBIAEoCSJKChhHZXRCaWxsaW5nU2V0dGluZ1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sixwIKGUdldEJpbGxpbmdTZXR0aW5nUmVzcG9uc2USMAoJeWVhck1vbnRoGAEgAygLMh0uYmx1ZWFwaS5hcGkucmlwcGxlLlllYXJNb250aBI0Cg5yb3VuZGluZ01ldGhvZBgCIAEoCzIcLmJsdWVhcGkuYXBpLnJpcHBsZS5Sb3VuZGluZxI6ChRleHBvcnRSb3VuZGluZ01ldGhvZBgDIAEoCzIcLmJsdWVhcGkuYXBpLnJpcHBsZS5Sb3VuZGluZxI4Cg1pbnZvaWNlTGF5b3V0GAQgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQSMwoOaW52b2ljZUR1ZURhdGUYBSABKAsyGy5ibHVlYXBpLmFwaS5yaXBwbGUuRHVlRGF0ZRIXCg9zdXBwb3J0Q3VycmVuY3kYBiADKAkiOQoYTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCSJlChxTZXRHbG9iYWxFeGNoYW5nZVJhdGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIQCghjdXJyZW5jeRgDIAEoCRIUCgxleGNoYW5nZVJhdGUYBCABKAEidwobU2V0UGF5ZXJFeGNoYW5nZVJhdGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDQoFbW9udGgYAyABKAkSEAoIY3VycmVuY3kYBCABKAkSFAoMZXhjaGFuZ2VSYXRlGAUgASgBImwKIlNldEJpbGxpbmdHcm91cEV4Y2hhbmdlUmF0ZVJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRINCgVtb250aBgCIAEoCRIQCghjdXJyZW5jeRgDIAEoCRIUCgxleGNoYW5nZVJhdGUYBCABKAEi4gEKGUxpc3RFeGNoYW5nZVJhdGVzUmVzcG9uc2USDQoFbW9udGgYASABKAkSNgoGY29tbW9uGAIgASgLMiYuYmx1ZWFwaS5hcGkucmlwcGxlLkNvbW1vbkV4Y2hhbmdlUmF0ZRJCCgxiaWxsaW5nR3JvdXAYAyADKAsyLC5ibHVlYXBpLmFwaS5yaXBwbGUuQmlsbGluZ0dyb3VwRXhjaGFuZ2VSYXRlEjoKBXBheWVyGAQgASgLMisuYmx1ZWFwaS5hcGkucmlwcGxlLlZlbmRvclBheWVyRXhjaGFuZ2VSYXRlIkkKF0xpc3RBY2Nlc3NHcm91cHNSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIlQKGENyZWF0ZUFjY2Vzc0dyb3VwUmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhUKDWJpbGxpbmdHcm91cHMYAyADKAkiYAoYVXBkYXRlQWNjZXNzR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSFQoNYmlsbGluZ0dyb3VwcxgEIAMoCSImChhEZWxldGVBY2Nlc3NHcm91cFJlcXVlc3QSCgoCaWQYASABKAkifQoSTGlzdEludm9pY2VSZXF1ZXN0EgwKBGRhdGUYASABKAkSDgoGdmVuZG9yGAIgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAMgASgJEi4KCmZpZWxkX21hc2sYBCABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIp0JChNMaXN0SW52b2ljZVJlc3BvbnNlEhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEwoLY29tcGFueU5hbWUYBCABKAkSGgoSZmluYWxpemF0aW9uU3RhdHVzGAUgASgJEhEKCWlzQ3JlYXRlZBgGIAEoCBIZChFpc1NldHRpbmdNb2RpZmllZBgHIAEoCBITCgtjcmVhdGVkRGF0ZRgIIAEoCRITCgt1cGRhdGVkRGF0ZRgJIAEoCRIWCg5jcmVhdGVkVmVuZG9ycxgKIAMoCRITCgtpc1B1Ymxpc2hlZBgLIAEoCBJdChN2ZW5kb3JCaWxsaW5nQW1vdW50GAwgAygLMkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UuVmVuZG9yQmlsbGluZ0Ftb3VudEVudHJ5EhoKEmJpbGxpbmdBbW91bnRUb3RhbBgNIAEoCRIQCghjdXJyZW5jeRgOIAEoCRINCgV1cmxJZBgPIAEoCRJtChtjcmVhdGVkVmVuZG9ySW52b2ljZVNldHRpbmcYECADKAsySC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZS5DcmVhdGVkVmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRJpChlzYXZlZFZlbmRvckludm9pY2VTZXR0aW5nGBEgAygLMkYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UuU2F2ZWRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5Em0KG2RlZmF1bHRWZW5kb3JJbnZvaWNlU2V0dGluZxgSIAMoCzJILmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVJlc3BvbnNlLkRlZmF1bHRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5EhAKCGhhc0NoaWxkGBMgASgIEhcKD2F0dGFjaGVkVmVuZG9ycxgUIAMoCRo6ChhWZW5kb3JCaWxsaW5nQW1vdW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpnCiBDcmVhdGVkVmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzOgI4ARplCh5TYXZlZFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSCwoDa2V5GAEgASgJEjIKBXZhbHVlGAIgASgLMiMuYmx1ZWFwaS5iaWxsaW5nLnYxLkludm9pY2VTZXR0aW5nczoCOAEaZwogRGVmYXVsdFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSCwoDa2V5GAEgASgJEjIKBXZhbHVlGAIgASgLMiMuYmx1ZWFwaS5iaWxsaW5nLnYxLkludm9pY2VTZXR0aW5nczoCOAEiKQobTGlzdEFiY0JpbGxpbmdHcm91cHNSZXF1ZXN0EgoKAmlkGAEgASgJIk4KIkxpc3RBYmNCaWxsaW5nR3JvdXBBY2NvdW50c1JlcXVlc3QSDwoHcGF5ZXJJZBgBIAEoCRIXCg9iaWxsaW5nR3JvdXBBcm4YAiABKAkijwEKD0FiY0JpbGxpbmdHcm91cBILCgNhcm4YASABKAkSDAoEbmFtZRgCIAEoCRIUCgxjcmVhdGlvblRpbWUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSGAoQcHJpbWFyeUFjY291bnRJZBgFIAEoCRIMCgRzaXplGAYgASgJEg4KBnN0YXR1cxgHIAEoCSI0CgpBYmNBY2NvdW50EhEKCWFjY291bnRJZBgBIAEoCRITCgthY2NvdW50TmFtZRgCIAEoCSJiCh1SZWFkSW52b2ljZUFkanVzdG1lbnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg0KBW1vbnRoGAMgASgJEg8KB2ZlZVR5cGUYBCABKAkimQEKHFJlYWRBZGp1c3RtZW50RW50cmllc1JlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhMKBW1vbnRoGAIgASgJQgTiQQEBGk4KIkFkanVzdG1lbnRFbnRyaWVzUmVxdWVzdEF3c09wdGlvbnMSEwoLc3BwRGlzY291bnQYASABKAgSEwoLZWRwRGlzY291bnQYAiABKAgiQwoZR2V0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQIingMKG0FwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISUwoHc2V0dGluZxgCIAEoCzI8LmJsdWVhcGkuYmlsbGluZy52MS5BcHBseUFkanVzdG1lbnRFbnRyeVJlcXVlc3QuQXBwbHlTZXR0aW5nQgTiQQECEhUKB2VudHJpZXMYAyADKAlCBOJBAQIa/AEKDEFwcGx5U2V0dGluZxITCgVtb250aBgBIAEoCUIE4kEBARIVCgd0YXhGcmVlGAIgASgIQgTiQQEBEmoKDGV4Y2hhbmdlUmF0ZRgDIAMoCzJOLmJsdWVhcGkuYmlsbGluZy52MS5BcHBseUFkanVzdG1lbnRFbnRyeVJlcXVlc3QuQXBwbHlTZXR0aW5nLkV4Y2hhbmdlUmF0ZUVudHJ5QgTiQQEBEh8KEWJpbGxpbmdJbnRlcm5hbElkGAQgASgJQgTiQQEBGjMKEUV4Y2hhbmdlUmF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiTAodUmVzdG9yZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhUKB2VudHJpZXMYAyADKAlCBOJBAQIiXwobU3BsaXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhIQCgJpZBgCIAEoCUIE4kEBAhIYCgpzdGFydE1vbnRoGAMgASgJQgTiQQECIvwBCh5BbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECElYKBmNvbmZpZxgDIAMoCzJALmJsdWVhcGkuYmlsbGluZy52MS5BbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QuQWNjb3VudENvbmZpZ0IE4kEBAhIhChNhY2NvdW50Rm9yUmVtYWluaW5nGAQgASgJQgTiQQECGjcKDUFjY291bnRDb25maWcSEAoCaWQYASABKAlCBOJBAQISFAoGYW1vdW50GAIgASgBQgTiQQECIkwKIlJlc3RvcmVTcGxpdEFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECIk8KJVJlc3RvcmVBbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECIn4KFkNyZWF0ZUN1c3RvbUZlZVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhMKBW1vbnRoGAIgASgJQgTiQQECEjkKB2VudHJpZXMYAyADKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmVlRW50cnlCBOJBAQIioQMKDkN1c3RvbUZlZUVudHJ5EhcKCWFjY291bnRJZBgBIAEoCUIE4kEBAhIcCg5wYXllckFjY291bnRJZBgCIAEoCUIE4kEBAhIVCgdmZWVUeXBlGAMgASgJQgTiQQECEhkKC21vYmluZ2lUeXBlGAQgASgJQgTiQQECEhQKBmFtb3VudBgFIAEoAUIE4kEBAhIaCgxjdXJyZW5jeUNvZGUYBiABKAlCBOJBAQISGQoLZGVzY3JpcHRpb24YByABKAlCBOJBAQISGQoLcHJvZHVjdENvZGUYCCABKAlCBOJBAQESGQoLcHJvZHVjdE5hbWUYCSABKAlCBOJBAQESGAoKdXNhZ2VTdGFydBgKIAEoCUIE4kEBARIaCgx0aW1lSW50ZXJ2YWwYCyABKAlCBOJBAQESQAoEbWV0YRgMIAMoCzIsLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GZWVFbnRyeS5NZXRhRW50cnlCBOJBAQEaKwoJTWV0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiKgoXQ3JlYXRlQ3VzdG9tRmVlUmVzcG9uc2USDwoHY3JlYXRlZBgBIAEoBSJ9Ch9MaXN0QWRqdXN0bWVudEVudHJ5SXRlbXNSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhITCgVtb250aBgCIAEoCUIE4kEBAhIZCgttb2JpbmdpVHlwZRgDIAEoCUIE4kEBARIUCgZzdGF0dXMYBCABKAlCBOJBAQEiugEKE0FkanVzdG1lbnRFbnRyeUl0ZW0SNQoFZW50cnkYASABKAsyJi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQWRqdXN0bWVudEVudHJ5Ej8KBG1ldGEYAiADKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuQWRqdXN0bWVudEVudHJ5SXRlbS5NZXRhRW50cnkaKwoJTWV0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiPAobTGlzdEFjY291bnRSZXNvdXJjZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCSJKCg9SZXNvdXJjZUFjY291bnQSDwoHcGF5ZXJJZBgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEhIKCnJlZ2lzdGVyZWQYAyABKAgiSAoaR2V0QWRqdXN0bWVudENvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhoKEmluY2x1ZGVTUFBEaXNjb3VudBgCIAEoCCKNAQodQ3JlYXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEioKBmNvbmZpZxgCIAMoCzIaLmJsdWVhcGkuYXBpLkNvbmZpZ0ZpbHRlcnMSMAoIYWNjb3VudHMYAyADKAsyHi5ibHVlYXBpLmFwaS5NYW5hZ2VtZW50QWNjb3VudCKNAQodVXBkYXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEioKBmNvbmZpZxgCIAMoCzIaLmJsdWVhcGkuYXBpLkNvbmZpZ0ZpbHRlcnMSMAoIYWNjb3VudHMYAyADKAsyHi5ibHVlYXBpLmFwaS5NYW5hZ2VtZW50QWNjb3VudCIvCh1EZWxldGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiZwoZUmVhZFVudGFnZ2VkR3JvdXBzUmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISNAoKZmllbGRfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQEiXAokUmVhZEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZXNSZXF1ZXN0EjQKCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQEBImYKIkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSCgoCaWQYASABKAkSNAoKZmllbGRfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQEifAolQ3JlYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEjAKBmNvbmZpZxgDIAEoCzIgLmJsdWVhcGkuYXBpLnJpcHBsZS5NZXRob2RDb25maWcixQEKJVVwZGF0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISVAoYY3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlGAIgASgLMiwuYmx1ZWFwaS5hcGkucmlwcGxlLkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUIE4kEBAhI0Cgp1cGRhdGVNYXNrGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIzCiVEZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EgoKAmlkGAEgASgJIl0KLkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QSFQoHZ3JvdXBJZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQIiyQEKL0dldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlc3BvbnNlEhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgDIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIsCghhY2NvdW50cxgEIAMoCzIULmJsdWVhcGkuYXBpLkFjY291bnRCBOJBAQEi9wIKLlNldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QSFQoHZ3JvdXBJZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISgAEKB3NldHRpbmcYAyADKAsyaS5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhqUAQomQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmcSEAoCaWQYASABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAiABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISFgoIYWNjb3VudHMYAyADKAlCBOJBAQEiYAoxRGVsZXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBIVCgdncm91cElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAiKRAQokQ3JlYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSRgoHc2V0dGluZxgDIAEoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50c1NldHRpbmcixQEKJFVwZGF0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAhJVChdpbnZvaWNlU2VydmljZURpc2NvdW50cxgCIAEoCzIuLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50c0IE4kEBAhI0Cgp1cGRhdGVNYXNrGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIyCiREZWxldGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSCgoCaWQYASABKAkibgoHVGFnRGF0YRISCgpjdXN0b21lcklkGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRIUCgxjdXN0b21lck5hbWUYAyABKAkSJgoEdGFncxgEIAMoCzIYLmJsdWVhcGkuYmlsbGluZy52MS5UYWdzIiMKBFRhZ3MSCwoDa2V5GAEgASgJEg4KBnZhbHVlcxgCIAMoCSIuCg5HZXRUYWdzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDAoEdHlwZRgCIAEoCSI7CgtDdXN0b21GaWVsZBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiXgoXQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQSDQoFdmFsdWUYASABKAkSNAoLY3VzdG9tRmllbGQYAiABKAsyHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiNQoiTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBIPCgdncm91cElkGAEgASgJIoUBCiNMaXN0QmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXNwb25zZRIPCgdncm91cElkGAEgASgJEk0KGGJpbGxpbmdHcm91cEN1c3RvbUZpZWxkcxgCIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBDdXN0b21GaWVsZCI8ChhDcmVhdGVDdXN0b21GaWVsZFJlcXVlc3QSCwoDa2V5GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIkgKGFVwZGF0ZUN1c3RvbUZpZWxkUmVxdWVzdBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiJgoYRGVsZXRlQ3VzdG9tRmllbGRSZXF1ZXN0EgoKAmlkGAEgASgJIhgKFkxpc3RDdXN0b21GaWVsZFJlcXVlc3QiawoXQ3JlYXRlRnJlZUZvcm1hdFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSLwoFaXRlbXMYAyADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuRnJlZUZvcm1JdGVtImEKDEZyZWVGb3JtSXRlbRINCgVsYWJlbBgBIAEoCRIQCgh1bml0Q29zdBgCIAEoAxINCgV0b3RhbBgFIAEoAxIQCghxdWFudGl0eRgDIAEoDRIPCgdlbmFibGVkGAQgASgIIjoKF0RlbGV0ZUZyZWVGb3JtYXRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJIj0KFEdldEZyZWVGb3JtYXRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSFAoMaXNBc3NvY2lhdGVkGAIgASgIIm4KFUdldEZyZWVGb3JtYXRSZXNwb25zZRIPCgdncm91cElkGAMgASgJEg4KBnZlbmRvchgBIAEoCRI0CgpmcmVlRm9ybWF0GAIgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbSI6CiZHZXRNb250aGx5TWlzY0ZlZUltcG9ydFRlbXBsYXRlUmVxdWVzdBIQCghsYW5ndWFnZRgBIAEoCSL5AQocTW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZRIOCgZmb3JtYXQYASABKAkSFgoOZm9ybWF0X3ZlcnNpb24YAiABKAkSDwoHaGVhZGVycxgDIAMoCRISCgpzYW1wbGVfcm93GAQgAygJEhUKDWFsbG93ZWRfbW9kZXMYBSADKAkSGwoTbWF4X2ZpbGVfc2l6ZV9ieXRlcxgGIAEoAxIQCghtYXhfcm93cxgHIAEoBRJGCgtmaWVsZF9ydWxlcxgIIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydEZpZWxkUnVsZSJlCh1Nb250aGx5TWlzY0ZlZUltcG9ydEZpZWxkUnVsZRINCgVmaWVsZBgBIAEoCRIQCghyZXF1aXJlZBgCIAEoCBIOCgZmb3JtYXQYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkizgEKIEJ1bGtJbXBvcnRNb250aGx5TWlzY0ZlZXNSZXF1ZXN0EhsKDWJpbGxpbmdfbW9udGgYASABKAlCBOJBAQISGQoLY3N2X2NvbnRlbnQYAiABKAlCBOJBAQISFwoJZmlsZV9uYW1lGAMgASgJQgTiQQECEgwKBG1vZGUYBCABKAkSFAoGZm9ybWF0GAUgASgJQgTiQQECEhwKDmZvcm1hdF92ZXJzaW9uGAYgASgJQgTiQQECEhcKD2lkZW1wb3RlbmN5X2tleRgHIAEoCSKRAgoaTGlzdE1vbnRobHlNaXNjRmVlc1JlcXVlc3QSGwoNYmlsbGluZ19tb250aBgBIAEoCUIE4kEBAhIYChBiaWxsaW5nX2dyb3VwX2lkGAIgASgJEiAKGGJpbGxpbmdfZ3JvdXBfbmFtZV9xdWVyeRgDIAEoCRISCgppdGVtX3F1ZXJ5GAQgASgJEg4KBnNvdXJjZRgFIAEoCRISCgp1cGRhdGVkX2J5GAYgASgJEhUKDXVwZGF0ZWRfYWZ0ZXIYByABKAkSFgoOdXBkYXRlZF9iZWZvcmUYCCABKAkSEQoJcGFnZV9zaXplGAkgASgFEhIKCnBhZ2VfdG9rZW4YCiABKAkSDAoEc29ydBgLIAEoCSJ9ChtMaXN0TW9udGhseU1pc2NGZWVzUmVzcG9uc2USMAoEcm93cxgBIAMoCzIiLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiTQoYR2V0TW9udGhseU1pc2NGZWVSZXF1ZXN0EhQKBnJvd19pZBgBIAEoCUIE4kEBAhIbCg1iaWxsaW5nX21vbnRoGAIgASgJQgTiQQECIuwBChxFeHBvcnRNb250aGx5TWlzY0ZlZXNSZXF1ZXN0EhsKDWJpbGxpbmdfbW9udGgYASABKAlCBOJBAQISGAoQYmlsbGluZ19ncm91cF9pZBgCIAEoCRIgChhiaWxsaW5nX2dyb3VwX25hbWVfcXVlcnkYAyABKAkSEgoKaXRlbV9xdWVyeRgEIAEoCRIOCgZzb3VyY2UYBSABKAkSEgoKdXBkYXRlZF9ieRgGIAEoCRIVCg11cGRhdGVkX2FmdGVyGAcgASgJEhYKDnVwZGF0ZWRfYmVmb3JlGAggASgJEgwKBHNvcnQYCSABKAkiWwodRXhwb3J0TW9udGhseU1pc2NGZWVzUmVzcG9uc2USEwoLY3N2X2NvbnRlbnQYASABKAwSEgoKZXhwb3J0X3JlZhgCIAEoCRIRCglmaWxlX25hbWUYAyABKAkiPQoeR2V0TW9udGhseU1pc2NGZWVJbXBvcnRSZXF1ZXN0EhsKDWltcG9ydF9qb2JfaWQYASABKAlCBOJBAQIifQobVXBzZXJ0TW9udGhseU1pc2NGZWVSZXF1ZXN0Eg4KBnJvd19pZBgBIAEoCRI1CgNyb3cYAiABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWVCBOJBAQISFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJIlAKG0RlbGV0ZU1vbnRobHlNaXNjRmVlUmVxdWVzdBIUCgZyb3dfaWQYASABKAlCBOJBAQISGwoNYmlsbGluZ19tb250aBgCIAEoCUIE4kEBAiKsAgoOTW9udGhseU1pc2NGZWUSDgoGcm93X2lkGAEgASgJEhUKDWJpbGxpbmdfbW9udGgYAiABKAkSGAoQYmlsbGluZ19ncm91cF9pZBgDIAEoCRIaChJiaWxsaW5nX2dyb3VwX25hbWUYBCABKAkSEQoJaXRlbV9uYW1lGAUgASgJEhAKCHF1YW50aXR5GAYgASgJEhEKCXVuaXRfY29zdBgHIAEoCRIOCgZhbW91bnQYCCABKAkSDgoGc291cmNlGAkgASgJEhUKDWltcG9ydF9qb2JfaWQYCiABKAkSEgoKY3JlYXRlZF9ieRgLIAEoCRISCgpjcmVhdGVkX2F0GAwgASgJEhIKCnVwZGF0ZWRfYnkYDSABKAkSEgoKdXBkYXRlZF9hdBgOIAEoCSLjAwoaTW9udGhseU1pc2NGZWVJbXBvcnRSZXN1bHQSFQoNaW1wb3J0X2pvYl9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDAoEbW9kZRgDIAEoCRIVCg1iaWxsaW5nX21vbnRoGAQgASgJEhEKCWZpbGVfbmFtZRgFIAEoCRIRCglmaWxlX2hhc2gYBiABKAkSEgoKdG90YWxfcm93cxgHIAEoBRISCgp2YWxpZF9yb3dzGAggASgFEhUKDWluc2VydGVkX3Jvd3MYCSABKAUSFAoMdXBkYXRlZF9yb3dzGAogASgFEhYKDnVuY2hhbmdlZF9yb3dzGAsgASgFEhQKDGRlbGV0ZWRfcm93cxgMIAEoBRITCgtmYWlsZWRfcm93cxgNIAEoBRIjChtyZXBsYWNlX21vbnRoX2V4aXN0aW5nX3Jvd3MYDiABKAUSEgoKZXhwb3J0X3JlZhgPIAEoCRJGCgtyb3dfcmVzdWx0cxgQIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZUltcG9ydFJvd1Jlc3VsdBISCgpjcmVhdGVkX2J5GBEgASgJEhIKCmNyZWF0ZWRfYXQYEiABKAkSEgoKdXBkYXRlZF9hdBgTIAEoCSKXAwodTW9udGhseU1pc2NGZWVJbXBvcnRSb3dSZXN1bHQSFgoOY3N2X3Jvd19udW1iZXIYASABKAUSDgoGYWN0aW9uGAIgASgJEg4KBnJvd19pZBgDIAEoCRIVCg1iaWxsaW5nX21vbnRoGAQgASgJEhgKEGJpbGxpbmdfZ3JvdXBfaWQYBSABKAkSGgoSYmlsbGluZ19ncm91cF9uYW1lGAYgASgJEhEKCWl0ZW1fbmFtZRgHIAEoCRIQCghxdWFudGl0eRgIIAEoCRIRCgl1bml0X2Nvc3QYCSABKAkSDgoGYW1vdW50GAogASgJEk0KDnByZXZpb3VzX3ZhbHVlGAsgASgLMjUuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlSW1wb3J0UHJldmlvdXNWYWx1ZRJMChF2YWxpZGF0aW9uX2Vycm9ycxgMIAMoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZVZhbGlkYXRpb25FcnJvchIMCgRub3RlGA0gASgJIlgKIU1vbnRobHlNaXNjRmVlSW1wb3J0UHJldmlvdXNWYWx1ZRIQCghxdWFudGl0eRgBIAEoCRIRCgl1bml0X2Nvc3QYAiABKAkSDgoGYW1vdW50GAMgASgJIk0KHU1vbnRobHlNaXNjRmVlVmFsaWRhdGlvbkVycm9yEg0KBWZpZWxkGAEgASgJEgwKBGNvZGUYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSJ3Ch5VcGRhdGVUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEg8KB2dyb3VwSWQYAiABKAkSNAoFaXRlbXMYAyADKAsyJS5ibHVlYXBpLmJpbGxpbmcudjEuVGFnc0FkZGluZ1NldHRpbmciPgobR2V0VGFnc0FkZGluZ1NldHRpbmdSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJIkkKEVRhZ3NBZGRpbmdTZXR0aW5nEg8KB2dyb3VwSWQYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRIPCgd0YWdLZXlzGAMgAygJIk0KHUV4cG9ydFNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhQKBmZvcm1hdBgBIAEoCUIE4kEBAhIWCghsYW5ndWFnZRgCIAEoCUIE4kEBASJvCitFeHBvcnRBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhQKBmZvcm1hdBgBIAEoCUIE4kEBAhIWCghsYW5ndWFnZRgCIAEoCUIE4kEBARISCgpkaXJlY3RMaW5rGAMgASgIInQKMEV4cG9ydEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIUCgZmb3JtYXQYASABKAlCBOJBAQISFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESEgoKZGlyZWN0TGluaxgDIAEoCCI2ChxFeHBvcnRCaWxsaW5nR3JvdXBDc3ZSZXF1ZXN0EhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBIjUKHUV4cG9ydEJpbGxpbmdHcm91cENzdlJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSJcCh5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlcXVlc3QSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESIgoUaW5jbHVkZU1pc2NlbGxhbmVvdXMYAyABKAhCBOJBAQEiNwofRXhwb3J0SW52b2ljZVNldHRpbmdDc3ZSZXNwb25zZRIUCgxkb3dubG9hZExpbmsYASABKAkiQAotR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkiPAouR2V0QmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSK5AQohQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSUwoHaWRUb0tleRgCIAMoCzJCLmJsdWVhcGkuYmlsbGluZy52MS5BZGRCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QuSWRUb0tleUVudHJ5Gi4KDElkVG9LZXlFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIk4KJERlbGV0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBIPCgdncm91cElkGAEgASgJEhUKDWN1c3RvbUZpZWxkSWQYAiABKAkidgofQWRkQWNjb3VudFRvQmlsbGluZ0dyb3VwUmVxdWVzdBIPCgdncm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIyCghhY2NvdW50cxgDIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50VG9BZGQiUQoMQWNjb3VudFRvQWRkEhIKCmN1c3RvbWVySWQYASABKAkSEQoJYWNjb3VudElkGAIgASgJEgwKBG5hbWUYAyABKAkSDAoEbm90ZRgEIAEoCSKrAQocQWRkVGFnc1RvQmlsbGluZ0dyb3VwUmVxdWVzdBIPCgdncm91cElkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIwCghzZXR0aW5ncxgDIAMoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5UYWdTZXR0aW5nEjgKDW5vblRhZ1NldHRpbmcYBCABKAsyIS5ibHVlYXBpLmJpbGxpbmcudjEuTm9uVGFnU2V0dGluZyJHCgpUYWdTZXR0aW5nEhIKCmN1c3RvbWVySWQYASABKAkSJQoEdGFncxgCIAMoCzIXLmJsdWVhcGkuYmlsbGluZy52MS5UYWciMQoDVGFnEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIOCgZhc3NpZ24YAyABKAUiPgoNTm9uVGFnU2V0dGluZxIPCgdpbmNsdWRlGAEgASgIEgwKBHR5cGUYAiABKAkSDgoGYW1vdW50GAMgASgBIj4KHVNhdmVUYWdJbnZvaWNlU2V0dGluZ1Jlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCRINCgVlcnJvchgCIAEoCSJ+CiZVcGRhdGVOb25UYWdHcm91cFRvQmlsbGluZ0dyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSOAoIc2V0dGluZ3MYAyADKAsyJi5ibHVlYXBpLmJpbGxpbmcudjEuTm9uVGFnR3JvdXBTZXR0aW5nIj4KEk5vblRhZ0dyb3VwU2V0dGluZxIKCgJpZBgBIAEoCRIMCgR0eXBlGAIgASgJEg4KBmFtb3VudBgDIAEoASKaAQoaU2F2ZUludm9pY2VTZXR0aW5nc1JlcXVlc3QSDAoEZGF0ZRgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEQoJYWxsR3JvdXBzGAMgASgIEg4KBmdyb3VwcxgEIAMoCRI7Cg5pbnZvaWNlU2V0dGluZxgFIAEoCzIjLmJsdWVhcGkuYmlsbGluZy52MS5JbnZvaWNlU2V0dGluZ3MiswQKD0ludm9pY2VTZXR0aW5ncxIRCglpbnZvaWNlTm8YAiABKAkSFAoMZGlzY291bnRSYXRlGAQgASgBEhsKE2Rpc2NvdW50VGFyZ2V0VXNhZ2UYBSABKAkSGQoRZGlzY291bnRDYWxjTG9naWMYBiABKAkSDwoHdGF4UmF0ZRgHIAEoARISCgpzdXBwb3J0RmVlGAggASgJEhMKC3N1cHBvcnRSYXRlGAkgASgBEhwKFHN1cHBvcnRGZWVDYWxjVGFyZ2V0GAogASgJEhIKCnN1cHBvcnRGaXgYCyABKAESFwoPc3Vic3RpdHV0aW9uRmVlGAwgASgJEhgKEHN1YnN0aXR1dGlvblJhdGUYDSABKAESFwoPc3Vic3RpdHV0aW9uRml4GA4gASgBEiEKGXN1YnN0aXR1dGlvbkZlZUNhbGNUYXJnZXQYDyABKAkSIgoac3Vic3RpdHV0aW9uRmVlVGFyZ2V0VXNhZ2UYECABKAkSHwoXc3Vic3RpdHV0aW9uRmVlQ2FsY1R5cGUYESABKAkSEAoIY3VycmVuY3kYAyABKAkSFAoMZXhjaGFuZ2VSYXRlGBIgASgBEgwKBG1lbW8YEyABKAkSEAoIY2FsY1R5cGUYFCABKAkSOQoPYWRkaXRpb25hbEl0ZW1zGBUgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbRIcChRzdXBwb3J0RmVlQWRqdXN0bWVudBgWIAEoASKtAwoQQmFzaWNJbmZvcm1hdGlvbhIYChBiaWxsaW5nR3JvdXBOYW1lGAIgASgJEhYKDmJpbGxpbmdHcm91cElkGAMgASgJEhMKC2NvbXBhbnlOYW1lGAQgASgJEhYKCWFkZHJlc3NlZRgFIAEoCUgAiAEBEhQKB2NvdW50cnkYBiABKAlIAYgBARIXCgpwb3N0YWxDb2RlGAcgASgJSAKIAQESEQoEY2l0eRgIIAEoCUgDiAEBEhgKC3Bob25lTnVtYmVyGAkgASgJSASIAQESGQoMYWRkcmVzc0xpbmUxGAogASgJSAWIAQESGQoMYWRkcmVzc0xpbmUyGAsgASgJSAaIAQESEgoFc3RhdGUYDCABKAlIB4gBARIXCgpwcmVmZWN0dXJlGA0gASgJSAiIAQFCDAoKX2FkZHJlc3NlZUIKCghfY291bnRyeUINCgtfcG9zdGFsQ29kZUIHCgVfY2l0eUIOCgxfcGhvbmVOdW1iZXJCDwoNX2FkZHJlc3NMaW5lMUIPCg1fYWRkcmVzc0xpbmUyQggKBl9zdGF0ZUINCgtfcHJlZmVjdHVyZSJ3CilVcGRhdGVCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRI+ChBiYXNpY0luZm9ybWF0aW9uGAIgASgLMiQuYmx1ZWFwaS5iaWxsaW5nLnYxLkJhc2ljSW5mb3JtYXRpb24ivAEKJVVwZGF0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkc1JlcXVlc3QSCgoCaWQYASABKAkSVwoHaWRUb0tleRgCIAMoCzJGLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZHNSZXF1ZXN0LklkVG9LZXlFbnRyeRouCgxJZFRvS2V5RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJyCiNVcGRhdGVCaWxsaW5nR3JvdXBGcmVlRm9ybWF0UmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSLwoFaXRlbXMYAyADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuRnJlZUZvcm1JdGVtIuoCCihVcGRhdGVCaWxsaW5nR3JvdXBMaW5rZWRSZXNvdXJjZXNSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIXCg9zZWxlY3Rpb25NZXRob2QYAyABKAkSMgoIYWNjb3VudHMYBCADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFRvQWRkEjAKCHNldHRpbmdzGAUgAygLMh4uYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ1NldHRpbmcSPQoNbm9uVGFnU2V0dGluZxgGIAEoCzIhLmJsdWVhcGkuYmlsbGluZy52MS5Ob25UYWdTZXR0aW5nSACIAQESPwoOYWNjb3VudE9wdGlvbnMYByABKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudE9wdGlvbnNIAYgBAUIQCg5fbm9uVGFnU2V0dGluZ0IRCg9fYWNjb3VudE9wdGlvbnMi9gEKKFVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QSCgoCaWQYASABKAkSGQoMYmlsbGluZ1RpdGxlGAIgASgJSACIAQESHAoPY2FsY3VsYXRpb25UeXBlGAMgASgJSAGIAQESFQoIbGFuZ3VhZ2UYBCABKAlIAogBARIiChVpbnZvaWNlTGF5b3V0Q29uZmlnSWQYBSABKAlIA4gBAUIPCg1fYmlsbGluZ1RpdGxlQhIKEF9jYWxjdWxhdGlvblR5cGVCCwoJX2xhbmd1YWdlQhgKFl9pbnZvaWNlTGF5b3V0Q29uZmlnSWQirwEKKFVwZGF0ZUJpbGxpbmdHcm91cFJlc2VsbGVyQ2hhcmdlc1JlcXVlc3QSCgoCaWQYASABKAkSHAoPaW52b2ljZVRlbXBsYXRlGAIgASgJSACIAQESRQoHaW52b2ljZRgDIAEoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0SW52b2ljZUISChBfaW52b2ljZVRlbXBsYXRlIr8ECipVcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QSCgoCaWQYASABKAkSeAoDYXdzGAIgAygLMmUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhJ6CgVhenVyZRgDIAMoCzJlLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmdCBOJBAQISeAoDZ2NwGAQgAygLMmUuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEFkZGl0aW9uYWxDaGFyZ2VzUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhqUAQomQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmcSEAoCaWQYASABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAiABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISFgoIYWNjb3VudHMYAyADKAlCBOJBAQEiJwoZRGVsZXRlQmlsbGluZ0dyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCSJSCihHZXRCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAiKgAQopR2V0QmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVzcG9uc2USCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEg8KB2VuYWJsZWQYAyABKAgSRgoHc2V0dGluZxgEIAMoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5CaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW4i8AEKK1VwZGF0ZUJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEhUKB2VuYWJsZWQYAyABKAhCBOJBAQESTAoHc2V0dGluZxgEIAMoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5CaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5CBOJBAQESNAoKdXBkYXRlTWFzaxgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQIiMQoXR2V0QW5ub3VuY2VtZW50c1JlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASABKAkipwEKGUNyZWF0ZUFubm91bmNlbWVudFJlcXVlc3QSDQoFbGFiZWwYASABKAkSDAoEdHlwZRgCIAEoCRIQCghjb250ZW50cxgDIAEoCRIVCg1iaWxsaW5nR3JvdXBzGAQgAygJEhgKEGFsbEJpbGxpbmdHcm91cHMYBSABKAgSDQoFc3RhcnQYBiABKAMSCwoDZW5kGAcgASgDEg4KBnN0YXR1cxgIIAEoCSJ4ChlVcGRhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgASgJEkMKDGFubm91bmNlbWVudBgCIAEoCzItLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0IkoKIFVwZGF0ZUFubm91bmNlbWVudHNTdGF0dXNSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgAygJEg4KBnN0YXR1cxgCIAEoCSJFCh1VcGRhdGVBbm5vdW5jZW1lbnREYXRlUmVxdWVzdBIWCg5hbm5vdW5jZW1lbnRJZBgBIAMoCRIMCgRkYXRlGAIgASgDIjMKGURlbGV0ZUFubm91bmNlbWVudFJlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASABKAki6QEKDEFubm91bmNlbWVudBIKCgJpZBgBIAEoCRINCgVsYWJlbBgCIAEoCRIMCgR0eXBlGAMgASgJEg8KB21lc3NhZ2UYBCABKAkSFQoNYmlsbGluZ0dyb3VwcxgFIAMoCRIYChBhbGxCaWxsaW5nR3JvdXBzGA0gASgIEg0KBXN0YXJ0GAYgASgJEgsKA2VuZBgHIAEoCRIMCgRkYXRlGAggASgJEg4KBnN0YXR1cxgJIAEoCRISCgp1c2VyU3RhdHVzGAogASgJEg8KB2NyZWF0ZWQYCyABKAkSDwoHdXBkYXRlZBgMIAEoCSI2CiNHZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJIpYBCiRHZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzUmVzcG9uc2USDwoHZ3JvdXBJZBgBIAEoCRIRCglncm91cE5hbWUYAiABKAkSEQoJY29tcGFueUlkGAMgASgJEjcKDWFubm91bmNlbWVudHMYBCADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQW5ub3VuY2VtZW50IhMKEUdldENyZWRpdHNSZXF1ZXN0IsQBCgZDcmVkaXQSCgoCaWQYASABKAkSEgoKY3VzdG9tZXJJZBgCIAEoCRIUCgxjdXN0b21lck5hbWUYAyABKAkSFAoMY3JlZGl0QW1vdW50GAQgASgBEgwKBHRlcm0YBSABKAkSEwoLZGVzY3JpcHRpb24YBiABKAkSDwoHY3JlYXRlZBgHIAEoCRISCgppbml0aWFsRmVlGAggASgBEhUKDWNyZWRpdEJhbGFuY2UYCSABKAESDwoHYXBwbGllZBgKIAEoCCIXChVHZXRDc3ZTZXR0aW5nc1JlcXVlc3QipAEKCkNzdlNldHRpbmcSCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIyCgNjb2wYAyADKAsyJS5ibHVlYXBpLmJpbGxpbmcudjEuQ3N2U2V0dGluZy5Db2x1bW4aSAoGQ29sdW1uEgwKBG5hbWUYASABKAkSCgoCaWQYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHZW5hYmxlZBgEIAEoCCLmAQogVXBkYXRlSW52b2ljZUV4Y2hhbmdlUmF0ZVJlcXVlc3QSDQoFbW9udGgYASABKAkSDgoGdmVuZG9yGAIgASgJElwKDGV4Y2hhbmdlUmF0ZRgDIAMoCzJGLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlRXhjaGFuZ2VSYXRlUmVxdWVzdC5FeGNoYW5nZVJhdGVFbnRyeRIQCghncm91cElkcxgEIAMoCRozChFFeGNoYW5nZVJhdGVFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAE6AjgBIlsKGkNvbnZlcnRJbnZvaWNlVG9QZGZSZXF1ZXN0EgwKBGRhdGUYASABKAkSFQoNYmlsbGluZ2dyb3VwcxgCIAMoCRIYChBhbGxCaWxsaW5nR3JvdXBzGAMgASgIIkQKG0NvbnZlcnRJbnZvaWNlVG9QZGZSZXNwb25zZRIQCghwcm9ncmVzcxgBIAEoCRITCgtkb3dubG9hZFVybBgCIAEoCSKIAgohTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrEg8KB3ZlbmRvcnMYAiABKAkSEAoIY2FsY1R5cGUYAyABKAkSEwoLZGlzcGxheUNvc3QYBCABKAkSDgoGYmdUeXBlGAUgASgJEhMKC2NvbXBhbnlOYW1lGAYgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYByABKAkSFgoOYmlsbGluZ0dyb3VwSWQYCCABKAkSEAoIcGFnZVNpemUYCSABKAUSEgoKcGFnZU51bWJlchgKIAEoBSKXAgoUQmlsbGluZ0dyb3VwTGlzdEl0ZW0SGAoQYmlsbGluZ0dyb3VwTmFtZRgBIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRITCgtjb21wYW55TmFtZRgDIAEoCRIYChBiaWxsaW5nR3JvdXBUeXBlGAQgASgJEkwKB3ZlbmRvcnMYBSADKAsyOy5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwTGlzdEl0ZW0uQmlsbGluZ0dyb3VwVmVuZG9yEhkKEWJpbGxpbmdJbnRlcm5hbElkGAYgASgJGjUKEkJpbGxpbmdHcm91cFZlbmRvchIOCgZ2ZW5kb3IYASABKAkSDwoHZW5hYmxlZBgCIAEoCCK0AQoiTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXNwb25zZRI/Cg1iaWxsaW5nR3JvdXBzGAEgAygLMiguYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cExpc3RJdGVtEhIKCnRvdGFsQ291bnQYAiABKAUSEwoLY3VycmVudFBhZ2UYAyABKAUSEAoIcGFnZVNpemUYBCABKAUSEgoKdG90YWxQYWdlcxgFIAEoBSKOAQohQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEgoKAmlkGAEgASgJEhIKCmludGVybmFsSWQYBiABKAkSEAoIcGFyZW50SWQYAiABKAkSFAoMcm9vdFBhcmVudElkGAUgASgJEgwKBG5hbWUYAyABKAkSEwoLY29tcGFueU5hbWUYBCABKAkivgEKJEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cBIQCgJpZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAyABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISLAoIYWNjb3VudHMYBCADKAsyFC5ibHVlYXBpLmFwaS5BY2NvdW50QgTiQQEBIoACChFDaGlsZEJpbGxpbmdHcm91cBJPChBiYXNpY0luZm9ybWF0aW9uGAEgASgLMjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvbhJNCg9pbnZvaWNlU2V0dGluZ3MYAiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSOQoLYmlsbGluZ0luZm8YAyABKAsyJC5ibHVlYXBpLmFwaS5yaXBwbGUuQmlsbGluZ0dyb3VwSW5mbxIQCghoYXNDaGlsZBgEIAEoCCKsAgogQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSQwoDYXdzGAEgASgLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cFZlbmRvcmVkSW52b2ljZVNldHRpbmcSIQoZYWNjb3VudFN1cHBvcnRQbGFuRW5hYmxlZBgCIAEoCBJZChphY2NvdW50U3VwcG9ydFBsYW5TZXR0aW5ncxgDIAMoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5CaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW4SRQoFYXp1cmUYBCABKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwVmVuZG9yZWRJbnZvaWNlU2V0dGluZyKaAgoeQ3JlYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0Ek8KEGJhc2ljSW5mb3JtYXRpb24YASABKAsyNS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEjkKC2JpbGxpbmdJbmZvGAMgASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8STQoPaW52b2ljZVNldHRpbmdzGAIgASgLMjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEh0KFWludm9pY2VMYXlvdXRDb25maWdJZBgEIAEoCSIhCh9DcmVhdGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIjEKG0dldENoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJIlYKHEdldENoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2USNgoHZGV0YWlscxgBIAEoCzIlLmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cCJBCh1SZWFkQ2hpbGRCaWxsaW5nR3JvdXBzUmVxdWVzdBIOCgZyb290SWQYASABKAkSEAoIcGFyZW50SWQYAiABKAkiwAEKHlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJEk8KEGJhc2ljSW5mb3JtYXRpb24YAiABKAsyNS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uEjkKC2JpbGxpbmdJbmZvGAMgASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8iIQofVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSI0Ch5EZWxldGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCSIhCh9EZWxldGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlItABCi1VcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRJNCg9pbnZvaWNlU2V0dGluZ3MYAiABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSIgoVaW52b2ljZUxheW91dENvbmZpZ0lkGAMgASgJSACIAQFCGAoWX2ludm9pY2VMYXlvdXRDb25maWdJZCIwCi5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1Jlc3BvbnNlIpoDCjNTZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSGAoKaW50ZXJuYWxJZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISFAoGcm9vdElkGAMgASgJQgTiQQECEoUBCgdzZXR0aW5nGAQgAygLMm4uYmx1ZWFwaS5iaWxsaW5nLnYxLlNldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhqUAQomQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmcSEAoCaWQYASABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAiABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISFgoIYWNjb3VudHMYAyADKAlCBOJBAQEiVAoyU2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRIKCgJpZBgCIAEoCSKOAQo5U2V0Q2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSPQoIYWNjb3VudHMYAiADKAsyKy5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFNlcnZpY2VEaXNjb3VudHMiWQozR2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSDgoGdmVuZG9yGAIgASgJIs4BCjRHZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlc3BvbnNlEhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgDIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIsCghhY2NvdW50cxgEIAMoCzIULmJsdWVhcGkuYXBpLkFjY291bnRCBOJBAQEiSAoyR2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCSJBCjNHZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiUAo6UmVhZENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJInkKHUJ1bGtDcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0Eg4KBnZlbmRvchgFIAEoCRISCgpjc3ZDb250ZW50GAEgASgMEhEKCWRlbGltaXRlchgCIAEoCRIRCgloYXNIZWFkZXIYAyABKAgSDgoGZHJ5UnVuGAQgASgIIlUKG0J1bGtDcmVhdGVCaWxsaW5nR3JvdXBFcnJvchINCgVpbmRleBgBIAEoBRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIPCgdtZXNzYWdlGAMgASgJIu0BCh5CdWxrQ3JlYXRlQmlsbGluZ0dyb3VwTWV0YWRhdGESDgoGc3RhdHVzGAEgASgJEhIKCnRvdGFsQ291bnQYAiABKAUSFgoOcHJvY2Vzc2VkQ291bnQYAyABKAUSFAoMc3VjY2Vzc0NvdW50GAQgASgFEhQKDGZhaWx1cmVDb3VudBgFIAEoBRI/CgZlcnJvcnMYBiADKAsyLy5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0NyZWF0ZUJpbGxpbmdHcm91cEVycm9yEhEKCXN0YXJ0VGltZRgHIAEoCRIPCgdlbmRUaW1lGAggASgJIrkBChNFeGNsdWRlU2VydmljZUVudHJ5Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJEhcKD2V4Y2VwdF9wYXllcl9pZBgGIAMoCRIOCgZhY3Rpb24YByABKAkSDgoGc3RhdHVzGAggASgJEhUKDWVycm9yX21lc3NhZ2UYCSABKAkijwEKIENyZWF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJEhcKD2V4Y2VwdF9wYXllcl9pZBgGIAMoCSJbCiFDcmVhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2USNgoFZW50cnkYASABKAsyJy5ibHVlYXBpLmJpbGxpbmcudjEuRXhjbHVkZVNlcnZpY2VFbnRyeSKPAQogVXBkYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QSDgoGbXNwX2lkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIQCghwYXllcl9pZBgDIAEoCRIPCgdzZXJ2aWNlGAQgASgJEg8KB3Byb2R1Y3QYBSABKAkSFwoPZXhjZXB0X3BheWVyX2lkGAYgAygJIlsKIVVwZGF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZRI2CgVlbnRyeRgBIAEoCzInLmJsdWVhcGkuYmlsbGluZy52MS5FeGNsdWRlU2VydmljZUVudHJ5InYKIERlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJIlsKIURlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZRI2CgVlbnRyeRgBIAEoCzInLmJsdWVhcGkuYmlsbGluZy52MS5FeGNsdWRlU2VydmljZUVudHJ5IjwKGkxpc3RFeGNsdWRlU2VydmljZXNSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkiVwobTGlzdEV4Y2x1ZGVTZXJ2aWNlc1Jlc3BvbnNlEjgKB2VudHJpZXMYASADKAsyJy5ibHVlYXBpLmJpbGxpbmcudjEuRXhjbHVkZVNlcnZpY2VFbnRyeSJECgtTZXJ2aWNlSXRlbRIKCgJpZBgBIAEoCRIMCgRjb2RlGAIgASgJEg0KBW5hbWVzGAMgAygJEgwKBHNrdXMYBCADKAkiMwoTTGlzdFNlcnZpY2VzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDAoEY29kZRgCIAEoCSJFChRMaXN0U2VydmljZXNSZXNwb25zZRItCgRkYXRhGAEgAygLMh8uYmx1ZWFwaS5iaWxsaW5nLnYxLlNlcnZpY2VJdGVtInIKFkJ1bGtMaW5rQWNjb3VudFJlcXVlc3QSDgoGdmVuZG9yGAUgASgJEhIKCmNzdkNvbnRlbnQYASABKAwSEQoJZGVsaW1pdGVyGAIgASgJEhEKCWhhc0hlYWRlchgDIAEoCBIOCgZkcnlSdW4YBCABKAgiYQoUQnVsa0xpbmtBY2NvdW50RXJyb3ISDQoFaW5kZXgYASABKAUSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSEQoJYWNjb3VudElkGAMgASgJEg8KB21lc3NhZ2UYBCABKAki3wEKF0J1bGtMaW5rQWNjb3VudE1ldGFkYXRhEg4KBnN0YXR1cxgBIAEoCRISCgp0b3RhbENvdW50GAIgASgFEhYKDnByb2Nlc3NlZENvdW50GAMgASgFEhQKDHN1Y2Nlc3NDb3VudBgEIAEoBRIUCgxmYWlsdXJlQ291bnQYBSABKAUSOAoGZXJyb3JzGAYgAygLMiguYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtMaW5rQWNjb3VudEVycm9yEhEKCXN0YXJ0VGltZRgHIAEoCRIPCgdlbmRUaW1lGAggASgJIj4KGkJ1bGtUYWdCaWxsaW5nR3JvdXBSZXF1ZXN0EhIKCmNzdkNvbnRlbnQYASABKAwSDAoEbW9kZRgCIAEoCSKCAQoYQnVsa1RhZ0JpbGxpbmdHcm91cEVycm9yEg0KBWluZGV4GAEgASgFEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhIKCmN1c3RvbWVySWQYAyABKAkSCwoDa2V5GAQgASgJEg0KBXZhbHVlGAUgASgJEg8KB21lc3NhZ2UYBiABKAki5wEKG0J1bGtUYWdCaWxsaW5nR3JvdXBNZXRhZGF0YRIOCgZzdGF0dXMYASABKAkSEgoKdG90YWxDb3VudBgCIAEoBRIWCg5wcm9jZXNzZWRDb3VudBgDIAEoBRIUCgxzdWNjZXNzQ291bnQYBCABKAUSFAoMZmFpbHVyZUNvdW50GAUgASgFEjwKBmVycm9ycxgGIAMoCzIsLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrVGFnQmlsbGluZ0dyb3VwRXJyb3ISEQoJc3RhcnRUaW1lGAcgASgJEg8KB2VuZFRpbWUYCCABKAkiNwopR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkieQoqR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlEjEKBmxheW91dBgBIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0EgoKAmlkGAIgASgJEgwKBG5hbWUYAyABKAkiSgopU2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkSEQoJbGF5b3V0X2lkGAIgASgJImMKIENyZWF0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgwKBG5hbWUYASABKAkSMQoGbGF5b3V0GAIgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQiNgohQ3JlYXRlSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlEhEKCWxheW91dF9pZBgBIAEoCSJvCiBVcGRhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIKCgJpZBgBIAEoCRIxCgZsYXlvdXQYAiABKAsyIS5ibHVlYXBpLmFwaS5yaXBwbGUuSW52b2ljZUxheW91dBIMCgRuYW1lGAMgASgJIiAKHlJlYWRJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdCJuCh9SZWFkSW52b2ljZUxheW91dENvbmZpZ1Jlc3BvbnNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSMQoGbGF5b3V0GAMgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQiOgosRGVsZXRlQmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiLgogRGVsZXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkiOQorTGlzdEludm9pY2VMYXlvdXRDb25maWdCaWxsaW5nR3JvdXBzUmVxdWVzdBIKCgJpZBgBIAEoCSJICixMaXN0SW52b2ljZUxheW91dENvbmZpZ0JpbGxpbmdHcm91cHNSZXNwb25zZRIYChBiaWxsaW5nZ3JvdXBfaWRzGAEgAygJMrnKAQoHQmlsbGluZxKAAQoRTGlzdEJpbGxpbmdHcm91cHMSLC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cHNSZXF1ZXN0GiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cCIZgtPkkwITEhEvdjEvYmlsbGluZ2dyb3VwczABErABChpMaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZBI1LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3Vwc1BhZ2luYXRlZFJlcXVlc3QaNi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXNwb25zZSIjgtPkkwIdEhsvdjEvYmlsbGluZ2dyb3VwczpwYWdpbmF0ZWQSgwEKEkNyZWF0ZUJpbGxpbmdHcm91cBItLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBSZXF1ZXN0GiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cCIcgtPkkwIWOgEqIhEvdjEvYmlsbGluZ2dyb3VwcxKWAQoYQ3JlYXRlQmlsbGluZ0dyb3VwTWVyZ2VkEjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUJpbGxpbmdHcm91cE1lcmdlZFJlcXVlc3QaIC5ibHVlYXBpLmJpbGxpbmcudjEuQmlsbGluZ0dyb3VwIiOC0+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+STAgoSCC92MS90YWdzMAESfgoRQ3JlYXRlQ3VzdG9tRmllbGQSLC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQ3VzdG9tRmllbGRSZXF1ZXN0Gh8uYmx1ZWFwaS5iaWxsaW5nLnYxLkN1c3RvbUZpZWxkIhqC0+STAhQ6ASoiDy92MS9jdXN0b21maWVsZBKBAQoPTGlzdEN1c3RvbUZpZWxkEiouYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RDdXN0b21GaWVsZFJlcXVlc3QaHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiH4LT5JMCGToBKiIUL3YxL2N1c3RvbWZpZWxkOnJlYWQwARKUAQoaQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQSNS5ibHVlYXBpLmJpbGxpbmcudjEuQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IieC0+STAiE6ASoiHC92MS9iaWxsaW5nZ3JvdXAvY3VzdG9tZmllbGQSvgEKG0xpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZBI2LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0GjcuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlc3BvbnNlIiyC0+STAiY6ASoiIS92MS9iaWxsaW5nZ3JvdXAvY3VzdG9tZmllbGQ6cmVhZDABEoMBChVBZGRUYWdzVG9CaWxsaW5nR3JvdXASMC5ibHVlYXBpLmJpbGxpbmcudjEuQWRkVGFnc1RvQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIggtPkkwIaOgEqIhUvdjEvYmlsbGluZ2dyb3VwL3RhZ3MSrwEKH1VwZGF0ZU5vblRhZ0dyb3VwVG9CaWxsaW5nR3JvdXASOi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlTm9uVGFnR3JvdXBUb0JpbGxpbmdHcm91cFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiOILT5JMCMjoBKiItL3YxL2JpbGxpbmdncm91cC97aWR9L3t2ZW5kb3J9L3VudGFnZ2VkZ3JvdXBzErEBCh1EZWxldGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZBI4LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiPoLT5JMCOCo2L3YxL2JpbGxpbmdncm91cC9jdXN0b21maWVsZC97Z3JvdXBJZH0ve2N1c3RvbUZpZWxkSWR9EoMBChFVcGRhdGVDdXN0b21GaWVsZBIsLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDdXN0b21GaWVsZFJlcXVlc3QaHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiH4LT5JMCGToBKhoUL3YxL2N1c3RvbWZpZWxkL3tpZH0SdwoRRGVsZXRlQ3VzdG9tRmllbGQSLC5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQ3VzdG9tRmllbGRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYqFC92MS9jdXN0b21maWVsZC97aWR9EnIKEENyZWF0ZUZyZWVGb3JtYXQSKy5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlRnJlZUZvcm1hdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGYLT5JMCEzoBKiIOL3YxL2ZyZWVmb3JtYXQSeQoQRGVsZXRlRnJlZUZvcm1hdBIrLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVGcmVlRm9ybWF0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIggtPkkwIaKhgvdjEvZnJlZWZvcm1hdC97Z3JvdXBJZH0SiAEKDUdldEZyZWVGb3JtYXQSKC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0RnJlZUZvcm1hdFJlcXVlc3QaKS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0RnJlZUZvcm1hdFJlc3BvbnNlIiCC0+STAhoSGC92MS9mcmVlZm9ybWF0L3tncm91cElkfTABEr0BCh9HZXRNb250aGx5TWlzY0ZlZUltcG9ydFRlbXBsYXRlEjouYmx1ZWFwaS5iaWxsaW5nLnYxLkdldE1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGVSZXF1ZXN0GjAuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGUiLILT5JMCJhIkL3YxL21vbnRobHktbWlzYy1mZWVzOmltcG9ydFRlbXBsYXRlEpEBChlCdWxrSW1wb3J0TW9udGhseU1pc2NGZWVzEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtJbXBvcnRNb250aGx5TWlzY0ZlZXNSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIrgtPkkwIlOgEqIiAvdjEvbW9udGhseS1taXNjLWZlZXM6YnVsa0ltcG9ydBKVAQoTTGlzdE1vbnRobHlNaXNjRmVlcxIuLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0TW9udGhseU1pc2NGZWVzUmVxdWVzdBovLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0TW9udGhseU1pc2NGZWVzUmVzcG9uc2UiHYLT5JMCFxIVL3YxL21vbnRobHktbWlzYy1mZWVzEo0BChFHZXRNb250aGx5TWlzY0ZlZRIsLmJsdWVhcGkuYmlsbGluZy52MS5HZXRNb250aGx5TWlzY0ZlZVJlcXVlc3QaIi5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWUiJoLT5JMCIBIeL3YxL21vbnRobHktbWlzYy1mZWVzL3tyb3dfaWR9EqIBChVFeHBvcnRNb250aGx5TWlzY0ZlZXMSMC5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0TW9udGhseU1pc2NGZWVzUmVxdWVzdBoxLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRNb250aGx5TWlzY0ZlZXNSZXNwb25zZSIkgtPkkwIeEhwvdjEvbW9udGhseS1taXNjLWZlZXM6ZXhwb3J0ErMBChdHZXRNb250aGx5TWlzY0ZlZUltcG9ydBIyLmJsdWVhcGkuYmlsbGluZy52MS5HZXRNb250aGx5TWlzY0ZlZUltcG9ydFJlcXVlc3QaLi5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWVJbXBvcnRSZXN1bHQiNILT5JMCLhIsL3YxL21vbnRobHktbWlzYy1mZWUtaW1wb3J0cy97aW1wb3J0X2pvYl9pZH0SsgEKFFVwc2VydE1vbnRobHlNaXNjRmVlEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLlVwc2VydE1vbnRobHlNaXNjRmVlUmVxdWVzdBoiLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZSJFgtPkkwI/OgEqWho6ASoaFS92MS9tb250aGx5LW1pc2MtZmVlcxoeL3YxL21vbnRobHktbWlzYy1mZWVzL3tyb3dfaWR9EocBChREZWxldGVNb250aGx5TWlzY0ZlZRIvLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVNb250aGx5TWlzY0ZlZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJoLT5JMCICoeL3YxL21vbnRobHktbWlzYy1mZWVzL3tyb3dfaWR9EqIBChRHZXRUYWdzQWRkaW5nU2V0dGluZxIvLmJsdWVhcGkuYmlsbGluZy52MS5HZXRUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QaJS5ibHVlYXBpLmJpbGxpbmcudjEuVGFnc0FkZGluZ1NldHRpbmciMILT5JMCKhIoL3YxL3t2ZW5kb3J9L3RhZ3NhZGRpbmdzZXR0aW5nL3tncm91cElkfTABEpoBChdVcGRhdGVUYWdzQWRkaW5nU2V0dGluZxIyLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVUYWdzQWRkaW5nU2V0dGluZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLToBKhooL3YxL3t2ZW5kb3J9L3RhZ3NhZGRpbmdzZXR0aW5nL3tncm91cElkfRKhAQoVRXhwb3J0QmlsbGluZ0dyb3VwQ3N2EjAuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEJpbGxpbmdHcm91cENzdlJlcXVlc3QaMS5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0QmlsbGluZ0dyb3VwQ3N2UmVzcG9uc2UiI4LT5JMCHRIbL3YxL2V4cG9ydGNzdi9iaWxsaW5nLWdyb3VwEqkBChdFeHBvcnRJbnZvaWNlU2V0dGluZ0NzdhIyLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlcXVlc3QaMy5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0SW52b2ljZVNldHRpbmdDc3ZSZXNwb25zZSIlgtPkkwIfEh0vdjEvZXhwb3J0Y3N2L2ludm9pY2Utc2V0dGluZxKnAQoiVXBkYXRlQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvbhI9LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBCYXNpY0luZm9ybWF0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkOgEqGh8vdjEvYmlsbGluZ2dyb3VwL3tpZH06YmFzaWNJbmZvEqIBCh5VcGRhdGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZHMSOS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSItgtPkkwInOgEqGiIvdjEvYmlsbGluZ2dyb3VwL3tpZH06Y3VzdG9tRmllbGRzEpwBChxVcGRhdGVCaWxsaW5nR3JvdXBGcmVlRm9ybWF0EjcuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEZyZWVGb3JtYXRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiuC0+STAiU6ASoaIC92MS9iaWxsaW5nZ3JvdXAve2lkfTpmcmVlRm9ybWF0EqUBCiFVcGRhdGVCaWxsaW5nR3JvdXBMaW5rZWRSZXNvdXJjZXMSPC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwTGlua2VkUmVzb3VyY2VzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkOgEqGh8vdjEvYmlsbGluZ2dyb3VwL3tpZH06cmVzb3VyY2VzEqsBCiFVcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSPC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqOgEqGiUvdjEvYmlsbGluZ2dyb3VwL3tpZH06aW52b2ljZVNldHRpbmdzEqsBCiFVcGRhdGVCaWxsaW5nR3JvdXBSZXNlbGxlckNoYXJnZXMSPC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwUmVzZWxsZXJDaGFyZ2VzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqOgEqGiUvdjEvYmlsbGluZ2dyb3VwL3tpZH06cmVzZWxsZXJDaGFyZ2VzErEBCiNVcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlcxI+LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMoLT5JMCLDoBKhonL3YxL2JpbGxpbmdncm91cC97aWR9OmFkZGl0aW9uYWxDaGFyZ2VzEtQBCiFHZXRCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW4SPC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVxdWVzdBo9LmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXNwb25zZSIygtPkkwIsEiovdjEvYmlsbGluZ2dyb3VwL3tpZH0ve3ZlbmRvcn0vc3VwcG9ydHBsYW4StgEKJFVwZGF0ZUJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhbhI/LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjWC0+STAi86ASoaKi92MS9iaWxsaW5nZ3JvdXAve2lkfS97dmVuZG9yfS9zdXBwb3J0cGxhbhKBAQoSQ3JlYXRlQW5ub3VuY2VtZW50Ei0uYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUFubm91bmNlbWVudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJILT5JMCHjoBKiIZL3YxL3Jlc2VsbGVyL2Fubm91bmNlbWVudBKSAQoSVXBkYXRlQW5ub3VuY2VtZW50Ei0uYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFubm91bmNlbWVudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiNYLT5JMCLzoBKhoqL3YxL3Jlc2VsbGVyL2Fubm91bmNlbWVudC97YW5ub3VuY2VtZW50SWR9EpwBChlVcGRhdGVBbm5vdW5jZW1lbnRzU3RhdHVzEjQuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFubm91bmNlbWVudHNTdGF0dXNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjGC0+STAis6ASoyJi92MS9yZXNlbGxlci9hbm5vdW5jZW1lbnRzL2J1bGsvc3RhdHVzEqABChZVcGRhdGVBbm5vdW5jZW1lbnREYXRlEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFubm91bmNlbWVudERhdGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjuC0+STAjU6ASoyMC92MS9yZXNlbGxlci9hbm5vdW5jZW1lbnRzL3thbm5vdW5jZW1lbnRJZH0vZGF0ZRKPAQoSRGVsZXRlQW5ub3VuY2VtZW50Ei0uYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUFubm91bmNlbWVudFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMoLT5JMCLCoqL3YxL3Jlc2VsbGVyL2Fubm91bmNlbWVudC97YW5ub3VuY2VtZW50SWR9EqABChBHZXRBbm5vdW5jZW1lbnRzEisuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEFubm91bmNlbWVudHNSZXF1ZXN0GiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFubm91bmNlbWVudCI7gtPkkwI1EjMvYmlsbGluZy92MS9yZXNlbGxlci9hbm5vdW5jZW1lbnRzL3thbm5vdW5jZW1lbnRJZH0wARLOAQocR2V0QmlsbGluZ0dyb3VwQW5ub3VuY2VtZW50cxI3LmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzUmVxdWVzdBo4LmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBBbm5vdW5jZW1lbnRzUmVzcG9uc2UiOYLT5JMCMxIxL3YxL2JpbGxpbmdncm91cC9yZXNlbGxlci9hbm5vdW5jZW1lbnRzL3tncm91cElkfTABEmYKCkdldENyZWRpdHMSJS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q3JlZGl0c1JlcXVlc3QaGi5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlZGl0IhOC0+STAg0SCy92MS9jcmVkaXRzMAESdgoOR2V0Q3N2U2V0dGluZ3MSKS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q3N2U2V0dGluZ3NSZXF1ZXN0Gh4uYmx1ZWFwaS5iaWxsaW5nLnYxLkNzdlNldHRpbmciF4LT5JMCERIPL3YxL2NzdnNldHRpbmdzMAESqQEKF0NyZWF0ZUNoaWxkQmlsbGluZ0dyb3VwEjIuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBozLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIiWC0+STAh86ASoiGi92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuEqoBChRHZXRDaGlsZEJpbGxpbmdHcm91cBIvLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QaMC5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSIvgtPkkwIpEicvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0SoAEKFlJlYWRDaGlsZEJpbGxpbmdHcm91cHMSMS5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZENoaWxkQmlsbGluZ0dyb3Vwc1JlcXVlc3QaJS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXAiKoLT5JMCJDoBKiIfL3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW46cmVhZDABErYBChdVcGRhdGVDaGlsZEJpbGxpbmdHcm91cBIyLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QaMy5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSIygtPkkwIsOgEqGicvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0SswEKF0RlbGV0ZUNoaWxkQmlsbGluZ0dyb3VwEjIuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBozLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlIi+C0+STAikqJy92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfRLzAQomVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3MSQS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0GkIuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzUmVzcG9uc2UiQoLT5JMCPDoBKho3L3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L2ludm9pY2VTZXR0aW5ncxLSAQorU2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJGLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJDgtPkkwI9OgEqIjgvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vc2VydmljZURpc2NvdW50cxLtAQoyU2V0Q2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSTS5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IlCC0+STAko6ASoiRS92MS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9zZXJ2aWNlRGlzY291bnRzL2FjY291bnRzOnNldBLlAQosU2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2USRy5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IlSC0+STAk46ASoiSS92MS97dmVuZG9yfS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9jdXN0b21pemVkQmlsbGluZ1NlcnZpY2USlgIKLEdldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEkcuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBpILmJsdWVhcGkuYmlsbGluZy52MS5HZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlc3BvbnNlIlGC0+STAksSSS92MS97dmVuZG9yfS9iaWxsaW5nZ3JvdXBzL2NoaWxkcmVuL3tpbnRlcm5hbElkfS9jdXN0b21pemVkQmlsbGluZ1NlcnZpY2UwARKAAgorR2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJGLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBpHLmJsdWVhcGkuYmlsbGluZy52MS5HZXRDaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2UiQILT5JMCOhI4L3YxL2JpbGxpbmdncm91cHMvY2hpbGRyZW4ve2ludGVybmFsSWR9L3NlcnZpY2VEaXNjb3VudHMSiwIKM1JlYWRDaGlsZEJpbGxpbmdHcm91cEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxJOLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkQ2hpbGRCaWxsaW5nR3JvdXBBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GjIuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cyJOgtPkkwJIEkYvdjEvYmlsbGluZ2dyb3Vwcy9jaGlsZHJlbi97aW50ZXJuYWxJZH0vc2VydmljZURpc2NvdW50cy9hY2NvdW50czpyZWFkMAEShwEKFkJ1bGtDcmVhdGVCaWxsaW5nR3JvdXASMS5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0NyZWF0ZUJpbGxpbmdHcm91cFJlcXVlc3QaES5wcm90b3MuT3BlcmF0aW9uIieC0+STAiE6ASoiHC92MS9iaWxsaW5nZ3JvdXBzOmJ1bGtDcmVhdGUSvwEKGUNyZWF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnkSNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlcXVlc3QaNS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlc3BvbnNlIjWC0+STAi86ASoiKi92MS9iaWxsaW5nZ3JvdXBzL2V4Y2x1ZGUtc2VydmljZS1zZXR0aW5ncxK/AQoZVXBkYXRlRXhjbHVkZVNlcnZpY2VFbnRyeRI0LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVxdWVzdBo1LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2UiNYLT5JMCLzoBKhoqL3YxL2JpbGxpbmdncm91cHMvZXhjbHVkZS1zZXJ2aWNlLXNldHRpbmdzErwBChlEZWxldGVFeGNsdWRlU2VydmljZUVudHJ5EjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0GjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXNwb25zZSIygtPkkwIsKiovdjEvYmlsbGluZ2dyb3Vwcy9leGNsdWRlLXNlcnZpY2Utc2V0dGluZ3MSqgEKE0xpc3RFeGNsdWRlU2VydmljZXMSLi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEV4Y2x1ZGVTZXJ2aWNlc1JlcXVlc3QaLy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEV4Y2x1ZGVTZXJ2aWNlc1Jlc3BvbnNlIjKC0+STAiwSKi92MS9iaWxsaW5nZ3JvdXBzL2V4Y2x1ZGUtc2VydmljZS1zZXR0aW5ncxKAAQoMTGlzdFNlcnZpY2VzEicuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RTZXJ2aWNlc1JlcXVlc3QaKC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdFNlcnZpY2VzUmVzcG9uc2UiHYLT5JMCFxIVL3YxL3t2ZW5kb3J9L3NlcnZpY2VzEn4KD0J1bGtMaW5rQWNjb3VudBIqLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrTGlua0FjY291bnRSZXF1ZXN0GhEucHJvdG9zLk9wZXJhdGlvbiIsgtPkkwImOgEqIiEvdjEvYmlsbGluZ2dyb3VwczpidWxrTGlua0FjY291bnQSfgoTQnVsa1RhZ0JpbGxpbmdHcm91cBIuLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrVGFnQmlsbGluZ0dyb3VwUmVxdWVzdBoRLnByb3Rvcy5PcGVyYXRpb24iJILT5JMCHjoBKiIZL3YxL2JpbGxpbmdncm91cHM6YnVsa1RhZxLXAQoiR2V0QmlsbGluZ0dyb3VwSW52b2ljZUxheW91dENvbmZpZxI9LmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBo+LmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnUmVzcG9uc2UiMoLT5JMCLBIqL3YxL2JpbGxpbmdncm91cHMve2lkfS9pbnZvaWNlbGF5b3V0Y29uZmlnErIBCiJTZXRCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnEj0uYmx1ZWFwaS5iaWxsaW5nLnYxLlNldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjWC0+STAi86ASoiKi92MS9iaWxsaW5nZ3JvdXBzL3tpZH0vaW52b2ljZWxheW91dGNvbmZpZxKsAQoZQ3JlYXRlSW52b2ljZUxheW91dENvbmZpZxI0LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBo1LmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVzcG9uc2UiIoLT5JMCHDoBKiIXL3YxL2ludm9pY2VsYXlvdXRjb25maWcSkgEKGVVwZGF0ZUludm9pY2VMYXlvdXRDb25maWcSNC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJ4LT5JMCIToBKhocL3YxL2ludm9pY2VsYXlvdXRjb25maWcve2lkfRKtAQoXUmVhZEludm9pY2VMYXlvdXRDb25maWcSMi5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0GjMuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRJbnZvaWNlTGF5b3V0Q29uZmlnUmVzcG9uc2UiJ4LT5JMCIToBKiIcL3YxL2ludm9pY2VsYXlvdXRjb25maWc6cmVhZDABErUBCiVEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlTGF5b3V0Q29uZmlnEkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjKC0+STAiwqKi92MS9iaWxsaW5nZ3JvdXBzL3tpZH0vaW52b2ljZWxheW91dGNvbmZpZxKPAQoZRGVsZXRlSW52b2ljZUxheW91dENvbmZpZxI0LmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeKhwvdjEvaW52b2ljZWxheW91dGNvbmZpZy97aWR9Et0BCiRMaXN0SW52b2ljZUxheW91dENvbmZpZ0JpbGxpbmdHcm91cHMSPy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VMYXlvdXRDb25maWdCaWxsaW5nR3JvdXBzUmVxdWVzdBpALmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZUxheW91dENvbmZpZ0JpbGxpbmdHcm91cHNSZXNwb25zZSIygtPkkwIsEiovdjEvaW52b2ljZWxheW91dGNvbmZpZy97aWR9L2JpbGxpbmdncm91cHManQGSQZkBEkYoQkVUQSkgQmlsbGluZyBBUEkuIEJhc2UgVVJMOiBodHRwczovL2FwaS5hbHBoYXVzLmNsb3VkL20vYmx1ZS9iaWxsaW5nGk8KElNlcnZpY2UgZGVmaW5pdGlvbhI5aHR0cHM6Ly9naXRodWIuY29tL2FscGhhdXNsYWJzL2JsdWVhcGkvdHJlZS9tYWluL2JpbGxpbmcvQlEKGWNsb3VkLmFscGhhdXMuYXBpLmJpbGxpbmdCDEJpbGxpbmdQcm90b1omZ2l0aHViLmNvbS9hbHBoYXVzbGFicy9ibHVlYXBpL2JpbGxpbmdiBnByb3RvMw", [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+CitEZWxldGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkifQorUmVtb3ZlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEj0KCGFjY291bnRzGAQgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIk8KMENyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJEgoKAmlkGAIgASgJIj8KMUNyZWF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiTwowVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSCgoCaWQYAiABKAkiPwoxVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZRIKCgJpZBgBIAEoCSJDCjBEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSJXChRDcmVhdGVJbnZvaWNlUmVxdWVzdBIMCgRkYXRlGAQgASgJEg4KBnZlbmRvchgBIAEoCRIRCglhbGxHcm91cHMYAiABKAgSDgoGZ3JvdXBzGAMgAygJIiUKF0dldEludm9pY2VTdGF0dXNSZXF1ZXN0EgoKAmlkGAEgASgJIigKGExpc3RJbnZvaWNlU3RhdHVzUmVxdWVzdBIMCgRkYXRlGAEgASgJImAKHFVwZGF0ZUludm9pY2VQcmV2aWV3c1JlcXVlc3QSDAoEZGF0ZRgBIAEoCRIRCglhbGxHcm91cHMYAiABKAgSDgoGZ3JvdXBzGAMgAygJEg8KB2VuYWJsZWQYBCABKAgizwEKFUNyZWF0ZVJlc2VsbGVyUmVxdWVzdBIPCgdncm91cElkGAEgASgJEg0KBWVtYWlsGAIgASgJEhAKCHBhc3N3b3JkGAMgASgJEhQKDG5vdGlmaWNhdGlvbhgEIAEoCBI2Cgp3YXZlQ29uZmlnGAUgAygLMiIuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyQ29uZmlnEjYKCmFxdWFDb25maWcYBiADKAsyIi5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXJDb25maWciRgoUTGlzdFJlc2VsbGVyc1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2siUAoSR2V0UmVzZWxsZXJSZXF1ZXN0EgoKAmlkGAEgASgJEi4KCmZpZWxkX21hc2sYAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIqYCChVVcGRhdGVSZXNlbGxlclJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISEwoFZW1haWwYAiABKAlCBOJBAQESFwoIcGFzc3dvcmQYAyABKAlCBeJBAgQBEjwKCndhdmVDb25maWcYBCADKAsyIi5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXJDb25maWdCBOJBAQESPAoKYXF1YUNvbmZpZxgFIAMoCzIiLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlckNvbmZpZ0IE4kEBARIbCgxub3RpZmljYXRpb24YBiABKAhCBeJBAgQBEjQKCnVwZGF0ZU1hc2sYByABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIiMKFURlbGV0ZVJlc2VsbGVyUmVxdWVzdBIKCgJpZBgBIAEoCSJKChhHZXRCaWxsaW5nU2V0dGluZ1JlcXVlc3QSLgoKZmllbGRfbWFzaxgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2sixwIKGUdldEJpbGxpbmdTZXR0aW5nUmVzcG9uc2USMAoJeWVhck1vbnRoGAEgAygLMh0uYmx1ZWFwaS5hcGkucmlwcGxlLlllYXJNb250aBI0Cg5yb3VuZGluZ01ldGhvZBgCIAEoCzIcLmJsdWVhcGkuYXBpLnJpcHBsZS5Sb3VuZGluZxI6ChRleHBvcnRSb3VuZGluZ01ldGhvZBgDIAEoCzIcLmJsdWVhcGkuYXBpLnJpcHBsZS5Sb3VuZGluZxI4Cg1pbnZvaWNlTGF5b3V0GAQgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQSMwoOaW52b2ljZUR1ZURhdGUYBSABKAsyGy5ibHVlYXBpLmFwaS5yaXBwbGUuRHVlRGF0ZRIXCg9zdXBwb3J0Q3VycmVuY3kYBiADKAkiOQoYTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCSJlChxTZXRHbG9iYWxFeGNoYW5nZVJhdGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCRIQCghjdXJyZW5jeRgDIAEoCRIUCgxleGNoYW5nZVJhdGUYBCABKAEidwobU2V0UGF5ZXJFeGNoYW5nZVJhdGVSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIRCglhY2NvdW50SWQYAiABKAkSDQoFbW9udGgYAyABKAkSEAoIY3VycmVuY3kYBCABKAkSFAoMZXhjaGFuZ2VSYXRlGAUgASgBImwKIlNldEJpbGxpbmdHcm91cEV4Y2hhbmdlUmF0ZVJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRINCgVtb250aBgCIAEoCRIQCghjdXJyZW5jeRgDIAEoCRIUCgxleGNoYW5nZVJhdGUYBCABKAEi4gEKGUxpc3RFeGNoYW5nZVJhdGVzUmVzcG9uc2USDQoFbW9udGgYASABKAkSNgoGY29tbW9uGAIgASgLMiYuYmx1ZWFwaS5hcGkucmlwcGxlLkNvbW1vbkV4Y2hhbmdlUmF0ZRJCCgxiaWxsaW5nR3JvdXAYAyADKAsyLC5ibHVlYXBpLmFwaS5yaXBwbGUuQmlsbGluZ0dyb3VwRXhjaGFuZ2VSYXRlEjoKBXBheWVyGAQgASgLMisuYmx1ZWFwaS5hcGkucmlwcGxlLlZlbmRvclBheWVyRXhjaGFuZ2VSYXRlIkkKF0xpc3RBY2Nlc3NHcm91cHNSZXF1ZXN0Ei4KCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIlQKGENyZWF0ZUFjY2Vzc0dyb3VwUmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhUKDWJpbGxpbmdHcm91cHMYAyADKAkiYAoYVXBkYXRlQWNjZXNzR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSFQoNYmlsbGluZ0dyb3VwcxgEIAMoCSImChhEZWxldGVBY2Nlc3NHcm91cFJlcXVlc3QSCgoCaWQYASABKAkifQoSTGlzdEludm9pY2VSZXF1ZXN0EgwKBGRhdGUYASABKAkSDgoGdmVuZG9yGAIgASgJEhkKEWJpbGxpbmdJbnRlcm5hbElkGAMgASgJEi4KCmZpZWxkX21hc2sYBCABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrIp0JChNMaXN0SW52b2ljZVJlc3BvbnNlEhkKEWJpbGxpbmdJbnRlcm5hbElkGAEgASgJEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhgKEGJpbGxpbmdHcm91cE5hbWUYAyABKAkSEwoLY29tcGFueU5hbWUYBCABKAkSGgoSZmluYWxpemF0aW9uU3RhdHVzGAUgASgJEhEKCWlzQ3JlYXRlZBgGIAEoCBIZChFpc1NldHRpbmdNb2RpZmllZBgHIAEoCBITCgtjcmVhdGVkRGF0ZRgIIAEoCRITCgt1cGRhdGVkRGF0ZRgJIAEoCRIWCg5jcmVhdGVkVmVuZG9ycxgKIAMoCRITCgtpc1B1Ymxpc2hlZBgLIAEoCBJdChN2ZW5kb3JCaWxsaW5nQW1vdW50GAwgAygLMkAuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UuVmVuZG9yQmlsbGluZ0Ftb3VudEVudHJ5EhoKEmJpbGxpbmdBbW91bnRUb3RhbBgNIAEoCRIQCghjdXJyZW5jeRgOIAEoCRINCgV1cmxJZBgPIAEoCRJtChtjcmVhdGVkVmVuZG9ySW52b2ljZVNldHRpbmcYECADKAsySC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXNwb25zZS5DcmVhdGVkVmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRJpChlzYXZlZFZlbmRvckludm9pY2VTZXR0aW5nGBEgAygLMkYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UuU2F2ZWRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5Em0KG2RlZmF1bHRWZW5kb3JJbnZvaWNlU2V0dGluZxgSIAMoCzJILmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVJlc3BvbnNlLkRlZmF1bHRWZW5kb3JJbnZvaWNlU2V0dGluZ0VudHJ5EhAKCGhhc0NoaWxkGBMgASgIEhcKD2F0dGFjaGVkVmVuZG9ycxgUIAMoCRo6ChhWZW5kb3JCaWxsaW5nQW1vdW50RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpnCiBDcmVhdGVkVmVuZG9ySW52b2ljZVNldHRpbmdFbnRyeRILCgNrZXkYASABKAkSMgoFdmFsdWUYAiABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzOgI4ARplCh5TYXZlZFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSCwoDa2V5GAEgASgJEjIKBXZhbHVlGAIgASgLMiMuYmx1ZWFwaS5iaWxsaW5nLnYxLkludm9pY2VTZXR0aW5nczoCOAEaZwogRGVmYXVsdFZlbmRvckludm9pY2VTZXR0aW5nRW50cnkSCwoDa2V5GAEgASgJEjIKBXZhbHVlGAIgASgLMiMuYmx1ZWFwaS5iaWxsaW5nLnYxLkludm9pY2VTZXR0aW5nczoCOAEiKQobTGlzdEFiY0JpbGxpbmdHcm91cHNSZXF1ZXN0EgoKAmlkGAEgASgJIk4KIkxpc3RBYmNCaWxsaW5nR3JvdXBBY2NvdW50c1JlcXVlc3QSDwoHcGF5ZXJJZBgBIAEoCRIXCg9iaWxsaW5nR3JvdXBBcm4YAiABKAkijwEKD0FiY0JpbGxpbmdHcm91cBILCgNhcm4YASABKAkSDAoEbmFtZRgCIAEoCRIUCgxjcmVhdGlvblRpbWUYAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSGAoQcHJpbWFyeUFjY291bnRJZBgFIAEoCRIMCgRzaXplGAYgASgJEg4KBnN0YXR1cxgHIAEoCSI0CgpBYmNBY2NvdW50EhEKCWFjY291bnRJZBgBIAEoCRITCgthY2NvdW50TmFtZRgCIAEoCSJiCh1SZWFkSW52b2ljZUFkanVzdG1lbnRzUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSEQoJYWNjb3VudElkGAIgASgJEg0KBW1vbnRoGAMgASgJEg8KB2ZlZVR5cGUYBCABKAkimQEKHFJlYWRBZGp1c3RtZW50RW50cmllc1JlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhMKBW1vbnRoGAIgASgJQgTiQQEBGk4KIkFkanVzdG1lbnRFbnRyaWVzUmVxdWVzdEF3c09wdGlvbnMSEwoLc3BwRGlzY291bnQYASABKAgSEwoLZWRwRGlzY291bnQYAiABKAgiQwoZR2V0QWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISEAoCaWQYAiABKAlCBOJBAQIingMKG0FwcGx5QWRqdXN0bWVudEVudHJ5UmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISUwoHc2V0dGluZxgCIAEoCzI8LmJsdWVhcGkuYmlsbGluZy52MS5BcHBseUFkanVzdG1lbnRFbnRyeVJlcXVlc3QuQXBwbHlTZXR0aW5nQgTiQQECEhUKB2VudHJpZXMYAyADKAlCBOJBAQIa/AEKDEFwcGx5U2V0dGluZxITCgVtb250aBgBIAEoCUIE4kEBARIVCgd0YXhGcmVlGAIgASgIQgTiQQEBEmoKDGV4Y2hhbmdlUmF0ZRgDIAMoCzJOLmJsdWVhcGkuYmlsbGluZy52MS5BcHBseUFkanVzdG1lbnRFbnRyeVJlcXVlc3QuQXBwbHlTZXR0aW5nLkV4Y2hhbmdlUmF0ZUVudHJ5QgTiQQEBEh8KEWJpbGxpbmdJbnRlcm5hbElkGAQgASgJQgTiQQEBGjMKEUV4Y2hhbmdlUmF0ZUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoAToCOAEiTAodUmVzdG9yZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhUKB2VudHJpZXMYAyADKAlCBOJBAQIiXwobU3BsaXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhIQCgJpZBgCIAEoCUIE4kEBAhIYCgpzdGFydE1vbnRoGAMgASgJQgTiQQECIvwBCh5BbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECElYKBmNvbmZpZxgDIAMoCzJALmJsdWVhcGkuYmlsbGluZy52MS5BbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QuQWNjb3VudENvbmZpZ0IE4kEBAhIhChNhY2NvdW50Rm9yUmVtYWluaW5nGAQgASgJQgTiQQECGjcKDUFjY291bnRDb25maWcSEAoCaWQYASABKAlCBOJBAQISFAoGYW1vdW50GAIgASgBQgTiQQECIkwKIlJlc3RvcmVTcGxpdEFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECIk8KJVJlc3RvcmVBbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhAKAmlkGAIgASgJQgTiQQECIn4KFkNyZWF0ZUN1c3RvbUZlZVJlcXVlc3QSFAoGdmVuZG9yGAEgASgJQgTiQQECEhMKBW1vbnRoGAIgASgJQgTiQQECEjkKB2VudHJpZXMYAyADKAsyIi5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmVlRW50cnlCBOJBAQIioQMKDkN1c3RvbUZlZUVudHJ5EhcKCWFjY291bnRJZBgBIAEoCUIE4kEBAhIcCg5wYXllckFjY291bnRJZBgCIAEoCUIE4kEBAhIVCgdmZWVUeXBlGAMgASgJQgTiQQECEhkKC21vYmluZ2lUeXBlGAQgASgJQgTiQQECEhQKBmFtb3VudBgFIAEoAUIE4kEBAhIaCgxjdXJyZW5jeUNvZGUYBiABKAlCBOJBAQISGQoLZGVzY3JpcHRpb24YByABKAlCBOJBAQISGQoLcHJvZHVjdENvZGUYCCABKAlCBOJBAQESGQoLcHJvZHVjdE5hbWUYCSABKAlCBOJBAQESGAoKdXNhZ2VTdGFydBgKIAEoCUIE4kEBARIaCgx0aW1lSW50ZXJ2YWwYCyABKAlCBOJBAQESQAoEbWV0YRgMIAMoCzIsLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GZWVFbnRyeS5NZXRhRW50cnlCBOJBAQEaKwoJTWV0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiKgoXQ3JlYXRlQ3VzdG9tRmVlUmVzcG9uc2USDwoHY3JlYXRlZBgBIAEoBSJ9Ch9MaXN0QWRqdXN0bWVudEVudHJ5SXRlbXNSZXF1ZXN0EhQKBnZlbmRvchgBIAEoCUIE4kEBAhITCgVtb250aBgCIAEoCUIE4kEBAhIZCgttb2JpbmdpVHlwZRgDIAEoCUIE4kEBARIUCgZzdGF0dXMYBCABKAlCBOJBAQEiugEKE0FkanVzdG1lbnRFbnRyeUl0ZW0SNQoFZW50cnkYASABKAsyJi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQWRqdXN0bWVudEVudHJ5Ej8KBG1ldGEYAiADKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuQWRqdXN0bWVudEVudHJ5SXRlbS5NZXRhRW50cnkaKwoJTWV0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiPAobTGlzdEFjY291bnRSZXNvdXJjZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRINCgVtb250aBgCIAEoCSJKCg9SZXNvdXJjZUFjY291bnQSDwoHcGF5ZXJJZBgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEhIKCnJlZ2lzdGVyZWQYAyABKAgiSAoaR2V0QWRqdXN0bWVudENvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEhoKEmluY2x1ZGVTUFBEaXNjb3VudBgCIAEoCCKNAQodQ3JlYXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEioKBmNvbmZpZxgCIAMoCzIaLmJsdWVhcGkuYXBpLkNvbmZpZ0ZpbHRlcnMSMAoIYWNjb3VudHMYAyADKAsyHi5ibHVlYXBpLmFwaS5NYW5hZ2VtZW50QWNjb3VudCKNAQodVXBkYXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEioKBmNvbmZpZxgCIAMoCzIaLmJsdWVhcGkuYXBpLkNvbmZpZ0ZpbHRlcnMSMAoIYWNjb3VudHMYAyADKAsyHi5ibHVlYXBpLmFwaS5NYW5hZ2VtZW50QWNjb3VudCIvCh1EZWxldGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkiZwoZUmVhZFVudGFnZ2VkR3JvdXBzUmVxdWVzdBIUCgZ2ZW5kb3IYASABKAlCBOJBAQISNAoKZmllbGRfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQEiXAokUmVhZEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZXNSZXF1ZXN0EjQKCmZpZWxkX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQEBImYKIkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSCgoCaWQYASABKAkSNAoKZmllbGRfbWFzaxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCBOJBAQEifAolQ3JlYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEjAKBmNvbmZpZxgDIAEoCzIgLmJsdWVhcGkuYXBpLnJpcHBsZS5NZXRob2RDb25maWcixQEKJVVwZGF0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QSEAoCaWQYASABKAlCBOJBAQISVAoYY3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlGAIgASgLMiwuYmx1ZWFwaS5hcGkucmlwcGxlLkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUIE4kEBAhI0Cgp1cGRhdGVNYXNrGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIzCiVEZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EgoKAmlkGAEgASgJIl0KLkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QSFQoHZ3JvdXBJZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQIiyQEKL0dldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlc3BvbnNlEhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhJACg5jaGFyZ2luZ1RhcmdldBgDIAEoDjIiLmJsdWVhcGkuYXBpLnJpcHBsZS5DaGFyZ2luZ1RhcmdldEIE4kEBAhIsCghhY2NvdW50cxgEIAMoCzIULmJsdWVhcGkuYXBpLkFjY291bnRCBOJBAQEi9wIKLlNldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QSFQoHZ3JvdXBJZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISgAEKB3NldHRpbmcYAyADKAsyaS5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdC5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nU2V0dGluZ0IE4kEBAhqUAQomQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmcSEAoCaWQYASABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAiABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISFgoIYWNjb3VudHMYAyADKAlCBOJBAQEiYAoxRGVsZXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBIVCgdncm91cElkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAiKRAQokQ3JlYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSRgoHc2V0dGluZxgDIAEoCzI1LmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50c1NldHRpbmcixQEKJFVwZGF0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAhJVChdpbnZvaWNlU2VydmljZURpc2NvdW50cxgCIAEoCzIuLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50c0IE4kEBAhI0Cgp1cGRhdGVNYXNrGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0IE4kEBAiIyCiREZWxldGVJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSCgoCaWQYASABKAkibgoHVGFnRGF0YRISCgpjdXN0b21lcklkGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRIUCgxjdXN0b21lck5hbWUYAyABKAkSJgoEdGFncxgEIAMoCzIYLmJsdWVhcGkuYmlsbGluZy52MS5UYWdzIk8KBFRhZ3MSCwoDa2V5GAEgASgJEg4KBnZhbHVlcxgCIAMoCRIXCg90b3RhbFZhbHVlQ291bnQYAyABKAUSEQoJdHJ1bmNhdGVkGAQgASgIIi4KDkdldFRhZ3NSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIMCgR0eXBlGAIgASgJInAKFExpc3RUYWdWYWx1ZXNSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRISCgpjdXN0b21lcklkGAIgASgJEg4KBnRhZ0tleRgDIAEoCRISCgpwYWdlTnVtYmVyGAQgASgFEhAKCHBhZ2VTaXplGAUgASgFInoKFUxpc3RUYWdWYWx1ZXNSZXNwb25zZRIOCgZ2YWx1ZXMYASADKAkSFwoPdG90YWxWYWx1ZUNvdW50GAIgASgFEhIKCnBhZ2VOdW1iZXIYAyABKAUSEAoIcGFnZVNpemUYBCABKAUSEgoKdG90YWxQYWdlcxgFIAEoBSI7CgtDdXN0b21GaWVsZBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiXgoXQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGQSDQoFdmFsdWUYASABKAkSNAoLY3VzdG9tRmllbGQYAiABKAsyHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiNQoiTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBIPCgdncm91cElkGAEgASgJIoUBCiNMaXN0QmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXNwb25zZRIPCgdncm91cElkGAEgASgJEk0KGGJpbGxpbmdHcm91cEN1c3RvbUZpZWxkcxgCIAMoCzIrLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBDdXN0b21GaWVsZCI8ChhDcmVhdGVDdXN0b21GaWVsZFJlcXVlc3QSCwoDa2V5GAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJIkgKGFVwZGF0ZUN1c3RvbUZpZWxkUmVxdWVzdBIKCgJpZBgBIAEoCRILCgNrZXkYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkiJgoYRGVsZXRlQ3VzdG9tRmllbGRSZXF1ZXN0EgoKAmlkGAEgASgJIhgKFkxpc3RDdXN0b21GaWVsZFJlcXVlc3QiawoXQ3JlYXRlRnJlZUZvcm1hdFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSLwoFaXRlbXMYAyADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuRnJlZUZvcm1JdGVtImEKDEZyZWVGb3JtSXRlbRINCgVsYWJlbBgBIAEoCRIQCgh1bml0Q29zdBgCIAEoAxINCgV0b3RhbBgFIAEoAxIQCghxdWFudGl0eRgDIAEoDRIPCgdlbmFibGVkGAQgASgIIjoKF0RlbGV0ZUZyZWVGb3JtYXRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSDgoGdmVuZG9yGAIgASgJIj0KFEdldEZyZWVGb3JtYXRSZXF1ZXN0Eg8KB2dyb3VwSWQYASABKAkSFAoMaXNBc3NvY2lhdGVkGAIgASgIIm4KFUdldEZyZWVGb3JtYXRSZXNwb25zZRIPCgdncm91cElkGAMgASgJEg4KBnZlbmRvchgBIAEoCRI0CgpmcmVlRm9ybWF0GAIgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbSI6CiZHZXRNb250aGx5TWlzY0ZlZUltcG9ydFRlbXBsYXRlUmVxdWVzdBIQCghsYW5ndWFnZRgBIAEoCSKxAQocTW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZRIOCgZmb3JtYXQYASABKAkSFgoOZm9ybWF0X3ZlcnNpb24YAiABKAkSDwoHaGVhZGVycxgDIAMoCRISCgpzYW1wbGVfcm93GAQgAygJEhUKDWFsbG93ZWRfbW9kZXMYBSADKAkSGwoTbWF4X2ZpbGVfc2l6ZV9ieXRlcxgGIAEoAxIQCghtYXhfcm93cxgHIAEoBSKvAQogQnVsa0ltcG9ydE1vbnRobHlNaXNjRmVlc1JlcXVlc3QSGQoLY3N2X2NvbnRlbnQYASABKAlCBOJBAQISFwoJZmlsZV9uYW1lGAIgASgJQgTiQQECEhIKBG1vZGUYAyABKAlCBOJBAQISFAoGZm9ybWF0GAQgASgJQgTiQQECEhwKDmZvcm1hdF92ZXJzaW9uGAUgASgJQgTiQQECEg8KB2RyeV9ydW4YBiABKAgisAEKGkxpc3RNb250aGx5TWlzY0ZlZXNSZXF1ZXN0EhsKDWJpbGxpbmdfbW9udGgYASABKAlCBOJBAQISGAoQYmlsbGluZ19ncm91cF9pZBgCIAEoCRIgChhiaWxsaW5nX2dyb3VwX25hbWVfcXVlcnkYAyABKAkSEgoKaXRlbV9xdWVyeRgEIAEoCRIRCglwYWdlX3NpemUYBSABKAUSEgoKcGFnZV90b2tlbhgGIAEoCSJ9ChtMaXN0TW9udGhseU1pc2NGZWVzUmVzcG9uc2USMAoEcm93cxgBIAMoCzIiLmJsdWVhcGkuYmlsbGluZy52MS5Nb250aGx5TWlzY0ZlZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiUAobRGVsZXRlTW9udGhseU1pc2NGZWVSZXF1ZXN0EhQKBnJvd19pZBgBIAEoCUIE4kEBAhIbCg1iaWxsaW5nX21vbnRoGAIgASgJQgTiQQECIuYBCg5Nb250aGx5TWlzY0ZlZRIOCgZyb3dfaWQYASABKAkSFQoNYmlsbGluZ19tb250aBgCIAEoCRIYChBiaWxsaW5nX2dyb3VwX2lkGAMgASgJEhoKEmJpbGxpbmdfZ3JvdXBfbmFtZRgEIAEoCRIOCgZ2ZW5kb3IYBSABKAkSEQoJaXRlbV9uYW1lGAYgASgJEhAKCHF1YW50aXR5GAcgASgNEhEKCXVuaXRfY29zdBgIIAEoAxIOCgZhbW91bnQYCSABKAMSDwoHZW5hYmxlZBgKIAEoCBIOCgZzb3VyY2UYCyABKAkilgMKGk1vbnRobHlNaXNjRmVlSW1wb3J0UmVzdWx0Eg4KBnN0YXR1cxgBIAEoCRIRCglmaWxlX25hbWUYAiABKAkSEgoKdG90YWxfcm93cxgDIAEoBRISCgp2YWxpZF9yb3dzGAQgASgFEhUKDWluc2VydGVkX3Jvd3MYBSABKAUSFAoMdXBkYXRlZF9yb3dzGAYgASgFEhYKDnVuY2hhbmdlZF9yb3dzGAcgASgFEhMKC2ZhaWxlZF9yb3dzGAggASgFEkYKC3Jvd19yZXN1bHRzGAkgAygLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlSW1wb3J0Um93UmVzdWx0EhQKDHJlbW92ZWRfcm93cxgKIAEoBRIWCg5iaWxsaW5nX21vbnRocxgLIAMoCRIPCgd2ZW5kb3JzGAwgAygJEkwKDmJpbGxpbmdfZ3JvdXBzGA0gAygLMjQuYmx1ZWFwaS5iaWxsaW5nLnYxLk1vbnRobHlNaXNjRmVlSW1wb3J0R3JvdXBTdW1tYXJ5IlgKIE1vbnRobHlNaXNjRmVlSW1wb3J0R3JvdXBTdW1tYXJ5EhgKEGJpbGxpbmdfZ3JvdXBfaWQYASABKAkSGgoSYmlsbGluZ19ncm91cF9uYW1lGAIgASgJIssCCh1Nb250aGx5TWlzY0ZlZUltcG9ydFJvd1Jlc3VsdBIWCg5jc3Zfcm93X251bWJlchgBIAEoBRIOCgZhY3Rpb24YAiABKAkSGAoQYmlsbGluZ19ncm91cF9pZBgDIAEoCRIaChJiaWxsaW5nX2dyb3VwX25hbWUYBCABKAkSDgoGdmVuZG9yGAUgASgJEhEKCWl0ZW1fbmFtZRgGIAEoCRIQCghxdWFudGl0eRgHIAEoDRIRCgl1bml0X2Nvc3QYCCABKAMSDgoGYW1vdW50GAkgASgDEg8KB2VuYWJsZWQYCiABKAgSTAoRdmFsaWRhdGlvbl9lcnJvcnMYCyADKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWVWYWxpZGF0aW9uRXJyb3ISFQoNYmlsbGluZ19tb250aBgMIAEoCSJNCh1Nb250aGx5TWlzY0ZlZVZhbGlkYXRpb25FcnJvchINCgVmaWVsZBgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkidwoeVXBkYXRlVGFnc0FkZGluZ1NldHRpbmdSZXF1ZXN0Eg4KBnZlbmRvchgBIAEoCRIPCgdncm91cElkGAIgASgJEjQKBWl0ZW1zGAMgAygLMiUuYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ3NBZGRpbmdTZXR0aW5nIj4KG0dldFRhZ3NBZGRpbmdTZXR0aW5nUmVxdWVzdBIOCgZ2ZW5kb3IYASABKAkSDwoHZ3JvdXBJZBgCIAEoCSJJChFUYWdzQWRkaW5nU2V0dGluZxIPCgdncm91cElkGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSDwoHdGFnS2V5cxgDIAMoCSJNCh1FeHBvcnRTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIUCgZmb3JtYXQYASABKAlCBOJBAQISFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQEijgEKK0V4cG9ydEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSFAoGZm9ybWF0GAEgASgJQgTiQQECEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhIKCmRpcmVjdExpbmsYAyABKAgSHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBIpMBCjBFeHBvcnRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSFAoGZm9ybWF0GAEgASgJQgTiQQECEhYKCGxhbmd1YWdlGAIgASgJQgTiQQEBEhIKCmRpcmVjdExpbmsYAyABKAgSHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBIlUKHEV4cG9ydEJpbGxpbmdHcm91cENzdlJlcXVlc3QSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESHQoPYmlsbGluZ0dyb3VwSWRzGAMgAygJQgTiQQEBIjUKHUV4cG9ydEJpbGxpbmdHcm91cENzdlJlc3BvbnNlEhQKDGRvd25sb2FkTGluaxgBIAEoCSJ7Ch5FeHBvcnRJbnZvaWNlU2V0dGluZ0NzdlJlcXVlc3QSFgoIbGFuZ3VhZ2UYAiABKAlCBOJBAQESIgoUaW5jbHVkZU1pc2NlbGxhbmVvdXMYAyABKAhCBOJBAQESHQoPYmlsbGluZ0dyb3VwSWRzGAQgAygJQgTiQQEBIjcKH0V4cG9ydEludm9pY2VTZXR0aW5nQ3N2UmVzcG9uc2USFAoMZG93bmxvYWRMaW5rGAEgASgJIkAKLUdldEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBIPCgdncm91cElkGAEgASgJIjwKLkdldEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2USCgoCaWQYASABKAkiuQEKIUFkZEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBIPCgdncm91cElkGAEgASgJElMKB2lkVG9LZXkYAiADKAsyQi5ibHVlYXBpLmJpbGxpbmcudjEuQWRkQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRSZXF1ZXN0LklkVG9LZXlFbnRyeRouCgxJZFRvS2V5RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJOCiREZWxldGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRIVCg1jdXN0b21GaWVsZElkGAIgASgJInYKH0FkZEFjY291bnRUb0JpbGxpbmdHcm91cFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSMgoIYWNjb3VudHMYAyADKAsyIC5ibHVlYXBpLmJpbGxpbmcudjEuQWNjb3VudFRvQWRkIlEKDEFjY291bnRUb0FkZBISCgpjdXN0b21lcklkGAEgASgJEhEKCWFjY291bnRJZBgCIAEoCRIMCgRuYW1lGAMgASgJEgwKBG5vdGUYBCABKAkiqwEKHEFkZFRhZ3NUb0JpbGxpbmdHcm91cFJlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSMAoIc2V0dGluZ3MYAyADKAsyHi5ibHVlYXBpLmJpbGxpbmcudjEuVGFnU2V0dGluZxI4Cg1ub25UYWdTZXR0aW5nGAQgASgLMiEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vblRhZ1NldHRpbmciRwoKVGFnU2V0dGluZxISCgpjdXN0b21lcklkGAEgASgJEiUKBHRhZ3MYAiADKAsyFy5ibHVlYXBpLmJpbGxpbmcudjEuVGFnIjEKA1RhZxILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkSDgoGYXNzaWduGAMgASgFIj4KDU5vblRhZ1NldHRpbmcSDwoHaW5jbHVkZRgBIAEoCBIMCgR0eXBlGAIgASgJEg4KBmFtb3VudBgDIAEoASI+Ch1TYXZlVGFnSW52b2ljZVNldHRpbmdSZXNwb25zZRIOCgZzdGF0dXMYASABKAkSDQoFZXJyb3IYAiABKAkifgomVXBkYXRlTm9uVGFnR3JvdXBUb0JpbGxpbmdHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEjgKCHNldHRpbmdzGAMgAygLMiYuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vblRhZ0dyb3VwU2V0dGluZyI+ChJOb25UYWdHcm91cFNldHRpbmcSCgoCaWQYASABKAkSDAoEdHlwZRgCIAEoCRIOCgZhbW91bnQYAyABKAEimgEKGlNhdmVJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0EgwKBGRhdGUYASABKAkSDgoGdmVuZG9yGAIgASgJEhEKCWFsbEdyb3VwcxgDIAEoCBIOCgZncm91cHMYBCADKAkSOwoOaW52b2ljZVNldHRpbmcYBSABKAsyIy5ibHVlYXBpLmJpbGxpbmcudjEuSW52b2ljZVNldHRpbmdzIrMECg9JbnZvaWNlU2V0dGluZ3MSEQoJaW52b2ljZU5vGAIgASgJEhQKDGRpc2NvdW50UmF0ZRgEIAEoARIbChNkaXNjb3VudFRhcmdldFVzYWdlGAUgASgJEhkKEWRpc2NvdW50Q2FsY0xvZ2ljGAYgASgJEg8KB3RheFJhdGUYByABKAESEgoKc3VwcG9ydEZlZRgIIAEoCRITCgtzdXBwb3J0UmF0ZRgJIAEoARIcChRzdXBwb3J0RmVlQ2FsY1RhcmdldBgKIAEoCRISCgpzdXBwb3J0Rml4GAsgASgBEhcKD3N1YnN0aXR1dGlvbkZlZRgMIAEoCRIYChBzdWJzdGl0dXRpb25SYXRlGA0gASgBEhcKD3N1YnN0aXR1dGlvbkZpeBgOIAEoARIhChlzdWJzdGl0dXRpb25GZWVDYWxjVGFyZ2V0GA8gASgJEiIKGnN1YnN0aXR1dGlvbkZlZVRhcmdldFVzYWdlGBAgASgJEh8KF3N1YnN0aXR1dGlvbkZlZUNhbGNUeXBlGBEgASgJEhAKCGN1cnJlbmN5GAMgASgJEhQKDGV4Y2hhbmdlUmF0ZRgSIAEoARIMCgRtZW1vGBMgASgJEhAKCGNhbGNUeXBlGBQgASgJEjkKD2FkZGl0aW9uYWxJdGVtcxgVIAMoCzIgLmJsdWVhcGkuYmlsbGluZy52MS5GcmVlRm9ybUl0ZW0SHAoUc3VwcG9ydEZlZUFkanVzdG1lbnQYFiABKAEirQMKEEJhc2ljSW5mb3JtYXRpb24SGAoQYmlsbGluZ0dyb3VwTmFtZRgCIAEoCRIWCg5iaWxsaW5nR3JvdXBJZBgDIAEoCRITCgtjb21wYW55TmFtZRgEIAEoCRIWCglhZGRyZXNzZWUYBSABKAlIAIgBARIUCgdjb3VudHJ5GAYgASgJSAGIAQESFwoKcG9zdGFsQ29kZRgHIAEoCUgCiAEBEhEKBGNpdHkYCCABKAlIA4gBARIYCgtwaG9uZU51bWJlchgJIAEoCUgEiAEBEhkKDGFkZHJlc3NMaW5lMRgKIAEoCUgFiAEBEhkKDGFkZHJlc3NMaW5lMhgLIAEoCUgGiAEBEhIKBXN0YXRlGAwgASgJSAeIAQESFwoKcHJlZmVjdHVyZRgNIAEoCUgIiAEBQgwKCl9hZGRyZXNzZWVCCgoIX2NvdW50cnlCDQoLX3Bvc3RhbENvZGVCBwoFX2NpdHlCDgoMX3Bob25lTnVtYmVyQg8KDV9hZGRyZXNzTGluZTFCDwoNX2FkZHJlc3NMaW5lMkIICgZfc3RhdGVCDQoLX3ByZWZlY3R1cmUidwopVXBkYXRlQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvblJlcXVlc3QSCgoCaWQYASABKAkSPgoQYmFzaWNJbmZvcm1hdGlvbhgCIAEoCzIkLmJsdWVhcGkuYmlsbGluZy52MS5CYXNpY0luZm9ybWF0aW9uIrwBCiVVcGRhdGVCaWxsaW5nR3JvdXBDdXN0b21GaWVsZHNSZXF1ZXN0EgoKAmlkGAEgASgJElcKB2lkVG9LZXkYAiADKAsyRi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRzUmVxdWVzdC5JZFRvS2V5RW50cnkaLgoMSWRUb0tleUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEicgojVXBkYXRlQmlsbGluZ0dyb3VwRnJlZUZvcm1hdFJlcXVlc3QSCgoCaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEi8KBWl0ZW1zGAMgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkZyZWVGb3JtSXRlbSLqAgooVXBkYXRlQmlsbGluZ0dyb3VwTGlua2VkUmVzb3VyY2VzUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSFwoPc2VsZWN0aW9uTWV0aG9kGAMgASgJEjIKCGFjY291bnRzGAQgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRUb0FkZBIwCghzZXR0aW5ncxgFIAMoCzIeLmJsdWVhcGkuYmlsbGluZy52MS5UYWdTZXR0aW5nEj0KDW5vblRhZ1NldHRpbmcYBiABKAsyIS5ibHVlYXBpLmJpbGxpbmcudjEuTm9uVGFnU2V0dGluZ0gAiAEBEj8KDmFjY291bnRPcHRpb25zGAcgASgLMiIuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRPcHRpb25zSAGIAQFCEAoOX25vblRhZ1NldHRpbmdCEQoPX2FjY291bnRPcHRpb25zIvYBCihVcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0EgoKAmlkGAEgASgJEhkKDGJpbGxpbmdUaXRsZRgCIAEoCUgAiAEBEhwKD2NhbGN1bGF0aW9uVHlwZRgDIAEoCUgBiAEBEhUKCGxhbmd1YWdlGAQgASgJSAKIAQESIgoVaW52b2ljZUxheW91dENvbmZpZ0lkGAUgASgJSAOIAQFCDwoNX2JpbGxpbmdUaXRsZUISChBfY2FsY3VsYXRpb25UeXBlQgsKCV9sYW5ndWFnZUIYChZfaW52b2ljZUxheW91dENvbmZpZ0lkIq8BCihVcGRhdGVCaWxsaW5nR3JvdXBSZXNlbGxlckNoYXJnZXNSZXF1ZXN0EgoKAmlkGAEgASgJEhwKD2ludm9pY2VUZW1wbGF0ZRgCIAEoCUgAiAEBEkUKB2ludm9pY2UYAyABKAsyNC5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdEludm9pY2VCEgoQX2ludm9pY2VUZW1wbGF0ZSK/BAoqVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXNSZXF1ZXN0EgoKAmlkGAEgASgJEngKA2F3cxgCIAMoCzJlLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmdCBOJBAQISegoFYXp1cmUYAyADKAsyZS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXNSZXF1ZXN0LkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nQgTiQQECEngKA2djcBgEIAMoCzJlLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBBZGRpdGlvbmFsQ2hhcmdlc1JlcXVlc3QuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmdCBOJBAQIalAEKJkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nEhAKAmlkGAEgASgJQgTiQQECEkAKDmNoYXJnaW5nVGFyZ2V0GAIgASgOMiIuYmx1ZWFwaS5hcGkucmlwcGxlLkNoYXJnaW5nVGFyZ2V0QgTiQQECEhYKCGFjY291bnRzGAMgAygJQgTiQQEBIicKGURlbGV0ZUJpbGxpbmdHcm91cFJlcXVlc3QSCgoCaWQYASABKAkiUgooR2V0QmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuUmVxdWVzdBIQCgJpZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQIioAEKKUdldEJpbGxpbmdHcm91cEFjY291bnRTdXBwb3J0UGxhblJlc3BvbnNlEgoKAmlkGAEgASgJEg4KBnZlbmRvchgCIAEoCRIPCgdlbmFibGVkGAMgASgIEkYKB3NldHRpbmcYBCADKAsyNS5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuIvABCitVcGRhdGVCaWxsaW5nR3JvdXBBY2NvdW50U3VwcG9ydFBsYW5SZXF1ZXN0EhAKAmlkGAEgASgJQgTiQQECEhQKBnZlbmRvchgCIAEoCUIE4kEBAhIVCgdlbmFibGVkGAMgASgIQgTiQQEBEkwKB3NldHRpbmcYBCADKAsyNS5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuQgTiQQEBEjQKCnVwZGF0ZU1hc2sYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgTiQQECIjEKF0dldEFubm91bmNlbWVudHNSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgASgJIqcBChlDcmVhdGVBbm5vdW5jZW1lbnRSZXF1ZXN0Eg0KBWxhYmVsGAEgASgJEgwKBHR5cGUYAiABKAkSEAoIY29udGVudHMYAyABKAkSFQoNYmlsbGluZ0dyb3VwcxgEIAMoCRIYChBhbGxCaWxsaW5nR3JvdXBzGAUgASgIEg0KBXN0YXJ0GAYgASgDEgsKA2VuZBgHIAEoAxIOCgZzdGF0dXMYCCABKAkieAoZVXBkYXRlQW5ub3VuY2VtZW50UmVxdWVzdBIWCg5hbm5vdW5jZW1lbnRJZBgBIAEoCRJDCgxhbm5vdW5jZW1lbnQYAiABKAsyLS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQW5ub3VuY2VtZW50UmVxdWVzdCJKCiBVcGRhdGVBbm5vdW5jZW1lbnRzU3RhdHVzUmVxdWVzdBIWCg5hbm5vdW5jZW1lbnRJZBgBIAMoCRIOCgZzdGF0dXMYAiABKAkiRQodVXBkYXRlQW5ub3VuY2VtZW50RGF0ZVJlcXVlc3QSFgoOYW5ub3VuY2VtZW50SWQYASADKAkSDAoEZGF0ZRgCIAEoAyIzChlEZWxldGVBbm5vdW5jZW1lbnRSZXF1ZXN0EhYKDmFubm91bmNlbWVudElkGAEgASgJIukBCgxBbm5vdW5jZW1lbnQSCgoCaWQYASABKAkSDQoFbGFiZWwYAiABKAkSDAoEdHlwZRgDIAEoCRIPCgdtZXNzYWdlGAQgASgJEhUKDWJpbGxpbmdHcm91cHMYBSADKAkSGAoQYWxsQmlsbGluZ0dyb3VwcxgNIAEoCBINCgVzdGFydBgGIAEoCRILCgNlbmQYByABKAkSDAoEZGF0ZRgIIAEoCRIOCgZzdGF0dXMYCSABKAkSEgoKdXNlclN0YXR1cxgKIAEoCRIPCgdjcmVhdGVkGAsgASgJEg8KB3VwZGF0ZWQYDCABKAkiNgojR2V0QmlsbGluZ0dyb3VwQW5ub3VuY2VtZW50c1JlcXVlc3QSDwoHZ3JvdXBJZBgBIAEoCSKWAQokR2V0QmlsbGluZ0dyb3VwQW5ub3VuY2VtZW50c1Jlc3BvbnNlEg8KB2dyb3VwSWQYASABKAkSEQoJZ3JvdXBOYW1lGAIgASgJEhEKCWNvbXBhbnlJZBgDIAEoCRI3Cg1hbm5vdW5jZW1lbnRzGAQgAygLMiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkFubm91bmNlbWVudCITChFHZXRDcmVkaXRzUmVxdWVzdCLEAQoGQ3JlZGl0EgoKAmlkGAEgASgJEhIKCmN1c3RvbWVySWQYAiABKAkSFAoMY3VzdG9tZXJOYW1lGAMgASgJEhQKDGNyZWRpdEFtb3VudBgEIAEoARIMCgR0ZXJtGAUgASgJEhMKC2Rlc2NyaXB0aW9uGAYgASgJEg8KB2NyZWF0ZWQYByABKAkSEgoKaW5pdGlhbEZlZRgIIAEoARIVCg1jcmVkaXRCYWxhbmNlGAkgASgBEg8KB2FwcGxpZWQYCiABKAgiFwoVR2V0Q3N2U2V0dGluZ3NSZXF1ZXN0IqQBCgpDc3ZTZXR0aW5nEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSMgoDY29sGAMgAygLMiUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNzdlNldHRpbmcuQ29sdW1uGkgKBkNvbHVtbhIMCgRuYW1lGAEgASgJEgoKAmlkGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg8KB2VuYWJsZWQYBCABKAgi5gEKIFVwZGF0ZUludm9pY2VFeGNoYW5nZVJhdGVSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEg4KBnZlbmRvchgCIAEoCRJcCgxleGNoYW5nZVJhdGUYAyADKAsyRi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZUV4Y2hhbmdlUmF0ZVJlcXVlc3QuRXhjaGFuZ2VSYXRlRW50cnkSEAoIZ3JvdXBJZHMYBCADKAkaMwoRRXhjaGFuZ2VSYXRlRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgBOgI4ASJbChpDb252ZXJ0SW52b2ljZVRvUGRmUmVxdWVzdBIMCgRkYXRlGAEgASgJEhUKDWJpbGxpbmdncm91cHMYAiADKAkSGAoQYWxsQmlsbGluZ0dyb3VwcxgDIAEoCCJEChtDb252ZXJ0SW52b2ljZVRvUGRmUmVzcG9uc2USEAoIcHJvZ3Jlc3MYASABKAkSEwoLZG93bmxvYWRVcmwYAiABKAkiiAIKIUxpc3RCaWxsaW5nR3JvdXBzUGFnaW5hdGVkUmVxdWVzdBIuCgpmaWVsZF9tYXNrGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzaxIPCgd2ZW5kb3JzGAIgASgJEhAKCGNhbGNUeXBlGAMgASgJEhMKC2Rpc3BsYXlDb3N0GAQgASgJEg4KBmJnVHlwZRgFIAEoCRITCgtjb21wYW55TmFtZRgGIAEoCRIYChBiaWxsaW5nR3JvdXBOYW1lGAcgASgJEhYKDmJpbGxpbmdHcm91cElkGAggASgJEhAKCHBhZ2VTaXplGAkgASgFEhIKCnBhZ2VOdW1iZXIYCiABKAUilwIKFEJpbGxpbmdHcm91cExpc3RJdGVtEhgKEGJpbGxpbmdHcm91cE5hbWUYASABKAkSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSEwoLY29tcGFueU5hbWUYAyABKAkSGAoQYmlsbGluZ0dyb3VwVHlwZRgEIAEoCRJMCgd2ZW5kb3JzGAUgAygLMjsuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cExpc3RJdGVtLkJpbGxpbmdHcm91cFZlbmRvchIZChFiaWxsaW5nSW50ZXJuYWxJZBgGIAEoCRo1ChJCaWxsaW5nR3JvdXBWZW5kb3ISDgoGdmVuZG9yGAEgASgJEg8KB2VuYWJsZWQYAiABKAgitAEKIkxpc3RCaWxsaW5nR3JvdXBzUGFnaW5hdGVkUmVzcG9uc2USPwoNYmlsbGluZ0dyb3VwcxgBIAMoCzIoLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBMaXN0SXRlbRISCgp0b3RhbENvdW50GAIgASgFEhMKC2N1cnJlbnRQYWdlGAMgASgFEhAKCHBhZ2VTaXplGAQgASgFEhIKCnRvdGFsUGFnZXMYBSABKAUijgEKIUNoaWxkQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvbhIKCgJpZBgBIAEoCRISCgppbnRlcm5hbElkGAYgASgJEhAKCHBhcmVudElkGAIgASgJEhQKDHJvb3RQYXJlbnRJZBgFIAEoCRIMCgRuYW1lGAMgASgJEhMKC2NvbXBhbnlOYW1lGAQgASgJIr4BCiRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXASEAoCaWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEkAKDmNoYXJnaW5nVGFyZ2V0GAMgASgOMiIuYmx1ZWFwaS5hcGkucmlwcGxlLkNoYXJnaW5nVGFyZ2V0QgTiQQECEiwKCGFjY291bnRzGAQgAygLMhQuYmx1ZWFwaS5hcGkuQWNjb3VudEIE4kEBASKAAgoRQ2hpbGRCaWxsaW5nR3JvdXASTwoQYmFzaWNJbmZvcm1hdGlvbhgBIAEoCzI1LmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb24STQoPaW52b2ljZVNldHRpbmdzGAIgASgLMjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEjkKC2JpbGxpbmdJbmZvGAMgASgLMiQuYmx1ZWFwaS5hcGkucmlwcGxlLkJpbGxpbmdHcm91cEluZm8SEAoIaGFzQ2hpbGQYBCABKAgirAIKIENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEkMKA2F3cxgBIAEoCzI2LmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXBWZW5kb3JlZEludm9pY2VTZXR0aW5nEiEKGWFjY291bnRTdXBwb3J0UGxhbkVuYWJsZWQYAiABKAgSWQoaYWNjb3VudFN1cHBvcnRQbGFuU2V0dGluZ3MYAyADKAsyNS5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQmlsbGluZ0dyb3VwQWNjb3VudFN1cHBvcnRQbGFuEkUKBWF6dXJlGAQgASgLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cFZlbmRvcmVkSW52b2ljZVNldHRpbmcimgIKHkNyZWF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVxdWVzdBJPChBiYXNpY0luZm9ybWF0aW9uGAEgASgLMjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvbhI5CgtiaWxsaW5nSW5mbxgDIAEoCzIkLmJsdWVhcGkuYXBpLnJpcHBsZS5CaWxsaW5nR3JvdXBJbmZvEk0KD2ludm9pY2VTZXR0aW5ncxgCIAEoCzI0LmJsdWVhcGkuYmlsbGluZy52MS5DaGlsZEJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5ncxIdChVpbnZvaWNlTGF5b3V0Q29uZmlnSWQYBCABKAkiIQofQ3JlYXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSIxChtHZXRDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCSJWChxHZXRDaGlsZEJpbGxpbmdHcm91cFJlc3BvbnNlEjYKB2RldGFpbHMYASABKAsyJS5ibHVlYXBpLmJpbGxpbmcudjEuQ2hpbGRCaWxsaW5nR3JvdXAiQQodUmVhZENoaWxkQmlsbGluZ0dyb3Vwc1JlcXVlc3QSDgoGcm9vdElkGAEgASgJEhAKCHBhcmVudElkGAIgASgJIsABCh5VcGRhdGVDaGlsZEJpbGxpbmdHcm91cFJlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCRJPChBiYXNpY0luZm9ybWF0aW9uGAIgASgLMjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvbhI5CgtiaWxsaW5nSW5mbxgDIAEoCzIkLmJsdWVhcGkuYXBpLnJpcHBsZS5CaWxsaW5nR3JvdXBJbmZvIiEKH1VwZGF0ZUNoaWxkQmlsbGluZ0dyb3VwUmVzcG9uc2UiNAoeRGVsZXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkiIQofRGVsZXRlQ2hpbGRCaWxsaW5nR3JvdXBSZXNwb25zZSLQAQotVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSTQoPaW52b2ljZVNldHRpbmdzGAIgASgLMjQuYmx1ZWFwaS5iaWxsaW5nLnYxLkNoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEiIKFWludm9pY2VMYXlvdXRDb25maWdJZBgDIAEoCUgAiAEBQhgKFl9pbnZvaWNlTGF5b3V0Q29uZmlnSWQiMAouVXBkYXRlQ2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSZXNwb25zZSKaAwozU2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXF1ZXN0EhgKCmludGVybmFsSWQYASABKAlCBOJBAQISFAoGdmVuZG9yGAIgASgJQgTiQQECEhQKBnJvb3RJZBgDIAEoCUIE4kEBAhKFAQoHc2V0dGluZxgEIAMoCzJuLmJsdWVhcGkuYmlsbGluZy52MS5TZXRDaGlsZEJpbGxpbmdHcm91cEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ1NldHRpbmdCBOJBAQIalAEKJkN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdTZXR0aW5nEhAKAmlkGAEgASgJQgTiQQECEkAKDmNoYXJnaW5nVGFyZ2V0GAIgASgOMiIuYmx1ZWFwaS5hcGkucmlwcGxlLkNoYXJnaW5nVGFyZ2V0QgTiQQECEhYKCGFjY291bnRzGAMgAygJQgTiQQEBIlQKMlNldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkSCgoCaWQYAiABKAkijgEKOVNldENoaWxkQmlsbGluZ0dyb3VwQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJEj0KCGFjY291bnRzGAIgAygLMisuYmx1ZWFwaS5iaWxsaW5nLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzIlkKM0dldENoaWxkQmlsbGluZ0dyb3VwQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBISCgppbnRlcm5hbElkGAEgASgJEg4KBnZlbmRvchgCIAEoCSLOAQo0R2V0Q2hpbGRCaWxsaW5nR3JvdXBDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VSZXNwb25zZRIQCgJpZBgBIAEoCUIE4kEBAhIUCgZ2ZW5kb3IYAiABKAlCBOJBAQISQAoOY2hhcmdpbmdUYXJnZXQYAyABKA4yIi5ibHVlYXBpLmFwaS5yaXBwbGUuQ2hhcmdpbmdUYXJnZXRCBOJBAQISLAoIYWNjb3VudHMYBCADKAsyFC5ibHVlYXBpLmFwaS5BY2NvdW50QgTiQQEBIkgKMkdldENoaWxkQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0EhIKCmludGVybmFsSWQYASABKAkiQQozR2V0Q2hpbGRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlEgoKAmlkGAEgASgJIlAKOlJlYWRDaGlsZEJpbGxpbmdHcm91cEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QSEgoKaW50ZXJuYWxJZBgBIAEoCSJ5Ch1CdWxrQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBIOCgZ2ZW5kb3IYBSABKAkSEgoKY3N2Q29udGVudBgBIAEoDBIRCglkZWxpbWl0ZXIYAiABKAkSEQoJaGFzSGVhZGVyGAMgASgIEg4KBmRyeVJ1bhgEIAEoCCJVChtCdWxrQ3JlYXRlQmlsbGluZ0dyb3VwRXJyb3ISDQoFaW5kZXgYASABKAUSFgoOYmlsbGluZ0dyb3VwSWQYAiABKAkSDwoHbWVzc2FnZRgDIAEoCSKzAgoeQnVsa0NyZWF0ZUJpbGxpbmdHcm91cE1ldGFkYXRhEg4KBnN0YXR1cxgBIAEoCRISCgp0b3RhbENvdW50GAIgASgFEhYKDnByb2Nlc3NlZENvdW50GAMgASgFEhQKDHN1Y2Nlc3NDb3VudBgEIAEoBRIUCgxmYWlsdXJlQ291bnQYBSABKAUSPwoGZXJyb3JzGAYgAygLMi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtDcmVhdGVCaWxsaW5nR3JvdXBFcnJvchIRCglzdGFydFRpbWUYByABKAkSDwoHZW5kVGltZRgIIAEoCRJECgRyb3dzGAkgAygLMjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkJ1bGtCaWxsaW5nR3JvdXBJbnZvaWNlU2V0dGluZ3NSb3ciPgodTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSDQoFdmFsdWUYASABKAkSDgoGc291cmNlGAIgASgJIqkNChlOb3JtYWxpemVkSW52b2ljZVNldHRpbmdzEkMKCGNhbGNUeXBlGAEgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkYKC2Rpc3BsYXlDb3N0GAIgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEk4KE3N1cHBvcnRBbW91bnRUYXJnZXQYAyABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSTwoUc3VwcG9ydEZlZUNhbGNUYXJnZXQYBCABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSVAoZc3Vic3RpdHV0aW9uRmVlQ2FsY1RhcmdldBgFIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJKCg9pbnZvaWNlVGVtcGxhdGUYBiABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSSAoNY3VzdG9tU2VydmljZRgHIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJLChBzZXJ2aWNlRGlzY291bnRzGAggASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkMKCGN1cnJlbmN5GAkgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkIKB3RheFJhdGUYCiABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSRwoMZGlzY291bnRSYXRlGAsgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEk4KE2Rpc2NvdW50VGFyZ2V0VXNhZ2UYDCABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSTAoRZGlzY291bnRDYWxjTG9naWMYDSABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSSgoPc3Vic3RpdHV0aW9uRmVlGA4gASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEksKEHN1YnN0aXR1dGlvblJhdGUYDyABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSSgoPc3Vic3RpdHV0aW9uRml4GBAgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkElUKGnN1YnN0aXR1dGlvbkZlZVRhcmdldFVzYWdlGBEgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkElIKF3N1YnN0aXR1dGlvbkZlZUNhbGNUeXBlGBIgASgLMjEuYmx1ZWFwaS5iaWxsaW5nLnYxLk5vcm1hbGl6ZWRJbnZvaWNlU2V0dGluZ0ZpZWxkEkUKCnN1cHBvcnRGZWUYEyABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSRgoLc3VwcG9ydFJhdGUYFCABKAsyMS5ibHVlYXBpLmJpbGxpbmcudjEuTm9ybWFsaXplZEludm9pY2VTZXR0aW5nRmllbGQSRQoKc3VwcG9ydEZpeBgVIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZBJPChRzdXBwb3J0RmVlQWRqdXN0bWVudBgWIAEoCzIxLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdGaWVsZCLiAQoiQnVsa0JpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JvdxINCgVpbmRleBgBIAEoBRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRIOCgZzdGF0dXMYAyABKAkSDgoGZXJyb3JzGAQgAygJEkkKEm5vcm1hbGl6ZWRTZXR0aW5ncxgFIAEoCzItLmJsdWVhcGkuYmlsbGluZy52MS5Ob3JtYWxpemVkSW52b2ljZVNldHRpbmdzEhMKC2Rpc3Bvc2l0aW9uGAYgASgJEhUKDWNzdkxpbmVOdW1iZXIYByABKAUieQodQnVsa1VwZGF0ZUJpbGxpbmdHcm91cFJlcXVlc3QSDgoGdmVuZG9yGAUgASgJEhIKCmNzdkNvbnRlbnQYASABKAwSEQoJZGVsaW1pdGVyGAIgASgJEhEKCWhhc0hlYWRlchgDIAEoCBIOCgZkcnlSdW4YBCABKAgiZQobQnVsa1VwZGF0ZUJpbGxpbmdHcm91cEVycm9yEg0KBWluZGV4GAEgASgFEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSDgoGcmVhc29uGAQgASgJIrMCCh5CdWxrVXBkYXRlQmlsbGluZ0dyb3VwTWV0YWRhdGESDgoGc3RhdHVzGAEgASgJEhIKCnRvdGFsQ291bnQYAiABKAUSFgoOcHJvY2Vzc2VkQ291bnQYAyABKAUSFAoMc3VjY2Vzc0NvdW50GAQgASgFEhQKDGZhaWx1cmVDb3VudBgFIAEoBRI/CgZlcnJvcnMYBiADKAsyLy5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa1VwZGF0ZUJpbGxpbmdHcm91cEVycm9yEhEKCXN0YXJ0VGltZRgHIAEoCRIPCgdlbmRUaW1lGAggASgJEkQKBHJvd3MYCSADKAsyNi5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0JpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JvdyK5AQoTRXhjbHVkZVNlcnZpY2VFbnRyeRIOCgZtc3BfaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhAKCHBheWVyX2lkGAMgASgJEg8KB3NlcnZpY2UYBCABKAkSDwoHcHJvZHVjdBgFIAEoCRIXCg9leGNlcHRfcGF5ZXJfaWQYBiADKAkSDgoGYWN0aW9uGAcgASgJEg4KBnN0YXR1cxgIIAEoCRIVCg1lcnJvcl9tZXNzYWdlGAkgASgJIo8BCiBDcmVhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVxdWVzdBIOCgZtc3BfaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhAKCHBheWVyX2lkGAMgASgJEg8KB3NlcnZpY2UYBCABKAkSDwoHcHJvZHVjdBgFIAEoCRIXCg9leGNlcHRfcGF5ZXJfaWQYBiADKAkiWwohQ3JlYXRlRXhjbHVkZVNlcnZpY2VFbnRyeVJlc3BvbnNlEjYKBWVudHJ5GAEgASgLMicuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4Y2x1ZGVTZXJ2aWNlRW50cnkijwEKIFVwZGF0ZUV4Y2x1ZGVTZXJ2aWNlRW50cnlSZXF1ZXN0Eg4KBm1zcF9pZBgBIAEoCRIOCgZ2ZW5kb3IYAiABKAkSEAoIcGF5ZXJfaWQYAyABKAkSDwoHc2VydmljZRgEIAEoCRIPCgdwcm9kdWN0GAUgASgJEhcKD2V4Y2VwdF9wYXllcl9pZBgGIAMoCSJbCiFVcGRhdGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2USNgoFZW50cnkYASABKAsyJy5ibHVlYXBpLmJpbGxpbmcudjEuRXhjbHVkZVNlcnZpY2VFbnRyeSJ2CiBEZWxldGVFeGNsdWRlU2VydmljZUVudHJ5UmVxdWVzdBIOCgZtc3BfaWQYASABKAkSDgoGdmVuZG9yGAIgASgJEhAKCHBheWVyX2lkGAMgASgJEg8KB3NlcnZpY2UYBCABKAkSDwoHcHJvZHVjdBgFIAEoCSJbCiFEZWxldGVFeGNsdWRlU2VydmljZUVudHJ5UmVzcG9uc2USNgoFZW50cnkYASABKAsyJy5ibHVlYXBpLmJpbGxpbmcudjEuRXhjbHVkZVNlcnZpY2VFbnRyeSI8ChpMaXN0RXhjbHVkZVNlcnZpY2VzUmVxdWVzdBIOCgZtc3BfaWQYASABKAkSDgoGdmVuZG9yGAIgASgJIlcKG0xpc3RFeGNsdWRlU2VydmljZXNSZXNwb25zZRI4CgdlbnRyaWVzGAEgAygLMicuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4Y2x1ZGVTZXJ2aWNlRW50cnkiRAoLU2VydmljZUl0ZW0SCgoCaWQYASABKAkSDAoEY29kZRgCIAEoCRINCgVuYW1lcxgDIAMoCRIMCgRza3VzGAQgAygJIjMKE0xpc3RTZXJ2aWNlc1JlcXVlc3QSDgoGdmVuZG9yGAEgASgJEgwKBGNvZGUYAiABKAkiRQoUTGlzdFNlcnZpY2VzUmVzcG9uc2USLQoEZGF0YRgBIAMoCzIfLmJsdWVhcGkuYmlsbGluZy52MS5TZXJ2aWNlSXRlbSJyChZCdWxrTGlua0FjY291bnRSZXF1ZXN0Eg4KBnZlbmRvchgFIAEoCRISCgpjc3ZDb250ZW50GAEgASgMEhEKCWRlbGltaXRlchgCIAEoCRIRCgloYXNIZWFkZXIYAyABKAgSDgoGZHJ5UnVuGAQgASgIImEKFEJ1bGtMaW5rQWNjb3VudEVycm9yEg0KBWluZGV4GAEgASgFEhYKDmJpbGxpbmdHcm91cElkGAIgASgJEhEKCWFjY291bnRJZBgDIAEoCRIPCgdtZXNzYWdlGAQgASgJIt8BChdCdWxrTGlua0FjY291bnRNZXRhZGF0YRIOCgZzdGF0dXMYASABKAkSEgoKdG90YWxDb3VudBgCIAEoBRIWCg5wcm9jZXNzZWRDb3VudBgDIAEoBRIUCgxzdWNjZXNzQ291bnQYBCABKAUSFAoMZmFpbHVyZUNvdW50GAUgASgFEjgKBmVycm9ycxgGIAMoCzIoLmJsdWVhcGkuYmlsbGluZy52MS5CdWxrTGlua0FjY291bnRFcnJvchIRCglzdGFydFRpbWUYByABKAkSDwoHZW5kVGltZRgIIAEoCSI+ChpCdWxrVGFnQmlsbGluZ0dyb3VwUmVxdWVzdBISCgpjc3ZDb250ZW50GAEgASgMEgwKBG1vZGUYAiABKAkiggEKGEJ1bGtUYWdCaWxsaW5nR3JvdXBFcnJvchINCgVpbmRleBgBIAEoBRIWCg5iaWxsaW5nR3JvdXBJZBgCIAEoCRISCgpjdXN0b21lcklkGAMgASgJEgsKA2tleRgEIAEoCRINCgV2YWx1ZRgFIAEoCRIPCgdtZXNzYWdlGAYgASgJIucBChtCdWxrVGFnQmlsbGluZ0dyb3VwTWV0YWRhdGESDgoGc3RhdHVzGAEgASgJEhIKCnRvdGFsQ291bnQYAiABKAUSFgoOcHJvY2Vzc2VkQ291bnQYAyABKAUSFAoMc3VjY2Vzc0NvdW50GAQgASgFEhQKDGZhaWx1cmVDb3VudBgFIAEoBRI8CgZlcnJvcnMYBiADKAsyLC5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa1RhZ0JpbGxpbmdHcm91cEVycm9yEhEKCXN0YXJ0VGltZRgHIAEoCRIPCgdlbmRUaW1lGAggASgJIjcKKUdldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJInkKKkdldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXNwb25zZRIxCgZsYXlvdXQYASABKAsyIS5ibHVlYXBpLmFwaS5yaXBwbGUuSW52b2ljZUxheW91dBIKCgJpZBgCIAEoCRIMCgRuYW1lGAMgASgJIkoKKVNldEJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJEhEKCWxheW91dF9pZBgCIAEoCSJjCiBDcmVhdGVJbnZvaWNlTGF5b3V0Q29uZmlnUmVxdWVzdBIMCgRuYW1lGAEgASgJEjEKBmxheW91dBgCIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0IjYKIUNyZWF0ZUludm9pY2VMYXlvdXRDb25maWdSZXNwb25zZRIRCglsYXlvdXRfaWQYASABKAkibwogVXBkYXRlSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QSCgoCaWQYASABKAkSMQoGbGF5b3V0GAIgASgLMiEuYmx1ZWFwaS5hcGkucmlwcGxlLkludm9pY2VMYXlvdXQSDAoEbmFtZRgDIAEoCSIgCh5SZWFkSW52b2ljZUxheW91dENvbmZpZ1JlcXVlc3QibgofUmVhZEludm9pY2VMYXlvdXRDb25maWdSZXNwb25zZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEjEKBmxheW91dBgDIAEoCzIhLmJsdWVhcGkuYXBpLnJpcHBsZS5JbnZvaWNlTGF5b3V0IjoKLERlbGV0ZUJpbGxpbmdHcm91cEludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJIi4KIERlbGV0ZUludm9pY2VMYXlvdXRDb25maWdSZXF1ZXN0EgoKAmlkGAEgASgJIjkKK0xpc3RJbnZvaWNlTGF5b3V0Q29uZmlnQmlsbGluZ0dyb3Vwc1JlcXVlc3QSCgoCaWQYASABKAkiSAosTGlzdEludm9pY2VMYXlvdXRDb25maWdCaWxsaW5nR3JvdXBzUmVzcG9uc2USGAoQYmlsbGluZ2dyb3VwX2lkcxgBIAMoCTK/xwEKB0JpbGxpbmcSgAEKEUxpc3RCaWxsaW5nR3JvdXBzEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nR3JvdXBzUmVxdWVzdBogLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAiGYLT5JMCExIRL3YxL2JpbGxpbmdncm91cHMwARKwAQoaTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWQSNS5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cHNQYWdpbmF0ZWRSZXF1ZXN0GjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nR3JvdXBzUGFnaW5hdGVkUmVzcG9uc2UiI4LT5JMCHRIbL3YxL2JpbGxpbmdncm91cHM6cGFnaW5hdGVkEoMBChJDcmVhdGVCaWxsaW5nR3JvdXASLS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwUmVxdWVzdBogLmJsdWVhcGkuYmlsbGluZy52MS5CaWxsaW5nR3JvdXAiHILT5JMCFjoBKiIRL3YxL2JpbGxpbmdncm91cHMSlgEKGENyZWF0ZUJpbGxpbmdHcm91cE1lcmdlZBIzLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBNZXJnZWRSZXF1ZXN0GiAuYmx1ZWFwaS5iaWxsaW5nLnYxLkJpbGxpbmdHcm91cCIjgtPkkwIdOgEqIhgvdjEvYmlsbGluZ2dyb3Vwcy9tZXJnZWQSeQoRRGVsZXRlQmlsbGluR3JvdXASLS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXKhUvdjEvYmlsbGluZ2dyb3VwL3tpZH0SjAEKGEFkZEFjY291bnRUb0JpbGxpbmdHcm91cBIzLmJsdWVhcGkuYmlsbGluZy52MS5BZGRBY2NvdW50VG9CaWxsaW5nR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh06ASoiGC92MS9iaWxsaW5nZ3JvdXAvYWNjb3VudBKZAQoPR2V0QmlsbGluZ0dyb3VwEiouYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cFJlcXVlc3QaKy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QmlsbGluZ0dyb3VwUmVzcG9uc2UiLYLT5JMCJxIlL3YxL2JpbGxpbmdncm91cHMve2JpbGxpbmdJbnRlcm5hbElkfRKRAQoOR2V0QWNjZXNzR3JvdXASKS5ibHVlYXBpLmJpbGxpbmcudjEuR2V0QWNjZXNzR3JvdXBSZXF1ZXN0GiouYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEFjY2Vzc0dyb3VwUmVzcG9uc2UiKILT5JMCIhIgL3YxL2FjY2Vzc2dyb3Vwcy97YWNjZXNzR3JvdXBJZH0SngEKFkxpc3RBd3NEYWlseVJ1bkhpc3RvcnkSMS5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEF3c0RhaWx5UnVuSGlzdG9yeVJlcXVlc3QaJi5ibHVlYXBpLmJpbGxpbmcudjEuQXdzRGFpbHlSdW5IaXN0b3J5IieC0+STAiE6ASoiHC92MS9hd3MvZGFpbHlydW5oaXN0b3J5OnJlYWQwARKaAQoTTGlzdFVzYWdlQ29zdHNEcmlmdBIuLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0VXNhZ2VDb3N0c0RyaWZ0UmVxdWVzdBojLmJsdWVhcGkuYmlsbGluZy52MS5Vc2FnZUNvc3RzRHJpZnQiLILT5JMCJjoBKiIhL3YxL3t2ZW5kb3J9L3VzYWdlY29zdHNkcmlmdDpyZWFkMAESfAoNQ3JlYXRlSW52b2ljZRIoLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVJbnZvaWNlUmVxdWVzdBobLmJsdWVhcGkuYXBpLkludm9pY2VNZXNzYWdlIiSC0+STAh46ASoiGS92MS9pbnZvaWNlL3tkYXRlfTpjcmVhdGUSmwEKGUNyZWF0ZUludm9pY2VXaXRoU2V0dGluZ3MSLi5ibHVlYXBpLmJpbGxpbmcudjEuU2F2ZUludm9pY2VTZXR0aW5nc1JlcXVlc3QaGy5ibHVlYXBpLmFwaS5JbnZvaWNlTWVzc2FnZSIxgtPkkwIrOgEqIiYvdjEvaW52b2ljZS97ZGF0ZX06Y3JlYXRlJnNhdmVzZXR0aW5ncxKJAQoTU2F2ZUludm9pY2VTZXR0aW5ncxIuLmJsdWVhcGkuYmlsbGluZy52MS5TYXZlSW52b2ljZVNldHRpbmdzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIqgtPkkwIkOgEqIh8vdjEvaW52b2ljZS97ZGF0ZX06c2F2ZXNldHRpbmdzEqIBChNDb252ZXJ0SW52b2ljZVRvUGRmEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkNvbnZlcnRJbnZvaWNlVG9QZGZSZXF1ZXN0Gi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkNvbnZlcnRJbnZvaWNlVG9QZGZSZXNwb25zZSIqgtPkkwIkOgEqIh8vdjEvaW52b2ljZS97ZGF0ZX06Y29udmVydHRvcGRmEn0KEEdldEludm9pY2VTdGF0dXMSKy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0SW52b2ljZVN0YXR1c1JlcXVlc3QaGy5ibHVlYXBpLmFwaS5JbnZvaWNlTWVzc2FnZSIfgtPkkwIZEhcvdjEvaW52b2ljZS9zdGF0dXMve2lkfRKLAQoRTGlzdEludm9pY2VTdGF0dXMSLC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VTdGF0dXNSZXF1ZXN0GhsuYmx1ZWFwaS5hcGkuSW52b2ljZU1lc3NhZ2UiKYLT5JMCIzoBKiIeL3YxL2ludm9pY2Uvc3RhdHVzL3tkYXRlfTpyZWFkMAESbQoKR2V0SW52b2ljZRIlLmJsdWVhcGkuYmlsbGluZy52MS5HZXRJbnZvaWNlUmVxdWVzdBoULmJsdWVhcGkuYXBpLkludm9pY2UiIoLT5JMCHDoBKiIXL3YxL2ludm9pY2Uve2RhdGV9OnJlYWQSfQoLTGlzdEludm9pY2USJi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VSZXF1ZXN0GicuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RJbnZvaWNlUmVzcG9uc2UiG4LT5JMCFToBKiIQL3YxL2ludm9pY2U6cmVhZDABEogBChVVcGRhdGVJbnZvaWNlUHJldmlld3MSMC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZVByZXZpZXdzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIlgtPkkwIfOgEqGhovdjEvaW52b2ljZS97ZGF0ZX06cHJldmlldxKWAQoRRXhwb3J0SW52b2ljZUZpbGUSLC5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0SW52b2ljZUZpbGVSZXF1ZXN0Gi0uYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEludm9pY2VGaWxlUmVzcG9uc2UiJILT5JMCHjoBKiIZL3YxL2ludm9pY2Uve2RhdGV9OmV4cG9ydBKWAQoTTGlzdEludm9pY2VUZW1wbGF0ZRIuLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVRlbXBsYXRlUmVxdWVzdBovLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2UiHILT5JMCFhIUL3YxL2ludm9pY2UvdGVtcGxhdGUwARKtAQoZR2V0SW52b2ljZURpc3BsYXlTZXR0aW5ncxI0LmJsdWVhcGkuYmlsbGluZy52MS5HZXRJbnZvaWNlRGlzcGxheVNldHRpbmdzUmVxdWVzdBo1LmJsdWVhcGkuYmlsbGluZy52MS5HZXRJbnZvaWNlRGlzcGxheVNldHRpbmdzUmVzcG9uc2UiI4LT5JMCHRIbL3YxL2ludm9pY2UvZGlzcGxheXNldHRpbmdzEpcBChxVcGRhdGVJbnZvaWNlRGlzcGxheVNldHRpbmdzEjcuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUludm9pY2VEaXNwbGF5U2V0dGluZ3NSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiaC0+STAiA6ASoiGy92MS9pbnZvaWNlL2Rpc3BsYXlzZXR0aW5ncxKWAQoZVXBkYXRlSW52b2ljZUV4Y2hhbmdlUmF0ZRI0LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVJbnZvaWNlRXhjaGFuZ2VSYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIrgtPkkwIlOgEqGiAvdjEvaW52b2ljZS9leGNoYW5nZXJhdGUve21vbnRofRKsAQohVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVRlbXBsYXRlEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VUZW1wbGF0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMYLT5JMCKzoBKiImL3YxL2JpbGxpbmdncm91cHMve2lkfS9pbnZvaWNldGVtcGxhdGUSsQEKHFJlYWRTZXJ2aWNlRGlzY291bnRzU2VydmljZXMSNy5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZFNlcnZpY2VEaXNjb3VudHNTZXJ2aWNlc1JlcXVlc3QaHi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuU2VydmljZSI2gtPkkwIwOgEqIisvdjEvc2VydmljZWRpc2NvdW50cy97dmVuZG9yfS9zZXJ2aWNlczpyZWFkMAESqgEKHUNyZWF0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzEjguYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBouLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50cyIfgtPkkwIZOgEqIhQvdjEvc2VydmljZWRpc2NvdW50cxKvAQodVXBkYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHMSOC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Gi4uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkludm9pY2VTZXJ2aWNlRGlzY291bnRzIiSC0+STAh46ASoaGS92MS9zZXJ2aWNlZGlzY291bnRzL3tpZH0SlAEKHURlbGV0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzEjguYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIhgtPkkwIbKhkvdjEvc2VydmljZWRpc2NvdW50cy97aWR9EqoBChtMaXN0SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSNi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBorLmJsdWVhcGkuYmlsbGluZy52MS5JbnZvaWNlU2VydmljZURpc2NvdW50cyIkgtPkkwIeOgEqIhkvdjEvc2VydmljZWRpc2NvdW50czpyZWFkMAESpgEKGkdldEludm9pY2VTZXJ2aWNlRGlzY291bnRzEjUuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBouLmJsdWVhcGkuYXBpLnJpcHBsZS52MS5JbnZvaWNlU2VydmljZURpc2NvdW50cyIhgtPkkwIbEhkvdjEvc2VydmljZWRpc2NvdW50cy97aWR9EqIBChZFeHBvcnRTZXJ2aWNlRGlzY291bnRzEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydFNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0Gi0uYmx1ZWFwaS5hcGkucmlwcGxlLnYxLlNlcnZpY2VEaXNjb3VudHNFeHBvcnQiJoLT5JMCIDoBKiIbL3YxL3NlcnZpY2VkaXNjb3VudHM6ZXhwb3J0EvABCilDcmVhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJELmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaRS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZSI2gtPkkwIwOgEqIisvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYmlsbGluZ2dyb3VwEvABCilVcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJELmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaRS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZSI2gtPkkwIwOgEqGisvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYmlsbGluZ2dyb3VwEr4BCilEZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJELmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiM4LT5JMCLSorL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2JpbGxpbmdncm91cBLRAQoiTGlzdEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxI9LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBoyLmJsdWVhcGkuYmlsbGluZy52MS5BY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMiNoLT5JMCMDoBKiIrL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2FjY291bnQ6cmVhZDABEtwBCiRDcmVhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHMSPy5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBpALmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXNwb25zZSIxgtPkkwIrOgEqIiYvdjEvc2VydmljZWRpc2NvdW50cy97Z3JvdXBJZH0vYWNjb3VudBLcAQokVXBkYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaQC5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVzcG9uc2UiMYLT5JMCKzoBKhomL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2FjY291bnQSuQEKJFJlbW92ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxI/LmJsdWVhcGkuYmlsbGluZy52MS5SZW1vdmVBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjiC0+STAjI6ASoaLS92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9hY2NvdW50OnJlbW92ZRKvAQokRGVsZXRlQWNjb3VudEludm9pY2VTZXJ2aWNlRGlzY291bnRzEj8uYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKComL3YxL3NlcnZpY2VkaXNjb3VudHMve2dyb3VwSWR9L2FjY291bnQSzQEKJEV4cG9ydEFjY291bnRJbnZvaWNlU2VydmljZURpc2NvdW50cxI/LmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRBY2NvdW50SW52b2ljZVNlcnZpY2VEaXNjb3VudHNSZXF1ZXN0GjQuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkFjY291bnRTZXJ2aWNlRGlzY291bnRzRXhwb3J0Ii6C0+STAig6ASoiIy92MS9zZXJ2aWNlZGlzY291bnRzL2FjY291bnQ6ZXhwb3J0EtoBCilFeHBvcnRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50cxJELmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1JlcXVlc3QaMi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuR3JvdXBTZXJ2aWNlRGlzY291bnRzRXhwb3J0IjOC0+STAi06ASoiKC92MS9zZXJ2aWNlZGlzY291bnRzL2JpbGxpbmdncm91cDpleHBvcnQS5AEKJkdldEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzEkEuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdHcm91cEludm9pY2VTZXJ2aWNlRGlzY291bnRzUmVxdWVzdBpCLmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nR3JvdXBJbnZvaWNlU2VydmljZURpc2NvdW50c1Jlc3BvbnNlIjOC0+STAi0SKy92MS9zZXJ2aWNlZGlzY291bnRzL3tncm91cElkfS9iaWxsaW5nZ3JvdXAScwoOQ3JlYXRlUmVzZWxsZXISKS5ibHVlYXBpLmJpbGxpbmcudjEuQ3JlYXRlUmVzZWxsZXJSZXF1ZXN0GhwuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyIhiC0+STAhI6ASoiDS92MS9yZXNlbGxlcnMScAoNTGlzdFJlc2VsbGVycxIoLmJsdWVhcGkuYmlsbGluZy52MS5MaXN0UmVzZWxsZXJzUmVxdWVzdBocLmJsdWVhcGkuYXBpLnJpcHBsZS5SZXNlbGxlciIVgtPkkwIPEg0vdjEvcmVzZWxsZXJzMAESbwoLR2V0UmVzZWxsZXISJi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0UmVzZWxsZXJSZXF1ZXN0GhwuYmx1ZWFwaS5hcGkucmlwcGxlLlJlc2VsbGVyIhqC0+STAhQSEi92MS9yZXNlbGxlcnMve2lkfRJ4Cg5VcGRhdGVSZXNlbGxlchIpLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVSZXNlbGxlclJlcXVlc3QaHC5ibHVlYXBpLmFwaS5yaXBwbGUuUmVzZWxsZXIiHYLT5JMCFzoBKhoSL3YxL3Jlc2VsbGVycy97aWR9Em8KDkRlbGV0ZVJlc2VsbGVyEikuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZVJlc2VsbGVyUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIagtPkkwIUKhIvdjEvcmVzZWxsZXJzL3tpZH0ShgEKEUdldEJpbGxpbmdTZXR0aW5nEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEJpbGxpbmdTZXR0aW5nUmVxdWVzdBotLmJsdWVhcGkuYmlsbGluZy52MS5HZXRCaWxsaW5nU2V0dGluZ1Jlc3BvbnNlIhSC0+STAg4SDC92MS9zZXR0aW5ncxKbAQoRTGlzdEV4Y2hhbmdlUmF0ZXMSLC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEV4Y2hhbmdlUmF0ZXNSZXF1ZXN0Gi0uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RFeGNoYW5nZVJhdGVzUmVzcG9uc2UiKYLT5JMCIxIhL3YxL3t2ZW5kb3J9L2V4Y2hhbmdlcmF0ZS97bW9udGh9EpYBChVTZXRHbG9iYWxFeGNoYW5nZVJhdGUSMC5ibHVlYXBpLmJpbGxpbmcudjEuU2V0R2xvYmFsRXhjaGFuZ2VSYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItOgEqIigvdjEvZXhjaGFuZ2VyYXRlL2dsb2JhbC97dmVuZG9yfS97bW9udGh9EooBChRTZXRQYXllckV4Y2hhbmdlUmF0ZRIvLmJsdWVhcGkuYmlsbGluZy52MS5TZXRQYXllckV4Y2hhbmdlUmF0ZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKYLT5JMCIzoBKiIeL3YxL2V4Y2hhbmdlcmF0ZS9wYXllci97bW9udGh9Ep8BChtTZXRCaWxsaW5nR3JvdXBFeGNoYW5nZVJhdGUSNi5ibHVlYXBpLmJpbGxpbmcudjEuU2V0QmlsbGluZ0dyb3VwRXhjaGFuZ2VSYXRlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIwgtPkkwIqOgEqIiUvdjEvZXhjaGFuZ2VyYXRlL2JpbGxpbmdncm91cC97bW9udGh9EnwKEExpc3RBY2Nlc3NHcm91cHMSKy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEFjY2Vzc0dyb3Vwc1JlcXVlc3QaHy5ibHVlYXBpLmFwaS5yaXBwbGUuQWNjZXNzR3JvdXAiGILT5JMCEhIQL3YxL2FjY2Vzc2dyb3VwczABEn8KEUNyZWF0ZUFjY2Vzc0dyb3VwEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUFjY2Vzc0dyb3VwUmVxdWVzdBofLmJsdWVhcGkuYXBpLnJpcHBsZS5BY2Nlc3NHcm91cCIbgtPkkwIVOgEqIhAvdjEvYWNjZXNzZ3JvdXBzEoQBChFVcGRhdGVBY2Nlc3NHcm91cBIsLmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVBY2Nlc3NHcm91cFJlcXVlc3QaHy5ibHVlYXBpLmFwaS5yaXBwbGUuQWNjZXNzR3JvdXAiIILT5JMCGjoBKhoVL3YxL2FjY2Vzc2dyb3Vwcy97aWR9EngKEURlbGV0ZUFjY2Vzc0dyb3VwEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUFjY2Vzc0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXKhUvdjEvYWNjZXNzZ3JvdXBzL3tpZH0SnwEKFExpc3RBYmNCaWxsaW5nR3JvdXBzEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBYmNCaWxsaW5nR3JvdXBzUmVxdWVzdBojLmJsdWVhcGkuYmlsbGluZy52MS5BYmNCaWxsaW5nR3JvdXAiL4LT5JMCKRInL3YxL2JpbGxpbmdncm91cHMvYmlsbGluZ2NvbmR1Y3Rvci97aWR9MAEStgEKG0xpc3RBYmNCaWxsaW5nR3JvdXBBY2NvdW50cxI2LmJsdWVhcGkuYmlsbGluZy52MS5MaXN0QWJjQmlsbGluZ0dyb3VwQWNjb3VudHNSZXF1ZXN0Gh4uYmx1ZWFwaS5iaWxsaW5nLnYxLkFiY0FjY291bnQiPYLT5JMCNxI1L3YxL2JpbGxpbmdncm91cHMvYmlsbGluZ2NvbmR1Y3Rvci97cGF5ZXJJZH0vYWNjb3VudHMwARKcAQoWUmVhZEludm9pY2VBZGp1c3RtZW50cxIxLmJsdWVhcGkuYmlsbGluZy52MS5SZWFkSW52b2ljZUFkanVzdG1lbnRzUmVxdWVzdBocLmJsdWVhcGkuYXBpLndhdmUuQWRqdXN0bWVudCIvgtPkkwIpOgEqIiQvdjEve3ZlbmRvcn0vaW52b2ljZWFkanVzdG1lbnRzOnJlYWQwARKjAQoVUmVhZEFkanVzdG1lbnRFbnRyaWVzEjAuYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRBZGp1c3RtZW50RW50cmllc1JlcXVlc3QaJi5ibHVlYXBpLmFwaS5yaXBwbGUudjEuQWRqdXN0bWVudEVudHJ5Ii6C0+STAig6ASoiIy92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllczpyZWFkMAESmAEKEkdldEFkanVzdG1lbnRFbnRyeRItLmJsdWVhcGkuYmlsbGluZy52MS5HZXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0GiYuYmx1ZWFwaS5hcGkucmlwcGxlLnYxLkFkanVzdG1lbnRFbnRyeSIrgtPkkwIlEiMvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXMve2lkfRKQAQoUQXBwbHlBZGp1c3RtZW50RW50cnkSLy5ibHVlYXBpLmJpbGxpbmcudjEuQXBwbHlBZGp1c3RtZW50RW50cnlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii+C0+STAik6ASoiJC92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllczphcHBseRKWAQoWUmVzdG9yZUFkanVzdG1lbnRFbnRyeRIxLmJsdWVhcGkuYmlsbGluZy52MS5SZXN0b3JlQWRqdXN0bWVudEVudHJ5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIxgtPkkwIrOgEqIiYvdjEve3ZlbmRvcn0vYWRqdXN0bWVudGVudHJpZXM6cmVzdG9yZRKVAQoUU3BsaXRBZGp1c3RtZW50RW50cnkSLy5ibHVlYXBpLmJpbGxpbmcudjEuU3BsaXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjSC0+STAi46ASoiKS92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllcy97aWR9L3NwbGl0Ep4BChdBbGxvY2F0ZUFkanVzdG1lbnRFbnRyeRIyLmJsdWVhcGkuYmlsbGluZy52MS5BbGxvY2F0ZUFkanVzdG1lbnRFbnRyeVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiN4LT5JMCMToBKiIsL3YxL3t2ZW5kb3J9L2FkanVzdG1lbnRlbnRyaWVzL3tpZH0vYWxsb2NhdGUSqwEKG1Jlc3RvcmVTcGxpdEFkanVzdG1lbnRFbnRyeRI2LmJsdWVhcGkuYmlsbGluZy52MS5SZXN0b3JlU3BsaXRBZGp1c3RtZW50RW50cnlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjyC0+STAjY6ASoiMS92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllcy97aWR9L3NwbGl0OnJlc3RvcmUStAEKHlJlc3RvcmVBbGxvY2F0ZUFkanVzdG1lbnRFbnRyeRI5LmJsdWVhcGkuYmlsbGluZy52MS5SZXN0b3JlQWxsb2NhdGVBZGp1c3RtZW50RW50cnlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ij+C0+STAjk6ASoiNC92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllcy97aWR9L2FsbG9jYXRlOnJlc3RvcmUSoAEKD0NyZWF0ZUN1c3RvbUZlZRIqLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVDdXN0b21GZWVSZXF1ZXN0GisuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbUZlZVJlc3BvbnNlIjSC0+STAi46ASoiKS92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cmllcy9jdXN0b21mZWVzEq0BChhMaXN0QWRqdXN0bWVudEVudHJ5SXRlbXMSMy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEFkanVzdG1lbnRFbnRyeUl0ZW1zUmVxdWVzdBonLmJsdWVhcGkuYmlsbGluZy52MS5BZGp1c3RtZW50RW50cnlJdGVtIjGC0+STAis6ASoiJi92MS97dmVuZG9yfS9hZGp1c3RtZW50ZW50cnlpdGVtczpyZWFkMAESlwEKFExpc3RBY2NvdW50UmVzb3VyY2VzEi8uYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RBY2NvdW50UmVzb3VyY2VzUmVxdWVzdBojLmJsdWVhcGkuYmlsbGluZy52MS5SZXNvdXJjZUFjY291bnQiJ4LT5JMCIRIfL3YxL3Jlc291cmNlcy9hY2NvdW50cy97dmVuZG9yfTABEosBChNHZXRBZGp1c3RtZW50Q29uZmlnEi4uYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEFkanVzdG1lbnRDb25maWdSZXF1ZXN0Gh0uYmx1ZWFwaS5hcGkuQWRqdXN0bWVudENvbmZpZyIlgtPkkwIfEh0vdjEvYWRqdXN0bWVudGNvbmZpZy97dmVuZG9yfRKUAQoWQ3JlYXRlQWRqdXN0bWVudENvbmZpZxIxLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVBZGp1c3RtZW50Q29uZmlnUmVxdWVzdBodLmJsdWVhcGkuYXBpLkFkanVzdG1lbnRDb25maWciKILT5JMCIjoBKiIdL3YxL2FkanVzdG1lbnRjb25maWcve3ZlbmRvcn0SlAEKFlVwZGF0ZUFkanVzdG1lbnRDb25maWcSMS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQWRqdXN0bWVudENvbmZpZ1JlcXVlc3QaHS5ibHVlYXBpLmFwaS5BZGp1c3RtZW50Q29uZmlnIiiC0+STAiI6ASoaHS92MS9hZGp1c3RtZW50Y29uZmlnL3t2ZW5kb3J9EooBChZEZWxldGVBZGp1c3RtZW50Q29uZmlnEjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUFkanVzdG1lbnRDb25maWdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiWC0+STAh8qHS92MS9hZGp1c3RtZW50Y29uZmlnL3t2ZW5kb3J9EpUBChJSZWFkVW50YWdnZWRHcm91cHMSLS5ibHVlYXBpLmJpbGxpbmcudjEuUmVhZFVudGFnZ2VkR3JvdXBzUmVxdWVzdBohLmJsdWVhcGkuYXBpLnJpcHBsZS5VbnRhZ2dlZEdyb3VwIiuC0+STAiU6ASoiIC92MS97dmVuZG9yfS91bnRhZ2dlZGdyb3VwczpyZWFkMAESuAEKHVJlYWRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VzEjguYmx1ZWFwaS5iaWxsaW5nLnYxLlJlYWRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VzUmVxdWVzdBosLmJsdWVhcGkuYXBpLnJpcHBsZS5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2UiLYLT5JMCJzoBKiIiL3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXM6cmVhZDABEq8BChtHZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2USNi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBosLmJsdWVhcGkuYXBpLnJpcHBsZS5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2UiKoLT5JMCJBIiL3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMve2lkfRKzAQoeQ3JlYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEjkuYmx1ZWFwaS5iaWxsaW5nLnYxLkNyZWF0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QaLC5ibHVlYXBpLmFwaS5yaXBwbGUuQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlIiiC0+STAiI6ASoiHS92MS9jdXN0b21pemVkYmlsbGluZ3NlcnZpY2VzErgBCh5VcGRhdGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2USOS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlUmVxdWVzdBosLmJsdWVhcGkuYXBpLnJpcHBsZS5DdXN0b21pemVkQmlsbGluZ1NlcnZpY2UiLYLT5JMCJzoBKhoiL3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMve2lkfRKfAQoeRGVsZXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlEjkuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCoiL3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMve2lkfRL7AQonR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwEkIuYmx1ZWFwaS5iaWxsaW5nLnYxLkdldEN1c3RvbWl6ZWRCaWxsaW5nU2VydmljZUJpbGxpbmdHcm91cFJlcXVlc3QaQy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVzcG9uc2UiRYLT5JMCPxI9L3YxL2N1c3RvbWl6ZWRiaWxsaW5nc2VydmljZXMvYmlsbGluZ2dyb3VwL3tncm91cElkfS97dmVuZG9yfTABEs8BCidTZXRDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXASQi5ibHVlYXBpLmJpbGxpbmcudjEuU2V0Q3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJIgtPkkwJCOgEqIj0vdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcy9iaWxsaW5nZ3JvdXAve2dyb3VwSWR9L3t2ZW5kb3J9EtIBCipEZWxldGVDdXN0b21pemVkQmlsbGluZ1NlcnZpY2VCaWxsaW5nR3JvdXASRS5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlQ3VzdG9taXplZEJpbGxpbmdTZXJ2aWNlQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSJFgtPkkwI/Kj0vdjEvY3VzdG9taXplZGJpbGxpbmdzZXJ2aWNlcy9iaWxsaW5nZ3JvdXAve2dyb3VwSWR9L3t2ZW5kb3J9El4KB0dldFRhZ3MSIi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0VGFnc1JlcXVlc3QaGy5ibHVlYXBpLmJpbGxpbmcudjEuVGFnRGF0YSIQgtPkkwIKEggvdjEvdGFnczABEn0KDUxpc3RUYWdWYWx1ZXMSKC5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdFRhZ1ZhbHVlc1JlcXVlc3QaKS5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdFRhZ1ZhbHVlc1Jlc3BvbnNlIheC0+STAhESDy92MS90YWdzOnZhbHVlcxJ+ChFDcmVhdGVDdXN0b21GaWVsZBIsLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVDdXN0b21GaWVsZFJlcXVlc3QaHy5ibHVlYXBpLmJpbGxpbmcudjEuQ3VzdG9tRmllbGQiGoLT5JMCFDoBKiIPL3YxL2N1c3RvbWZpZWxkEoEBCg9MaXN0Q3VzdG9tRmllbGQSKi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEN1c3RvbUZpZWxkUmVxdWVzdBofLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GaWVsZCIfgtPkkwIZOgEqIhQvdjEvY3VzdG9tZmllbGQ6cmVhZDABEpQBChpBZGRCaWxsaW5nR3JvdXBDdXN0b21GaWVsZBI1LmJsdWVhcGkuYmlsbGluZy52MS5BZGRCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiJ4LT5JMCIToBKiIcL3YxL2JpbGxpbmdncm91cC9jdXN0b21maWVsZBK+AQobTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkEjYuYmx1ZWFwaS5iaWxsaW5nLnYxLkxpc3RCaWxsaW5nR3JvdXBDdXN0b21GaWVsZFJlcXVlc3QaNy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdEJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVzcG9uc2UiLILT5JMCJjoBKiIhL3YxL2JpbGxpbmdncm91cC9jdXN0b21maWVsZDpyZWFkMAESgwEKFUFkZFRhZ3NUb0JpbGxpbmdHcm91cBIwLmJsdWVhcGkuYmlsbGluZy52MS5BZGRUYWdzVG9CaWxsaW5nR3JvdXBSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiCC0+STAho6ASoiFS92MS9iaWxsaW5nZ3JvdXAvdGFncxKvAQofVXBkYXRlTm9uVGFnR3JvdXBUb0JpbGxpbmdHcm91cBI6LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVOb25UYWdHcm91cFRvQmlsbGluZ0dyb3VwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI4gtPkkwIyOgEqIi0vdjEvYmlsbGluZ2dyb3VwL3tpZH0ve3ZlbmRvcn0vdW50YWdnZWRncm91cHMSsQEKHURlbGV0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkEjguYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI+gtPkkwI4KjYvdjEvYmlsbGluZ2dyb3VwL2N1c3RvbWZpZWxkL3tncm91cElkfS97Y3VzdG9tRmllbGRJZH0SgwEKEVVwZGF0ZUN1c3RvbUZpZWxkEiwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUN1c3RvbUZpZWxkUmVxdWVzdBofLmJsdWVhcGkuYmlsbGluZy52MS5DdXN0b21GaWVsZCIfgtPkkwIZOgEqGhQvdjEvY3VzdG9tZmllbGQve2lkfRJ3ChFEZWxldGVDdXN0b21GaWVsZBIsLmJsdWVhcGkuYmlsbGluZy52MS5EZWxldGVDdXN0b21GaWVsZFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFioUL3YxL2N1c3RvbWZpZWxkL3tpZH0ScgoQQ3JlYXRlRnJlZUZvcm1hdBIrLmJsdWVhcGkuYmlsbGluZy52MS5DcmVhdGVGcmVlRm9ybWF0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIZgtPkkwITOgEqIg4vdjEvZnJlZWZvcm1hdBJ5ChBEZWxldGVGcmVlRm9ybWF0EisuYmx1ZWFwaS5iaWxsaW5nLnYxLkRlbGV0ZUZyZWVGb3JtYXRSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiCC0+STAhoqGC92MS9mcmVlZm9ybWF0L3tncm91cElkfRKIAQoNR2V0RnJlZUZvcm1hdBIoLmJsdWVhcGkuYmlsbGluZy52MS5HZXRGcmVlRm9ybWF0UmVxdWVzdBopLmJsdWVhcGkuYmlsbGluZy52MS5HZXRGcmVlRm9ybWF0UmVzcG9uc2UiIILT5JMCGhIYL3YxL2ZyZWVmb3JtYXQve2dyb3VwSWR9MAESvQEKH0dldE1vbnRobHlNaXNjRmVlSW1wb3J0VGVtcGxhdGUSOi5ibHVlYXBpLmJpbGxpbmcudjEuR2V0TW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZVJlcXVlc3QaMC5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWVJbXBvcnRUZW1wbGF0ZSIsgtPkkwImEiQvdjEvbW9udGhseS1taXNjLWZlZXM6aW1wb3J0VGVtcGxhdGUSrgEKGUJ1bGtJbXBvcnRNb250aGx5TWlzY0ZlZXMSNC5ibHVlYXBpLmJpbGxpbmcudjEuQnVsa0ltcG9ydE1vbnRobHlNaXNjRmVlc1JlcXVlc3QaLi5ibHVlYXBpLmJpbGxpbmcudjEuTW9udGhseU1pc2NGZWVJbXBvcnRSZXN1bHQiK4LT5JMCJToBKiIgL3YxL21vbnRobHktbWlzYy1mZWVzOmJ1bGtJbXBvcnQSlQEKE0xpc3RNb250aGx5TWlzY0ZlZXMSLi5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdE1vbnRobHlNaXNjRmVlc1JlcXVlc3QaLy5ibHVlYXBpLmJpbGxpbmcudjEuTGlzdE1vbnRobHlNaXNjRmVlc1Jlc3BvbnNlIh2C0+STAhcSFS92MS9tb250aGx5LW1pc2MtZmVlcxKHAQoURGVsZXRlTW9udGhseU1pc2NGZWUSLy5ibHVlYXBpLmJpbGxpbmcudjEuRGVsZXRlTW9udGhseU1pc2NGZWVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiaC0+STAiAqHi92MS9tb250aGx5LW1pc2MtZmVlcy97cm93X2lkfRKiAQoUR2V0VGFnc0FkZGluZ1NldHRpbmcSLy5ibHVlYXBpLmJpbGxpbmcudjEuR2V0VGFnc0FkZGluZ1NldHRpbmdSZXF1ZXN0GiUuYmx1ZWFwaS5iaWxsaW5nLnYxLlRhZ3NBZGRpbmdTZXR0aW5nIjCC0+STAioSKC92MS97dmVuZG9yfS90YWdzYWRkaW5nc2V0dGluZy97Z3JvdXBJZH0wARKaAQoXVXBkYXRlVGFnc0FkZGluZ1NldHRpbmcSMi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlVGFnc0FkZGluZ1NldHRpbmdSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi06ASoaKC92MS97dmVuZG9yfS90YWdzYWRkaW5nc2V0dGluZy97Z3JvdXBJZH0SoQEKFUV4cG9ydEJpbGxpbmdHcm91cENzdhIwLmJsdWVhcGkuYmlsbGluZy52MS5FeHBvcnRCaWxsaW5nR3JvdXBDc3ZSZXF1ZXN0GjEuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEJpbGxpbmdHcm91cENzdlJlc3BvbnNlIiOC0+STAh0SGy92MS9leHBvcnRjc3YvYmlsbGluZy1ncm91cBKpAQoXRXhwb3J0SW52b2ljZVNldHRpbmdDc3YSMi5ibHVlYXBpLmJpbGxpbmcudjEuRXhwb3J0SW52b2ljZVNldHRpbmdDc3ZSZXF1ZXN0GjMuYmx1ZWFwaS5iaWxsaW5nLnYxLkV4cG9ydEludm9pY2VTZXR0aW5nQ3N2UmVzcG9uc2UiJYLT5JMCHxIdL3YxL2V4cG9ydGNzdi9pbnZvaWNlLXNldHRpbmcSpwEKIlVwZGF0ZUJpbGxpbmdHcm91cEJhc2ljSW5mb3JtYXRpb24SPS5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQmFzaWNJbmZvcm1hdGlvblJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKhofL3YxL2JpbGxpbmdncm91cC97aWR9OmJhc2ljSW5mbxKiAQoeVXBkYXRlQmlsbGluZ0dyb3VwQ3VzdG9tRmllbGRzEjkuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEN1c3RvbUZpZWxkc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJzoBKhoiL3YxL2JpbGxpbmdncm91cC97aWR9OmN1c3RvbUZpZWxkcxKcAQocVXBkYXRlQmlsbGluZ0dyb3VwRnJlZUZvcm1hdBI3LmJsdWVhcGkuYmlsbGluZy52MS5VcGRhdGVCaWxsaW5nR3JvdXBGcmVlRm9ybWF0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIrgtPkkwIlOgEqGiAvdjEvYmlsbGluZ2dyb3VwL3tpZH06ZnJlZUZvcm1hdBKlAQohVXBkYXRlQmlsbGluZ0dyb3VwTGlua2VkUmVzb3VyY2VzEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cExpbmtlZFJlc291cmNlc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJDoBKhofL3YxL2JpbGxpbmdncm91cC97aWR9OnJlc291cmNlcxKrAQohVXBkYXRlQmlsbGluZ0dyb3VwSW52b2ljZVNldHRpbmdzEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cEludm9pY2VTZXR0aW5nc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKjoBKholL3YxL2JpbGxpbmdncm91cC97aWR9Omludm9pY2VTZXR0aW5ncxKrAQohVXBkYXRlQmlsbGluZ0dyb3VwUmVzZWxsZXJDaGFyZ2VzEjwuYmx1ZWFwaS5iaWxsaW5nLnYxLlVwZGF0ZUJpbGxpbmdHcm91cFJlc2VsbGVyQ2hhcmdlc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKjoBKholL3YxL2JpbGxpbmdncm91cC97aWR9OnJlc2VsbGVyQ2hhcmdlcxKxAQojVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXMSPi5ibHVlYXBpLmJpbGxpbmcudjEuVXBkYXRlQmlsbGluZ0dyb3VwQWRkaXRpb25hbENoYXJnZXNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjKC0+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]);
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
59
|
* @generated from message blueapi.billing.v1.BillingGroup
|
|
@@ -4474,6 +4474,23 @@ export type Tags = Message<"blueapi.billing.v1.Tags"> & {
|
|
|
4474
4474
|
* @generated from field: repeated string values = 2;
|
|
4475
4475
|
*/
|
|
4476
4476
|
values: string[];
|
|
4477
|
+
|
|
4478
|
+
/**
|
|
4479
|
+
* Total number of distinct values recorded for this key, regardless of how
|
|
4480
|
+
* many are present in `values` above.
|
|
4481
|
+
*
|
|
4482
|
+
* @generated from field: int32 totalValueCount = 3;
|
|
4483
|
+
*/
|
|
4484
|
+
totalValueCount: number;
|
|
4485
|
+
|
|
4486
|
+
/**
|
|
4487
|
+
* True if `values` does not contain all of this key's distinct values (its
|
|
4488
|
+
* count exceeds the server-side per-key cap). Use ListTagValues to page
|
|
4489
|
+
* through the full list.
|
|
4490
|
+
*
|
|
4491
|
+
* @generated from field: bool truncated = 4;
|
|
4492
|
+
*/
|
|
4493
|
+
truncated: boolean;
|
|
4477
4494
|
};
|
|
4478
4495
|
|
|
4479
4496
|
/**
|
|
@@ -4505,6 +4522,93 @@ export type GetTagsRequest = Message<"blueapi.billing.v1.GetTagsRequest"> & {
|
|
|
4505
4522
|
export const GetTagsRequestSchema: GenMessage<GetTagsRequest> = /*@__PURE__*/
|
|
4506
4523
|
messageDesc(file_billing_v1_billing, 112);
|
|
4507
4524
|
|
|
4525
|
+
/**
|
|
4526
|
+
* Request message for the Billing.ListTagValues rpc.
|
|
4527
|
+
*
|
|
4528
|
+
* @generated from message blueapi.billing.v1.ListTagValuesRequest
|
|
4529
|
+
*/
|
|
4530
|
+
export type ListTagValuesRequest = Message<"blueapi.billing.v1.ListTagValuesRequest"> & {
|
|
4531
|
+
/**
|
|
4532
|
+
* @generated from field: string vendor = 1;
|
|
4533
|
+
*/
|
|
4534
|
+
vendor: string;
|
|
4535
|
+
|
|
4536
|
+
/**
|
|
4537
|
+
* @generated from field: string customerId = 2;
|
|
4538
|
+
*/
|
|
4539
|
+
customerId: string;
|
|
4540
|
+
|
|
4541
|
+
/**
|
|
4542
|
+
* @generated from field: string tagKey = 3;
|
|
4543
|
+
*/
|
|
4544
|
+
tagKey: string;
|
|
4545
|
+
|
|
4546
|
+
/**
|
|
4547
|
+
* Optional. Page number for pagination. Starts from 1. Default is 1.
|
|
4548
|
+
*
|
|
4549
|
+
* @generated from field: int32 pageNumber = 4;
|
|
4550
|
+
*/
|
|
4551
|
+
pageNumber: number;
|
|
4552
|
+
|
|
4553
|
+
/**
|
|
4554
|
+
* Optional. Page size for pagination. Default is 50, maximum is 1000.
|
|
4555
|
+
*
|
|
4556
|
+
* @generated from field: int32 pageSize = 5;
|
|
4557
|
+
*/
|
|
4558
|
+
pageSize: number;
|
|
4559
|
+
};
|
|
4560
|
+
|
|
4561
|
+
/**
|
|
4562
|
+
* Describes the message blueapi.billing.v1.ListTagValuesRequest.
|
|
4563
|
+
* Use `create(ListTagValuesRequestSchema)` to create a new message.
|
|
4564
|
+
*/
|
|
4565
|
+
export const ListTagValuesRequestSchema: GenMessage<ListTagValuesRequest> = /*@__PURE__*/
|
|
4566
|
+
messageDesc(file_billing_v1_billing, 113);
|
|
4567
|
+
|
|
4568
|
+
/**
|
|
4569
|
+
* Response message for the Billing.ListTagValues rpc.
|
|
4570
|
+
*
|
|
4571
|
+
* @generated from message blueapi.billing.v1.ListTagValuesResponse
|
|
4572
|
+
*/
|
|
4573
|
+
export type ListTagValuesResponse = Message<"blueapi.billing.v1.ListTagValuesResponse"> & {
|
|
4574
|
+
/**
|
|
4575
|
+
* This page's distinct values.
|
|
4576
|
+
*
|
|
4577
|
+
* @generated from field: repeated string values = 1;
|
|
4578
|
+
*/
|
|
4579
|
+
values: string[];
|
|
4580
|
+
|
|
4581
|
+
/**
|
|
4582
|
+
* Total distinct-value count for this (customerId, tagKey), consistent
|
|
4583
|
+
* with Tags.totalValueCount.
|
|
4584
|
+
*
|
|
4585
|
+
* @generated from field: int32 totalValueCount = 2;
|
|
4586
|
+
*/
|
|
4587
|
+
totalValueCount: number;
|
|
4588
|
+
|
|
4589
|
+
/**
|
|
4590
|
+
* @generated from field: int32 pageNumber = 3;
|
|
4591
|
+
*/
|
|
4592
|
+
pageNumber: number;
|
|
4593
|
+
|
|
4594
|
+
/**
|
|
4595
|
+
* @generated from field: int32 pageSize = 4;
|
|
4596
|
+
*/
|
|
4597
|
+
pageSize: number;
|
|
4598
|
+
|
|
4599
|
+
/**
|
|
4600
|
+
* @generated from field: int32 totalPages = 5;
|
|
4601
|
+
*/
|
|
4602
|
+
totalPages: number;
|
|
4603
|
+
};
|
|
4604
|
+
|
|
4605
|
+
/**
|
|
4606
|
+
* Describes the message blueapi.billing.v1.ListTagValuesResponse.
|
|
4607
|
+
* Use `create(ListTagValuesResponseSchema)` to create a new message.
|
|
4608
|
+
*/
|
|
4609
|
+
export const ListTagValuesResponseSchema: GenMessage<ListTagValuesResponse> = /*@__PURE__*/
|
|
4610
|
+
messageDesc(file_billing_v1_billing, 114);
|
|
4611
|
+
|
|
4508
4612
|
/**
|
|
4509
4613
|
* @generated from message blueapi.billing.v1.CustomField
|
|
4510
4614
|
*/
|
|
@@ -4536,7 +4640,7 @@ export type CustomField = Message<"blueapi.billing.v1.CustomField"> & {
|
|
|
4536
4640
|
* Use `create(CustomFieldSchema)` to create a new message.
|
|
4537
4641
|
*/
|
|
4538
4642
|
export const CustomFieldSchema: GenMessage<CustomField> = /*@__PURE__*/
|
|
4539
|
-
messageDesc(file_billing_v1_billing,
|
|
4643
|
+
messageDesc(file_billing_v1_billing, 115);
|
|
4540
4644
|
|
|
4541
4645
|
/**
|
|
4542
4646
|
* @generated from message blueapi.billing.v1.BillingGroupCustomField
|
|
@@ -4558,7 +4662,7 @@ export type BillingGroupCustomField = Message<"blueapi.billing.v1.BillingGroupCu
|
|
|
4558
4662
|
* Use `create(BillingGroupCustomFieldSchema)` to create a new message.
|
|
4559
4663
|
*/
|
|
4560
4664
|
export const BillingGroupCustomFieldSchema: GenMessage<BillingGroupCustomField> = /*@__PURE__*/
|
|
4561
|
-
messageDesc(file_billing_v1_billing,
|
|
4665
|
+
messageDesc(file_billing_v1_billing, 116);
|
|
4562
4666
|
|
|
4563
4667
|
/**
|
|
4564
4668
|
* @generated from message blueapi.billing.v1.ListBillingGroupCustomFieldRequest
|
|
@@ -4578,7 +4682,7 @@ export type ListBillingGroupCustomFieldRequest = Message<"blueapi.billing.v1.Lis
|
|
|
4578
4682
|
* Use `create(ListBillingGroupCustomFieldRequestSchema)` to create a new message.
|
|
4579
4683
|
*/
|
|
4580
4684
|
export const ListBillingGroupCustomFieldRequestSchema: GenMessage<ListBillingGroupCustomFieldRequest> = /*@__PURE__*/
|
|
4581
|
-
messageDesc(file_billing_v1_billing,
|
|
4685
|
+
messageDesc(file_billing_v1_billing, 117);
|
|
4582
4686
|
|
|
4583
4687
|
/**
|
|
4584
4688
|
* @generated from message blueapi.billing.v1.ListBillingGroupCustomFieldResponse
|
|
@@ -4600,7 +4704,7 @@ export type ListBillingGroupCustomFieldResponse = Message<"blueapi.billing.v1.Li
|
|
|
4600
4704
|
* Use `create(ListBillingGroupCustomFieldResponseSchema)` to create a new message.
|
|
4601
4705
|
*/
|
|
4602
4706
|
export const ListBillingGroupCustomFieldResponseSchema: GenMessage<ListBillingGroupCustomFieldResponse> = /*@__PURE__*/
|
|
4603
|
-
messageDesc(file_billing_v1_billing,
|
|
4707
|
+
messageDesc(file_billing_v1_billing, 118);
|
|
4604
4708
|
|
|
4605
4709
|
/**
|
|
4606
4710
|
* @generated from message blueapi.billing.v1.CreateCustomFieldRequest
|
|
@@ -4622,7 +4726,7 @@ export type CreateCustomFieldRequest = Message<"blueapi.billing.v1.CreateCustomF
|
|
|
4622
4726
|
* Use `create(CreateCustomFieldRequestSchema)` to create a new message.
|
|
4623
4727
|
*/
|
|
4624
4728
|
export const CreateCustomFieldRequestSchema: GenMessage<CreateCustomFieldRequest> = /*@__PURE__*/
|
|
4625
|
-
messageDesc(file_billing_v1_billing,
|
|
4729
|
+
messageDesc(file_billing_v1_billing, 119);
|
|
4626
4730
|
|
|
4627
4731
|
/**
|
|
4628
4732
|
* @generated from message blueapi.billing.v1.UpdateCustomFieldRequest
|
|
@@ -4649,7 +4753,7 @@ export type UpdateCustomFieldRequest = Message<"blueapi.billing.v1.UpdateCustomF
|
|
|
4649
4753
|
* Use `create(UpdateCustomFieldRequestSchema)` to create a new message.
|
|
4650
4754
|
*/
|
|
4651
4755
|
export const UpdateCustomFieldRequestSchema: GenMessage<UpdateCustomFieldRequest> = /*@__PURE__*/
|
|
4652
|
-
messageDesc(file_billing_v1_billing,
|
|
4756
|
+
messageDesc(file_billing_v1_billing, 120);
|
|
4653
4757
|
|
|
4654
4758
|
/**
|
|
4655
4759
|
* @generated from message blueapi.billing.v1.DeleteCustomFieldRequest
|
|
@@ -4666,7 +4770,7 @@ export type DeleteCustomFieldRequest = Message<"blueapi.billing.v1.DeleteCustomF
|
|
|
4666
4770
|
* Use `create(DeleteCustomFieldRequestSchema)` to create a new message.
|
|
4667
4771
|
*/
|
|
4668
4772
|
export const DeleteCustomFieldRequestSchema: GenMessage<DeleteCustomFieldRequest> = /*@__PURE__*/
|
|
4669
|
-
messageDesc(file_billing_v1_billing,
|
|
4773
|
+
messageDesc(file_billing_v1_billing, 121);
|
|
4670
4774
|
|
|
4671
4775
|
/**
|
|
4672
4776
|
* @generated from message blueapi.billing.v1.ListCustomFieldRequest
|
|
@@ -4679,7 +4783,7 @@ export type ListCustomFieldRequest = Message<"blueapi.billing.v1.ListCustomField
|
|
|
4679
4783
|
* Use `create(ListCustomFieldRequestSchema)` to create a new message.
|
|
4680
4784
|
*/
|
|
4681
4785
|
export const ListCustomFieldRequestSchema: GenMessage<ListCustomFieldRequest> = /*@__PURE__*/
|
|
4682
|
-
messageDesc(file_billing_v1_billing,
|
|
4786
|
+
messageDesc(file_billing_v1_billing, 122);
|
|
4683
4787
|
|
|
4684
4788
|
/**
|
|
4685
4789
|
* BillingGroup FreeFormat: Also known as miscellaneous
|
|
@@ -4708,7 +4812,7 @@ export type CreateFreeFormatRequest = Message<"blueapi.billing.v1.CreateFreeForm
|
|
|
4708
4812
|
* Use `create(CreateFreeFormatRequestSchema)` to create a new message.
|
|
4709
4813
|
*/
|
|
4710
4814
|
export const CreateFreeFormatRequestSchema: GenMessage<CreateFreeFormatRequest> = /*@__PURE__*/
|
|
4711
|
-
messageDesc(file_billing_v1_billing,
|
|
4815
|
+
messageDesc(file_billing_v1_billing, 123);
|
|
4712
4816
|
|
|
4713
4817
|
/**
|
|
4714
4818
|
* @generated from message blueapi.billing.v1.FreeFormItem
|
|
@@ -4745,7 +4849,7 @@ export type FreeFormItem = Message<"blueapi.billing.v1.FreeFormItem"> & {
|
|
|
4745
4849
|
* Use `create(FreeFormItemSchema)` to create a new message.
|
|
4746
4850
|
*/
|
|
4747
4851
|
export const FreeFormItemSchema: GenMessage<FreeFormItem> = /*@__PURE__*/
|
|
4748
|
-
messageDesc(file_billing_v1_billing,
|
|
4852
|
+
messageDesc(file_billing_v1_billing, 124);
|
|
4749
4853
|
|
|
4750
4854
|
/**
|
|
4751
4855
|
* @generated from message blueapi.billing.v1.DeleteFreeFormatRequest
|
|
@@ -4767,7 +4871,7 @@ export type DeleteFreeFormatRequest = Message<"blueapi.billing.v1.DeleteFreeForm
|
|
|
4767
4871
|
* Use `create(DeleteFreeFormatRequestSchema)` to create a new message.
|
|
4768
4872
|
*/
|
|
4769
4873
|
export const DeleteFreeFormatRequestSchema: GenMessage<DeleteFreeFormatRequest> = /*@__PURE__*/
|
|
4770
|
-
messageDesc(file_billing_v1_billing,
|
|
4874
|
+
messageDesc(file_billing_v1_billing, 125);
|
|
4771
4875
|
|
|
4772
4876
|
/**
|
|
4773
4877
|
* @generated from message blueapi.billing.v1.GetFreeFormatRequest
|
|
@@ -4794,7 +4898,7 @@ export type GetFreeFormatRequest = Message<"blueapi.billing.v1.GetFreeFormatRequ
|
|
|
4794
4898
|
* Use `create(GetFreeFormatRequestSchema)` to create a new message.
|
|
4795
4899
|
*/
|
|
4796
4900
|
export const GetFreeFormatRequestSchema: GenMessage<GetFreeFormatRequest> = /*@__PURE__*/
|
|
4797
|
-
messageDesc(file_billing_v1_billing,
|
|
4901
|
+
messageDesc(file_billing_v1_billing, 126);
|
|
4798
4902
|
|
|
4799
4903
|
/**
|
|
4800
4904
|
* @generated from message blueapi.billing.v1.GetFreeFormatResponse
|
|
@@ -4821,14 +4925,14 @@ export type GetFreeFormatResponse = Message<"blueapi.billing.v1.GetFreeFormatRes
|
|
|
4821
4925
|
* Use `create(GetFreeFormatResponseSchema)` to create a new message.
|
|
4822
4926
|
*/
|
|
4823
4927
|
export const GetFreeFormatResponseSchema: GenMessage<GetFreeFormatResponse> = /*@__PURE__*/
|
|
4824
|
-
messageDesc(file_billing_v1_billing,
|
|
4928
|
+
messageDesc(file_billing_v1_billing, 127);
|
|
4825
4929
|
|
|
4826
4930
|
/**
|
|
4827
4931
|
* @generated from message blueapi.billing.v1.GetMonthlyMiscFeeImportTemplateRequest
|
|
4828
4932
|
*/
|
|
4829
4933
|
export type GetMonthlyMiscFeeImportTemplateRequest = Message<"blueapi.billing.v1.GetMonthlyMiscFeeImportTemplateRequest"> & {
|
|
4830
4934
|
/**
|
|
4831
|
-
* Optional. Template language. Supported values are "en" and "ja".
|
|
4935
|
+
* Optional. Template language. Supported values are "en" and "ja".
|
|
4832
4936
|
*
|
|
4833
4937
|
* @generated from field: string language = 1;
|
|
4834
4938
|
*/
|
|
@@ -4840,67 +4944,53 @@ export type GetMonthlyMiscFeeImportTemplateRequest = Message<"blueapi.billing.v1
|
|
|
4840
4944
|
* Use `create(GetMonthlyMiscFeeImportTemplateRequestSchema)` to create a new message.
|
|
4841
4945
|
*/
|
|
4842
4946
|
export const GetMonthlyMiscFeeImportTemplateRequestSchema: GenMessage<GetMonthlyMiscFeeImportTemplateRequest> = /*@__PURE__*/
|
|
4843
|
-
messageDesc(file_billing_v1_billing,
|
|
4947
|
+
messageDesc(file_billing_v1_billing, 128);
|
|
4844
4948
|
|
|
4845
4949
|
/**
|
|
4846
4950
|
* @generated from message blueapi.billing.v1.MonthlyMiscFeeImportTemplate
|
|
4847
4951
|
*/
|
|
4848
4952
|
export type MonthlyMiscFeeImportTemplate = Message<"blueapi.billing.v1.MonthlyMiscFeeImportTemplate"> & {
|
|
4849
4953
|
/**
|
|
4850
|
-
* Supported import format. Currently "csv".
|
|
4851
|
-
*
|
|
4852
4954
|
* @generated from field: string format = 1;
|
|
4853
4955
|
*/
|
|
4854
4956
|
format: string;
|
|
4855
4957
|
|
|
4856
4958
|
/**
|
|
4857
|
-
* Supported format version. Currently "misc_fee_import_v1".
|
|
4858
|
-
*
|
|
4859
4959
|
* @generated from field: string format_version = 2;
|
|
4860
4960
|
*/
|
|
4861
4961
|
formatVersion: string;
|
|
4862
4962
|
|
|
4863
4963
|
/**
|
|
4864
|
-
* CSV header columns in required order.
|
|
4964
|
+
* CSV header columns in required order. Has no "enabled" column: every item the
|
|
4965
|
+
* workflow imports is saved as enabled.
|
|
4865
4966
|
*
|
|
4866
4967
|
* @generated from field: repeated string headers = 3;
|
|
4867
4968
|
*/
|
|
4868
4969
|
headers: string[];
|
|
4869
4970
|
|
|
4870
4971
|
/**
|
|
4871
|
-
* Example CSV row matching the current format version.
|
|
4872
|
-
*
|
|
4873
4972
|
* @generated from field: repeated string sample_row = 4;
|
|
4874
4973
|
*/
|
|
4875
4974
|
sampleRow: string[];
|
|
4876
4975
|
|
|
4877
4976
|
/**
|
|
4878
|
-
* Supported
|
|
4977
|
+
* Supported values for BulkImportMonthlyMiscFeesRequest.mode: "merge" and "replace".
|
|
4978
|
+
* Preview vs. apply is controlled separately by BulkImportMonthlyMiscFeesRequest.dry_run,
|
|
4979
|
+
* not by this field.
|
|
4879
4980
|
*
|
|
4880
4981
|
* @generated from field: repeated string allowed_modes = 5;
|
|
4881
4982
|
*/
|
|
4882
4983
|
allowedModes: string[];
|
|
4883
4984
|
|
|
4884
4985
|
/**
|
|
4885
|
-
* Maximum upload size in bytes.
|
|
4886
|
-
*
|
|
4887
4986
|
* @generated from field: int64 max_file_size_bytes = 6;
|
|
4888
4987
|
*/
|
|
4889
4988
|
maxFileSizeBytes: bigint;
|
|
4890
4989
|
|
|
4891
4990
|
/**
|
|
4892
|
-
* Maximum data rows accepted per CSV file.
|
|
4893
|
-
*
|
|
4894
4991
|
* @generated from field: int32 max_rows = 7;
|
|
4895
4992
|
*/
|
|
4896
4993
|
maxRows: number;
|
|
4897
|
-
|
|
4898
|
-
/**
|
|
4899
|
-
* Field-level validation rules for UI guidance.
|
|
4900
|
-
*
|
|
4901
|
-
* @generated from field: repeated blueapi.billing.v1.MonthlyMiscFeeImportFieldRule field_rules = 8;
|
|
4902
|
-
*/
|
|
4903
|
-
fieldRules: MonthlyMiscFeeImportFieldRule[];
|
|
4904
4994
|
};
|
|
4905
4995
|
|
|
4906
4996
|
/**
|
|
@@ -4908,92 +4998,58 @@ export type MonthlyMiscFeeImportTemplate = Message<"blueapi.billing.v1.MonthlyMi
|
|
|
4908
4998
|
* Use `create(MonthlyMiscFeeImportTemplateSchema)` to create a new message.
|
|
4909
4999
|
*/
|
|
4910
5000
|
export const MonthlyMiscFeeImportTemplateSchema: GenMessage<MonthlyMiscFeeImportTemplate> = /*@__PURE__*/
|
|
4911
|
-
messageDesc(file_billing_v1_billing,
|
|
4912
|
-
|
|
4913
|
-
/**
|
|
4914
|
-
* @generated from message blueapi.billing.v1.MonthlyMiscFeeImportFieldRule
|
|
4915
|
-
*/
|
|
4916
|
-
export type MonthlyMiscFeeImportFieldRule = Message<"blueapi.billing.v1.MonthlyMiscFeeImportFieldRule"> & {
|
|
4917
|
-
/**
|
|
4918
|
-
* @generated from field: string field = 1;
|
|
4919
|
-
*/
|
|
4920
|
-
field: string;
|
|
4921
|
-
|
|
4922
|
-
/**
|
|
4923
|
-
* @generated from field: bool required = 2;
|
|
4924
|
-
*/
|
|
4925
|
-
required: boolean;
|
|
4926
|
-
|
|
4927
|
-
/**
|
|
4928
|
-
* @generated from field: string format = 3;
|
|
4929
|
-
*/
|
|
4930
|
-
format: string;
|
|
4931
|
-
|
|
4932
|
-
/**
|
|
4933
|
-
* @generated from field: string description = 4;
|
|
4934
|
-
*/
|
|
4935
|
-
description: string;
|
|
4936
|
-
};
|
|
4937
|
-
|
|
4938
|
-
/**
|
|
4939
|
-
* Describes the message blueapi.billing.v1.MonthlyMiscFeeImportFieldRule.
|
|
4940
|
-
* Use `create(MonthlyMiscFeeImportFieldRuleSchema)` to create a new message.
|
|
4941
|
-
*/
|
|
4942
|
-
export const MonthlyMiscFeeImportFieldRuleSchema: GenMessage<MonthlyMiscFeeImportFieldRule> = /*@__PURE__*/
|
|
4943
|
-
messageDesc(file_billing_v1_billing, 128);
|
|
5001
|
+
messageDesc(file_billing_v1_billing, 129);
|
|
4944
5002
|
|
|
4945
5003
|
/**
|
|
5004
|
+
* No billing_month or vendor field: each CSV row supplies its own, so one upload can span
|
|
5005
|
+
* any combination of billing groups, vendors, and invoice months.
|
|
5006
|
+
*
|
|
4946
5007
|
* @generated from message blueapi.billing.v1.BulkImportMonthlyMiscFeesRequest
|
|
4947
5008
|
*/
|
|
4948
5009
|
export type BulkImportMonthlyMiscFeesRequest = Message<"blueapi.billing.v1.BulkImportMonthlyMiscFeesRequest"> & {
|
|
4949
|
-
/**
|
|
4950
|
-
* Required. Selected billing cycle in YYYY-MM form; YYYYMM is accepted and normalized by the server.
|
|
4951
|
-
*
|
|
4952
|
-
* @generated from field: string billing_month = 1;
|
|
4953
|
-
*/
|
|
4954
|
-
billingMonth: string;
|
|
4955
|
-
|
|
4956
5010
|
/**
|
|
4957
5011
|
* Required. Uploaded CSV content as normalized UTF-8 text.
|
|
4958
5012
|
*
|
|
4959
|
-
* @generated from field: string csv_content =
|
|
5013
|
+
* @generated from field: string csv_content = 1;
|
|
4960
5014
|
*/
|
|
4961
5015
|
csvContent: string;
|
|
4962
5016
|
|
|
4963
5017
|
/**
|
|
4964
|
-
* Required. Original upload file name for audit
|
|
5018
|
+
* Required. Original upload file name for audit and result display.
|
|
4965
5019
|
*
|
|
4966
|
-
* @generated from field: string file_name =
|
|
5020
|
+
* @generated from field: string file_name = 2;
|
|
4967
5021
|
*/
|
|
4968
5022
|
fileName: string;
|
|
4969
5023
|
|
|
4970
5024
|
/**
|
|
4971
|
-
* Required.
|
|
5025
|
+
* Required. "merge" upserts each row's item by label, leaving every other existing item for
|
|
5026
|
+
* that billing group and vendor untouched. "replace" sets the complete additional-item list
|
|
5027
|
+
* for each (billing_month, billing_group_id, vendor) combination the CSV names to exactly
|
|
5028
|
+
* that combination's CSV rows, removing any existing item the CSV omits for it; a
|
|
5029
|
+
* "replace" CSV must contain rows for exactly one billing_month, and the request is
|
|
5030
|
+
* rejected before saving anything if it spans more than one.
|
|
4972
5031
|
*
|
|
4973
|
-
* @generated from field: string mode =
|
|
5032
|
+
* @generated from field: string mode = 3;
|
|
4974
5033
|
*/
|
|
4975
5034
|
mode: string;
|
|
4976
5035
|
|
|
4977
5036
|
/**
|
|
4978
|
-
*
|
|
4979
|
-
*
|
|
4980
|
-
* @generated from field: string format = 5;
|
|
5037
|
+
* @generated from field: string format = 4;
|
|
4981
5038
|
*/
|
|
4982
5039
|
format: string;
|
|
4983
5040
|
|
|
4984
5041
|
/**
|
|
4985
|
-
*
|
|
4986
|
-
*
|
|
4987
|
-
* @generated from field: string format_version = 6;
|
|
5042
|
+
* @generated from field: string format_version = 5;
|
|
4988
5043
|
*/
|
|
4989
5044
|
formatVersion: string;
|
|
4990
5045
|
|
|
4991
5046
|
/**
|
|
4992
|
-
* Optional.
|
|
5047
|
+
* Optional. When true, validates and returns the planned result for either mode without
|
|
5048
|
+
* saving anything.
|
|
4993
5049
|
*
|
|
4994
|
-
* @generated from field:
|
|
5050
|
+
* @generated from field: bool dry_run = 6;
|
|
4995
5051
|
*/
|
|
4996
|
-
|
|
5052
|
+
dryRun: boolean;
|
|
4997
5053
|
};
|
|
4998
5054
|
|
|
4999
5055
|
/**
|
|
@@ -5001,88 +5057,41 @@ export type BulkImportMonthlyMiscFeesRequest = Message<"blueapi.billing.v1.BulkI
|
|
|
5001
5057
|
* Use `create(BulkImportMonthlyMiscFeesRequestSchema)` to create a new message.
|
|
5002
5058
|
*/
|
|
5003
5059
|
export const BulkImportMonthlyMiscFeesRequestSchema: GenMessage<BulkImportMonthlyMiscFeesRequest> = /*@__PURE__*/
|
|
5004
|
-
messageDesc(file_billing_v1_billing,
|
|
5060
|
+
messageDesc(file_billing_v1_billing, 130);
|
|
5005
5061
|
|
|
5006
5062
|
/**
|
|
5007
5063
|
* @generated from message blueapi.billing.v1.ListMonthlyMiscFeesRequest
|
|
5008
5064
|
*/
|
|
5009
5065
|
export type ListMonthlyMiscFeesRequest = Message<"blueapi.billing.v1.ListMonthlyMiscFeesRequest"> & {
|
|
5010
5066
|
/**
|
|
5011
|
-
* Required. Billing cycle in YYYY-MM form; YYYYMM is accepted and normalized by the server.
|
|
5012
|
-
*
|
|
5013
5067
|
* @generated from field: string billing_month = 1;
|
|
5014
5068
|
*/
|
|
5015
5069
|
billingMonth: string;
|
|
5016
5070
|
|
|
5017
5071
|
/**
|
|
5018
|
-
* Optional. Exact billing group ID filter.
|
|
5019
|
-
*
|
|
5020
5072
|
* @generated from field: string billing_group_id = 2;
|
|
5021
5073
|
*/
|
|
5022
5074
|
billingGroupId: string;
|
|
5023
5075
|
|
|
5024
5076
|
/**
|
|
5025
|
-
* Optional. Case-insensitive billing group name query.
|
|
5026
|
-
*
|
|
5027
5077
|
* @generated from field: string billing_group_name_query = 3;
|
|
5028
5078
|
*/
|
|
5029
5079
|
billingGroupNameQuery: string;
|
|
5030
5080
|
|
|
5031
5081
|
/**
|
|
5032
|
-
* Optional. Case-insensitive item or fee tag query.
|
|
5033
|
-
*
|
|
5034
5082
|
* @generated from field: string item_query = 4;
|
|
5035
5083
|
*/
|
|
5036
5084
|
itemQuery: string;
|
|
5037
5085
|
|
|
5038
5086
|
/**
|
|
5039
|
-
*
|
|
5040
|
-
*
|
|
5041
|
-
* @generated from field: string source = 5;
|
|
5042
|
-
*/
|
|
5043
|
-
source: string;
|
|
5044
|
-
|
|
5045
|
-
/**
|
|
5046
|
-
* Optional. User identifier that last updated the row.
|
|
5047
|
-
*
|
|
5048
|
-
* @generated from field: string updated_by = 6;
|
|
5049
|
-
*/
|
|
5050
|
-
updatedBy: string;
|
|
5051
|
-
|
|
5052
|
-
/**
|
|
5053
|
-
* Optional. RFC3339 lower bound for updated_at.
|
|
5054
|
-
*
|
|
5055
|
-
* @generated from field: string updated_after = 7;
|
|
5056
|
-
*/
|
|
5057
|
-
updatedAfter: string;
|
|
5058
|
-
|
|
5059
|
-
/**
|
|
5060
|
-
* Optional. RFC3339 upper bound for updated_at.
|
|
5061
|
-
*
|
|
5062
|
-
* @generated from field: string updated_before = 8;
|
|
5063
|
-
*/
|
|
5064
|
-
updatedBefore: string;
|
|
5065
|
-
|
|
5066
|
-
/**
|
|
5067
|
-
* Optional. Page size for pagination. Default and maximum are server-defined.
|
|
5068
|
-
*
|
|
5069
|
-
* @generated from field: int32 page_size = 9;
|
|
5087
|
+
* @generated from field: int32 page_size = 5;
|
|
5070
5088
|
*/
|
|
5071
5089
|
pageSize: number;
|
|
5072
5090
|
|
|
5073
5091
|
/**
|
|
5074
|
-
*
|
|
5075
|
-
*
|
|
5076
|
-
* @generated from field: string page_token = 10;
|
|
5092
|
+
* @generated from field: string page_token = 6;
|
|
5077
5093
|
*/
|
|
5078
5094
|
pageToken: string;
|
|
5079
|
-
|
|
5080
|
-
/**
|
|
5081
|
-
* Optional. Stable sort expression. Defaults to billing_group_name, item_name, row_id.
|
|
5082
|
-
*
|
|
5083
|
-
* @generated from field: string sort = 11;
|
|
5084
|
-
*/
|
|
5085
|
-
sort: string;
|
|
5086
5095
|
};
|
|
5087
5096
|
|
|
5088
5097
|
/**
|
|
@@ -5090,7 +5099,7 @@ export type ListMonthlyMiscFeesRequest = Message<"blueapi.billing.v1.ListMonthly
|
|
|
5090
5099
|
* Use `create(ListMonthlyMiscFeesRequestSchema)` to create a new message.
|
|
5091
5100
|
*/
|
|
5092
5101
|
export const ListMonthlyMiscFeesRequestSchema: GenMessage<ListMonthlyMiscFeesRequest> = /*@__PURE__*/
|
|
5093
|
-
messageDesc(file_billing_v1_billing,
|
|
5102
|
+
messageDesc(file_billing_v1_billing, 131);
|
|
5094
5103
|
|
|
5095
5104
|
/**
|
|
5096
5105
|
* @generated from message blueapi.billing.v1.ListMonthlyMiscFeesResponse
|
|
@@ -5117,477 +5126,285 @@ export type ListMonthlyMiscFeesResponse = Message<"blueapi.billing.v1.ListMonthl
|
|
|
5117
5126
|
* Use `create(ListMonthlyMiscFeesResponseSchema)` to create a new message.
|
|
5118
5127
|
*/
|
|
5119
5128
|
export const ListMonthlyMiscFeesResponseSchema: GenMessage<ListMonthlyMiscFeesResponse> = /*@__PURE__*/
|
|
5120
|
-
messageDesc(file_billing_v1_billing,
|
|
5129
|
+
messageDesc(file_billing_v1_billing, 132);
|
|
5121
5130
|
|
|
5122
5131
|
/**
|
|
5123
|
-
* @generated from message blueapi.billing.v1.
|
|
5132
|
+
* @generated from message blueapi.billing.v1.DeleteMonthlyMiscFeeRequest
|
|
5124
5133
|
*/
|
|
5125
|
-
export type
|
|
5134
|
+
export type DeleteMonthlyMiscFeeRequest = Message<"blueapi.billing.v1.DeleteMonthlyMiscFeeRequest"> & {
|
|
5126
5135
|
/**
|
|
5127
|
-
*
|
|
5136
|
+
* An opaque ID returned by ListMonthlyMiscFees.
|
|
5128
5137
|
*
|
|
5129
5138
|
* @generated from field: string row_id = 1;
|
|
5130
5139
|
*/
|
|
5131
5140
|
rowId: string;
|
|
5132
5141
|
|
|
5133
5142
|
/**
|
|
5134
|
-
* Required. Billing month used to reject cross-month access or mutation mistakes.
|
|
5135
|
-
*
|
|
5136
5143
|
* @generated from field: string billing_month = 2;
|
|
5137
5144
|
*/
|
|
5138
5145
|
billingMonth: string;
|
|
5139
5146
|
};
|
|
5140
5147
|
|
|
5141
5148
|
/**
|
|
5142
|
-
* Describes the message blueapi.billing.v1.
|
|
5143
|
-
* Use `create(
|
|
5149
|
+
* Describes the message blueapi.billing.v1.DeleteMonthlyMiscFeeRequest.
|
|
5150
|
+
* Use `create(DeleteMonthlyMiscFeeRequestSchema)` to create a new message.
|
|
5144
5151
|
*/
|
|
5145
|
-
export const
|
|
5146
|
-
messageDesc(file_billing_v1_billing,
|
|
5152
|
+
export const DeleteMonthlyMiscFeeRequestSchema: GenMessage<DeleteMonthlyMiscFeeRequest> = /*@__PURE__*/
|
|
5153
|
+
messageDesc(file_billing_v1_billing, 133);
|
|
5147
5154
|
|
|
5148
5155
|
/**
|
|
5149
|
-
* @generated from message blueapi.billing.v1.
|
|
5156
|
+
* @generated from message blueapi.billing.v1.MonthlyMiscFee
|
|
5150
5157
|
*/
|
|
5151
|
-
export type
|
|
5158
|
+
export type MonthlyMiscFee = Message<"blueapi.billing.v1.MonthlyMiscFee"> & {
|
|
5152
5159
|
/**
|
|
5153
|
-
*
|
|
5154
|
-
|
|
5155
|
-
|
|
5160
|
+
* @generated from field: string row_id = 1;
|
|
5161
|
+
*/
|
|
5162
|
+
rowId: string;
|
|
5163
|
+
|
|
5164
|
+
/**
|
|
5165
|
+
* @generated from field: string billing_month = 2;
|
|
5156
5166
|
*/
|
|
5157
5167
|
billingMonth: string;
|
|
5158
5168
|
|
|
5159
5169
|
/**
|
|
5160
|
-
*
|
|
5161
|
-
*
|
|
5162
|
-
* @generated from field: string billing_group_id = 2;
|
|
5170
|
+
* @generated from field: string billing_group_id = 3;
|
|
5163
5171
|
*/
|
|
5164
5172
|
billingGroupId: string;
|
|
5165
5173
|
|
|
5166
5174
|
/**
|
|
5167
|
-
*
|
|
5168
|
-
*
|
|
5169
|
-
* @generated from field: string billing_group_name_query = 3;
|
|
5175
|
+
* @generated from field: string billing_group_name = 4;
|
|
5170
5176
|
*/
|
|
5171
|
-
|
|
5177
|
+
billingGroupName: string;
|
|
5172
5178
|
|
|
5173
5179
|
/**
|
|
5174
|
-
*
|
|
5175
|
-
*
|
|
5176
|
-
* @generated from field: string item_query = 4;
|
|
5180
|
+
* @generated from field: string vendor = 5;
|
|
5177
5181
|
*/
|
|
5178
|
-
|
|
5182
|
+
vendor: string;
|
|
5179
5183
|
|
|
5180
5184
|
/**
|
|
5181
|
-
*
|
|
5182
|
-
*
|
|
5183
|
-
* @generated from field: string source = 5;
|
|
5185
|
+
* @generated from field: string item_name = 6;
|
|
5184
5186
|
*/
|
|
5185
|
-
|
|
5187
|
+
itemName: string;
|
|
5186
5188
|
|
|
5187
5189
|
/**
|
|
5188
|
-
*
|
|
5189
|
-
*
|
|
5190
|
-
* @generated from field: string updated_by = 6;
|
|
5190
|
+
* @generated from field: uint32 quantity = 7;
|
|
5191
5191
|
*/
|
|
5192
|
-
|
|
5192
|
+
quantity: number;
|
|
5193
5193
|
|
|
5194
5194
|
/**
|
|
5195
|
-
*
|
|
5196
|
-
*
|
|
5197
|
-
* @generated from field: string updated_after = 7;
|
|
5195
|
+
* @generated from field: int64 unit_cost = 8;
|
|
5198
5196
|
*/
|
|
5199
|
-
|
|
5197
|
+
unitCost: bigint;
|
|
5200
5198
|
|
|
5201
5199
|
/**
|
|
5202
|
-
*
|
|
5203
|
-
|
|
5204
|
-
|
|
5200
|
+
* @generated from field: int64 amount = 9;
|
|
5201
|
+
*/
|
|
5202
|
+
amount: bigint;
|
|
5203
|
+
|
|
5204
|
+
/**
|
|
5205
|
+
* @generated from field: bool enabled = 10;
|
|
5205
5206
|
*/
|
|
5206
|
-
|
|
5207
|
+
enabled: boolean;
|
|
5207
5208
|
|
|
5208
5209
|
/**
|
|
5209
|
-
*
|
|
5210
|
+
* One of "saved", "created", or "default".
|
|
5210
5211
|
*
|
|
5211
|
-
* @generated from field: string
|
|
5212
|
+
* @generated from field: string source = 11;
|
|
5212
5213
|
*/
|
|
5213
|
-
|
|
5214
|
+
source: string;
|
|
5214
5215
|
};
|
|
5215
5216
|
|
|
5216
5217
|
/**
|
|
5217
|
-
* Describes the message blueapi.billing.v1.
|
|
5218
|
-
* Use `create(
|
|
5218
|
+
* Describes the message blueapi.billing.v1.MonthlyMiscFee.
|
|
5219
|
+
* Use `create(MonthlyMiscFeeSchema)` to create a new message.
|
|
5219
5220
|
*/
|
|
5220
|
-
export const
|
|
5221
|
-
messageDesc(file_billing_v1_billing,
|
|
5221
|
+
export const MonthlyMiscFeeSchema: GenMessage<MonthlyMiscFee> = /*@__PURE__*/
|
|
5222
|
+
messageDesc(file_billing_v1_billing, 134);
|
|
5222
5223
|
|
|
5223
5224
|
/**
|
|
5224
|
-
*
|
|
5225
|
+
* No singular billing_month field: a result can now span multiple billing months. See
|
|
5226
|
+
* billing_months below.
|
|
5227
|
+
*
|
|
5228
|
+
* @generated from message blueapi.billing.v1.MonthlyMiscFeeImportResult
|
|
5225
5229
|
*/
|
|
5226
|
-
export type
|
|
5230
|
+
export type MonthlyMiscFeeImportResult = Message<"blueapi.billing.v1.MonthlyMiscFeeImportResult"> & {
|
|
5227
5231
|
/**
|
|
5228
|
-
*
|
|
5229
|
-
*
|
|
5230
|
-
* @generated from field: bytes csv_content = 1;
|
|
5232
|
+
* @generated from field: string status = 1;
|
|
5231
5233
|
*/
|
|
5232
|
-
|
|
5234
|
+
status: string;
|
|
5233
5235
|
|
|
5234
5236
|
/**
|
|
5235
|
-
*
|
|
5236
|
-
*
|
|
5237
|
-
* @generated from field: string export_ref = 2;
|
|
5237
|
+
* @generated from field: string file_name = 2;
|
|
5238
5238
|
*/
|
|
5239
|
-
|
|
5239
|
+
fileName: string;
|
|
5240
5240
|
|
|
5241
5241
|
/**
|
|
5242
|
-
*
|
|
5243
|
-
*
|
|
5244
|
-
* @generated from field: string file_name = 3;
|
|
5242
|
+
* @generated from field: int32 total_rows = 3;
|
|
5245
5243
|
*/
|
|
5246
|
-
|
|
5247
|
-
};
|
|
5248
|
-
|
|
5249
|
-
/**
|
|
5250
|
-
* Describes the message blueapi.billing.v1.ExportMonthlyMiscFeesResponse.
|
|
5251
|
-
* Use `create(ExportMonthlyMiscFeesResponseSchema)` to create a new message.
|
|
5252
|
-
*/
|
|
5253
|
-
export const ExportMonthlyMiscFeesResponseSchema: GenMessage<ExportMonthlyMiscFeesResponse> = /*@__PURE__*/
|
|
5254
|
-
messageDesc(file_billing_v1_billing, 134);
|
|
5244
|
+
totalRows: number;
|
|
5255
5245
|
|
|
5256
|
-
/**
|
|
5257
|
-
* @generated from message blueapi.billing.v1.GetMonthlyMiscFeeImportRequest
|
|
5258
|
-
*/
|
|
5259
|
-
export type GetMonthlyMiscFeeImportRequest = Message<"blueapi.billing.v1.GetMonthlyMiscFeeImportRequest"> & {
|
|
5260
5246
|
/**
|
|
5261
|
-
*
|
|
5262
|
-
*
|
|
5263
|
-
* @generated from field: string import_job_id = 1;
|
|
5247
|
+
* @generated from field: int32 valid_rows = 4;
|
|
5264
5248
|
*/
|
|
5265
|
-
|
|
5266
|
-
};
|
|
5267
|
-
|
|
5268
|
-
/**
|
|
5269
|
-
* Describes the message blueapi.billing.v1.GetMonthlyMiscFeeImportRequest.
|
|
5270
|
-
* Use `create(GetMonthlyMiscFeeImportRequestSchema)` to create a new message.
|
|
5271
|
-
*/
|
|
5272
|
-
export const GetMonthlyMiscFeeImportRequestSchema: GenMessage<GetMonthlyMiscFeeImportRequest> = /*@__PURE__*/
|
|
5273
|
-
messageDesc(file_billing_v1_billing, 135);
|
|
5249
|
+
validRows: number;
|
|
5274
5250
|
|
|
5275
|
-
/**
|
|
5276
|
-
* @generated from message blueapi.billing.v1.UpsertMonthlyMiscFeeRequest
|
|
5277
|
-
*/
|
|
5278
|
-
export type UpsertMonthlyMiscFeeRequest = Message<"blueapi.billing.v1.UpsertMonthlyMiscFeeRequest"> & {
|
|
5279
5251
|
/**
|
|
5280
|
-
*
|
|
5281
|
-
*
|
|
5282
|
-
* @generated from field: string row_id = 1;
|
|
5283
|
-
*/
|
|
5284
|
-
rowId: string;
|
|
5285
|
-
|
|
5286
|
-
/**
|
|
5287
|
-
* Required. Full row value to create or update.
|
|
5288
|
-
*
|
|
5289
|
-
* @generated from field: blueapi.billing.v1.MonthlyMiscFee row = 2;
|
|
5290
|
-
*/
|
|
5291
|
-
row?: MonthlyMiscFee;
|
|
5292
|
-
|
|
5293
|
-
/**
|
|
5294
|
-
* Optional. Idempotency key for UI retry safety.
|
|
5295
|
-
*
|
|
5296
|
-
* @generated from field: string idempotency_key = 3;
|
|
5297
|
-
*/
|
|
5298
|
-
idempotencyKey: string;
|
|
5299
|
-
};
|
|
5300
|
-
|
|
5301
|
-
/**
|
|
5302
|
-
* Describes the message blueapi.billing.v1.UpsertMonthlyMiscFeeRequest.
|
|
5303
|
-
* Use `create(UpsertMonthlyMiscFeeRequestSchema)` to create a new message.
|
|
5304
|
-
*/
|
|
5305
|
-
export const UpsertMonthlyMiscFeeRequestSchema: GenMessage<UpsertMonthlyMiscFeeRequest> = /*@__PURE__*/
|
|
5306
|
-
messageDesc(file_billing_v1_billing, 136);
|
|
5307
|
-
|
|
5308
|
-
/**
|
|
5309
|
-
* @generated from message blueapi.billing.v1.DeleteMonthlyMiscFeeRequest
|
|
5310
|
-
*/
|
|
5311
|
-
export type DeleteMonthlyMiscFeeRequest = Message<"blueapi.billing.v1.DeleteMonthlyMiscFeeRequest"> & {
|
|
5312
|
-
/**
|
|
5313
|
-
* Required. Server-owned row ID.
|
|
5314
|
-
*
|
|
5315
|
-
* @generated from field: string row_id = 1;
|
|
5316
|
-
*/
|
|
5317
|
-
rowId: string;
|
|
5318
|
-
|
|
5319
|
-
/**
|
|
5320
|
-
* Required. Billing month used to reject cross-month deletion mistakes.
|
|
5321
|
-
*
|
|
5322
|
-
* @generated from field: string billing_month = 2;
|
|
5323
|
-
*/
|
|
5324
|
-
billingMonth: string;
|
|
5325
|
-
};
|
|
5326
|
-
|
|
5327
|
-
/**
|
|
5328
|
-
* Describes the message blueapi.billing.v1.DeleteMonthlyMiscFeeRequest.
|
|
5329
|
-
* Use `create(DeleteMonthlyMiscFeeRequestSchema)` to create a new message.
|
|
5330
|
-
*/
|
|
5331
|
-
export const DeleteMonthlyMiscFeeRequestSchema: GenMessage<DeleteMonthlyMiscFeeRequest> = /*@__PURE__*/
|
|
5332
|
-
messageDesc(file_billing_v1_billing, 137);
|
|
5333
|
-
|
|
5334
|
-
/**
|
|
5335
|
-
* @generated from message blueapi.billing.v1.MonthlyMiscFee
|
|
5336
|
-
*/
|
|
5337
|
-
export type MonthlyMiscFee = Message<"blueapi.billing.v1.MonthlyMiscFee"> & {
|
|
5338
|
-
/**
|
|
5339
|
-
* @generated from field: string row_id = 1;
|
|
5340
|
-
*/
|
|
5341
|
-
rowId: string;
|
|
5342
|
-
|
|
5343
|
-
/**
|
|
5344
|
-
* @generated from field: string billing_month = 2;
|
|
5345
|
-
*/
|
|
5346
|
-
billingMonth: string;
|
|
5347
|
-
|
|
5348
|
-
/**
|
|
5349
|
-
* @generated from field: string billing_group_id = 3;
|
|
5350
|
-
*/
|
|
5351
|
-
billingGroupId: string;
|
|
5352
|
-
|
|
5353
|
-
/**
|
|
5354
|
-
* @generated from field: string billing_group_name = 4;
|
|
5355
|
-
*/
|
|
5356
|
-
billingGroupName: string;
|
|
5357
|
-
|
|
5358
|
-
/**
|
|
5359
|
-
* @generated from field: string item_name = 5;
|
|
5360
|
-
*/
|
|
5361
|
-
itemName: string;
|
|
5362
|
-
|
|
5363
|
-
/**
|
|
5364
|
-
* @generated from field: string quantity = 6;
|
|
5252
|
+
* @generated from field: int32 inserted_rows = 5;
|
|
5365
5253
|
*/
|
|
5366
|
-
|
|
5254
|
+
insertedRows: number;
|
|
5367
5255
|
|
|
5368
5256
|
/**
|
|
5369
|
-
* @generated from field:
|
|
5257
|
+
* @generated from field: int32 updated_rows = 6;
|
|
5370
5258
|
*/
|
|
5371
|
-
|
|
5259
|
+
updatedRows: number;
|
|
5372
5260
|
|
|
5373
5261
|
/**
|
|
5374
|
-
* @generated from field:
|
|
5262
|
+
* @generated from field: int32 unchanged_rows = 7;
|
|
5375
5263
|
*/
|
|
5376
|
-
|
|
5264
|
+
unchangedRows: number;
|
|
5377
5265
|
|
|
5378
5266
|
/**
|
|
5379
|
-
* @generated from field:
|
|
5267
|
+
* @generated from field: int32 failed_rows = 8;
|
|
5380
5268
|
*/
|
|
5381
|
-
|
|
5269
|
+
failedRows: number;
|
|
5382
5270
|
|
|
5383
5271
|
/**
|
|
5384
|
-
* @generated from field:
|
|
5272
|
+
* @generated from field: repeated blueapi.billing.v1.MonthlyMiscFeeImportRowResult row_results = 9;
|
|
5385
5273
|
*/
|
|
5386
|
-
|
|
5274
|
+
rowResults: MonthlyMiscFeeImportRowResult[];
|
|
5387
5275
|
|
|
5388
5276
|
/**
|
|
5389
|
-
*
|
|
5277
|
+
* Existing items removed because a "replace"-mode CSV omitted them from a combination it
|
|
5278
|
+
* touched. Always 0 in "merge" mode.
|
|
5279
|
+
*
|
|
5280
|
+
* @generated from field: int32 removed_rows = 10;
|
|
5390
5281
|
*/
|
|
5391
|
-
|
|
5282
|
+
removedRows: number;
|
|
5392
5283
|
|
|
5393
5284
|
/**
|
|
5394
|
-
*
|
|
5285
|
+
* Every distinct billing month, in "YYYY-MM" form, a valid row in this file touches.
|
|
5286
|
+
*
|
|
5287
|
+
* @generated from field: repeated string billing_months = 11;
|
|
5395
5288
|
*/
|
|
5396
|
-
|
|
5289
|
+
billingMonths: string[];
|
|
5397
5290
|
|
|
5398
5291
|
/**
|
|
5399
|
-
*
|
|
5292
|
+
* Every distinct vendor a valid row in this file touches.
|
|
5293
|
+
*
|
|
5294
|
+
* @generated from field: repeated string vendors = 12;
|
|
5400
5295
|
*/
|
|
5401
|
-
|
|
5296
|
+
vendors: string[];
|
|
5402
5297
|
|
|
5403
5298
|
/**
|
|
5404
|
-
*
|
|
5299
|
+
* Every distinct billing group a valid row in this file touches.
|
|
5300
|
+
*
|
|
5301
|
+
* @generated from field: repeated blueapi.billing.v1.MonthlyMiscFeeImportGroupSummary billing_groups = 13;
|
|
5405
5302
|
*/
|
|
5406
|
-
|
|
5303
|
+
billingGroups: MonthlyMiscFeeImportGroupSummary[];
|
|
5407
5304
|
};
|
|
5408
5305
|
|
|
5409
5306
|
/**
|
|
5410
|
-
* Describes the message blueapi.billing.v1.
|
|
5411
|
-
* Use `create(
|
|
5307
|
+
* Describes the message blueapi.billing.v1.MonthlyMiscFeeImportResult.
|
|
5308
|
+
* Use `create(MonthlyMiscFeeImportResultSchema)` to create a new message.
|
|
5412
5309
|
*/
|
|
5413
|
-
export const
|
|
5414
|
-
messageDesc(file_billing_v1_billing,
|
|
5310
|
+
export const MonthlyMiscFeeImportResultSchema: GenMessage<MonthlyMiscFeeImportResult> = /*@__PURE__*/
|
|
5311
|
+
messageDesc(file_billing_v1_billing, 135);
|
|
5415
5312
|
|
|
5416
5313
|
/**
|
|
5417
|
-
* @generated from message blueapi.billing.v1.
|
|
5314
|
+
* @generated from message blueapi.billing.v1.MonthlyMiscFeeImportGroupSummary
|
|
5418
5315
|
*/
|
|
5419
|
-
export type
|
|
5420
|
-
/**
|
|
5421
|
-
* @generated from field: string import_job_id = 1;
|
|
5422
|
-
*/
|
|
5423
|
-
importJobId: string;
|
|
5424
|
-
|
|
5425
|
-
/**
|
|
5426
|
-
* @generated from field: string status = 2;
|
|
5427
|
-
*/
|
|
5428
|
-
status: string;
|
|
5429
|
-
|
|
5430
|
-
/**
|
|
5431
|
-
* @generated from field: string mode = 3;
|
|
5432
|
-
*/
|
|
5433
|
-
mode: string;
|
|
5434
|
-
|
|
5435
|
-
/**
|
|
5436
|
-
* @generated from field: string billing_month = 4;
|
|
5437
|
-
*/
|
|
5438
|
-
billingMonth: string;
|
|
5439
|
-
|
|
5440
|
-
/**
|
|
5441
|
-
* @generated from field: string file_name = 5;
|
|
5442
|
-
*/
|
|
5443
|
-
fileName: string;
|
|
5444
|
-
|
|
5445
|
-
/**
|
|
5446
|
-
* @generated from field: string file_hash = 6;
|
|
5447
|
-
*/
|
|
5448
|
-
fileHash: string;
|
|
5449
|
-
|
|
5450
|
-
/**
|
|
5451
|
-
* @generated from field: int32 total_rows = 7;
|
|
5452
|
-
*/
|
|
5453
|
-
totalRows: number;
|
|
5454
|
-
|
|
5455
|
-
/**
|
|
5456
|
-
* @generated from field: int32 valid_rows = 8;
|
|
5457
|
-
*/
|
|
5458
|
-
validRows: number;
|
|
5459
|
-
|
|
5460
|
-
/**
|
|
5461
|
-
* @generated from field: int32 inserted_rows = 9;
|
|
5462
|
-
*/
|
|
5463
|
-
insertedRows: number;
|
|
5464
|
-
|
|
5465
|
-
/**
|
|
5466
|
-
* @generated from field: int32 updated_rows = 10;
|
|
5467
|
-
*/
|
|
5468
|
-
updatedRows: number;
|
|
5469
|
-
|
|
5470
|
-
/**
|
|
5471
|
-
* @generated from field: int32 unchanged_rows = 11;
|
|
5472
|
-
*/
|
|
5473
|
-
unchangedRows: number;
|
|
5474
|
-
|
|
5475
|
-
/**
|
|
5476
|
-
* @generated from field: int32 deleted_rows = 12;
|
|
5477
|
-
*/
|
|
5478
|
-
deletedRows: number;
|
|
5479
|
-
|
|
5480
|
-
/**
|
|
5481
|
-
* @generated from field: int32 failed_rows = 13;
|
|
5482
|
-
*/
|
|
5483
|
-
failedRows: number;
|
|
5484
|
-
|
|
5485
|
-
/**
|
|
5486
|
-
* @generated from field: int32 replace_month_existing_rows = 14;
|
|
5487
|
-
*/
|
|
5488
|
-
replaceMonthExistingRows: number;
|
|
5489
|
-
|
|
5490
|
-
/**
|
|
5491
|
-
* @generated from field: string export_ref = 15;
|
|
5492
|
-
*/
|
|
5493
|
-
exportRef: string;
|
|
5494
|
-
|
|
5495
|
-
/**
|
|
5496
|
-
* @generated from field: repeated blueapi.billing.v1.MonthlyMiscFeeImportRowResult row_results = 16;
|
|
5497
|
-
*/
|
|
5498
|
-
rowResults: MonthlyMiscFeeImportRowResult[];
|
|
5499
|
-
|
|
5316
|
+
export type MonthlyMiscFeeImportGroupSummary = Message<"blueapi.billing.v1.MonthlyMiscFeeImportGroupSummary"> & {
|
|
5500
5317
|
/**
|
|
5501
|
-
* @generated from field: string
|
|
5318
|
+
* @generated from field: string billing_group_id = 1;
|
|
5502
5319
|
*/
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
/**
|
|
5506
|
-
* @generated from field: string created_at = 18;
|
|
5507
|
-
*/
|
|
5508
|
-
createdAt: string;
|
|
5320
|
+
billingGroupId: string;
|
|
5509
5321
|
|
|
5510
5322
|
/**
|
|
5511
|
-
* @generated from field: string
|
|
5323
|
+
* @generated from field: string billing_group_name = 2;
|
|
5512
5324
|
*/
|
|
5513
|
-
|
|
5325
|
+
billingGroupName: string;
|
|
5514
5326
|
};
|
|
5515
5327
|
|
|
5516
5328
|
/**
|
|
5517
|
-
* Describes the message blueapi.billing.v1.
|
|
5518
|
-
* Use `create(
|
|
5329
|
+
* Describes the message blueapi.billing.v1.MonthlyMiscFeeImportGroupSummary.
|
|
5330
|
+
* Use `create(MonthlyMiscFeeImportGroupSummarySchema)` to create a new message.
|
|
5519
5331
|
*/
|
|
5520
|
-
export const
|
|
5521
|
-
messageDesc(file_billing_v1_billing,
|
|
5332
|
+
export const MonthlyMiscFeeImportGroupSummarySchema: GenMessage<MonthlyMiscFeeImportGroupSummary> = /*@__PURE__*/
|
|
5333
|
+
messageDesc(file_billing_v1_billing, 136);
|
|
5522
5334
|
|
|
5523
5335
|
/**
|
|
5524
5336
|
* @generated from message blueapi.billing.v1.MonthlyMiscFeeImportRowResult
|
|
5525
5337
|
*/
|
|
5526
5338
|
export type MonthlyMiscFeeImportRowResult = Message<"blueapi.billing.v1.MonthlyMiscFeeImportRowResult"> & {
|
|
5527
5339
|
/**
|
|
5340
|
+
* The 1-based CSV row this result corresponds to. 0 when action is "remove", since a
|
|
5341
|
+
* removal has no corresponding CSV row.
|
|
5342
|
+
*
|
|
5528
5343
|
* @generated from field: int32 csv_row_number = 1;
|
|
5529
5344
|
*/
|
|
5530
5345
|
csvRowNumber: number;
|
|
5531
5346
|
|
|
5532
5347
|
/**
|
|
5348
|
+
* One of "insert", "update", "unchanged", "invalid", or "remove". "remove" only appears in
|
|
5349
|
+
* "replace" mode, for an existing item the CSV silently drops from a combination it
|
|
5350
|
+
* otherwise touches.
|
|
5351
|
+
*
|
|
5533
5352
|
* @generated from field: string action = 2;
|
|
5534
5353
|
*/
|
|
5535
5354
|
action: string;
|
|
5536
5355
|
|
|
5537
5356
|
/**
|
|
5538
|
-
* @generated from field: string
|
|
5539
|
-
*/
|
|
5540
|
-
rowId: string;
|
|
5541
|
-
|
|
5542
|
-
/**
|
|
5543
|
-
* @generated from field: string billing_month = 4;
|
|
5357
|
+
* @generated from field: string billing_group_id = 3;
|
|
5544
5358
|
*/
|
|
5545
|
-
|
|
5359
|
+
billingGroupId: string;
|
|
5546
5360
|
|
|
5547
5361
|
/**
|
|
5548
|
-
* @generated from field: string
|
|
5362
|
+
* @generated from field: string billing_group_name = 4;
|
|
5549
5363
|
*/
|
|
5550
|
-
|
|
5364
|
+
billingGroupName: string;
|
|
5551
5365
|
|
|
5552
5366
|
/**
|
|
5553
|
-
* @generated from field: string
|
|
5367
|
+
* @generated from field: string vendor = 5;
|
|
5554
5368
|
*/
|
|
5555
|
-
|
|
5369
|
+
vendor: string;
|
|
5556
5370
|
|
|
5557
5371
|
/**
|
|
5558
|
-
* @generated from field: string item_name =
|
|
5372
|
+
* @generated from field: string item_name = 6;
|
|
5559
5373
|
*/
|
|
5560
5374
|
itemName: string;
|
|
5561
5375
|
|
|
5562
5376
|
/**
|
|
5563
|
-
* @generated from field:
|
|
5377
|
+
* @generated from field: uint32 quantity = 7;
|
|
5564
5378
|
*/
|
|
5565
|
-
quantity:
|
|
5379
|
+
quantity: number;
|
|
5566
5380
|
|
|
5567
5381
|
/**
|
|
5568
|
-
* @generated from field:
|
|
5382
|
+
* @generated from field: int64 unit_cost = 8;
|
|
5569
5383
|
*/
|
|
5570
|
-
unitCost:
|
|
5384
|
+
unitCost: bigint;
|
|
5571
5385
|
|
|
5572
5386
|
/**
|
|
5573
|
-
* @generated from field:
|
|
5387
|
+
* @generated from field: int64 amount = 9;
|
|
5574
5388
|
*/
|
|
5575
|
-
amount:
|
|
5389
|
+
amount: bigint;
|
|
5576
5390
|
|
|
5577
5391
|
/**
|
|
5578
|
-
* @generated from field:
|
|
5392
|
+
* @generated from field: bool enabled = 10;
|
|
5579
5393
|
*/
|
|
5580
|
-
|
|
5394
|
+
enabled: boolean;
|
|
5581
5395
|
|
|
5582
5396
|
/**
|
|
5583
|
-
* @generated from field: repeated blueapi.billing.v1.MonthlyMiscFeeValidationError validation_errors =
|
|
5397
|
+
* @generated from field: repeated blueapi.billing.v1.MonthlyMiscFeeValidationError validation_errors = 11;
|
|
5584
5398
|
*/
|
|
5585
5399
|
validationErrors: MonthlyMiscFeeValidationError[];
|
|
5586
5400
|
|
|
5587
5401
|
/**
|
|
5588
|
-
*
|
|
5402
|
+
* The row's own billing month in "YYYY-MM" form. Always populated, including for "remove"
|
|
5403
|
+
* results, since a request can span multiple months.
|
|
5404
|
+
*
|
|
5405
|
+
* @generated from field: string billing_month = 12;
|
|
5589
5406
|
*/
|
|
5590
|
-
|
|
5407
|
+
billingMonth: string;
|
|
5591
5408
|
};
|
|
5592
5409
|
|
|
5593
5410
|
/**
|
|
@@ -5595,34 +5412,7 @@ export type MonthlyMiscFeeImportRowResult = Message<"blueapi.billing.v1.MonthlyM
|
|
|
5595
5412
|
* Use `create(MonthlyMiscFeeImportRowResultSchema)` to create a new message.
|
|
5596
5413
|
*/
|
|
5597
5414
|
export const MonthlyMiscFeeImportRowResultSchema: GenMessage<MonthlyMiscFeeImportRowResult> = /*@__PURE__*/
|
|
5598
|
-
messageDesc(file_billing_v1_billing,
|
|
5599
|
-
|
|
5600
|
-
/**
|
|
5601
|
-
* @generated from message blueapi.billing.v1.MonthlyMiscFeeImportPreviousValue
|
|
5602
|
-
*/
|
|
5603
|
-
export type MonthlyMiscFeeImportPreviousValue = Message<"blueapi.billing.v1.MonthlyMiscFeeImportPreviousValue"> & {
|
|
5604
|
-
/**
|
|
5605
|
-
* @generated from field: string quantity = 1;
|
|
5606
|
-
*/
|
|
5607
|
-
quantity: string;
|
|
5608
|
-
|
|
5609
|
-
/**
|
|
5610
|
-
* @generated from field: string unit_cost = 2;
|
|
5611
|
-
*/
|
|
5612
|
-
unitCost: string;
|
|
5613
|
-
|
|
5614
|
-
/**
|
|
5615
|
-
* @generated from field: string amount = 3;
|
|
5616
|
-
*/
|
|
5617
|
-
amount: string;
|
|
5618
|
-
};
|
|
5619
|
-
|
|
5620
|
-
/**
|
|
5621
|
-
* Describes the message blueapi.billing.v1.MonthlyMiscFeeImportPreviousValue.
|
|
5622
|
-
* Use `create(MonthlyMiscFeeImportPreviousValueSchema)` to create a new message.
|
|
5623
|
-
*/
|
|
5624
|
-
export const MonthlyMiscFeeImportPreviousValueSchema: GenMessage<MonthlyMiscFeeImportPreviousValue> = /*@__PURE__*/
|
|
5625
|
-
messageDesc(file_billing_v1_billing, 141);
|
|
5415
|
+
messageDesc(file_billing_v1_billing, 137);
|
|
5626
5416
|
|
|
5627
5417
|
/**
|
|
5628
5418
|
* @generated from message blueapi.billing.v1.MonthlyMiscFeeValidationError
|
|
@@ -5649,7 +5439,7 @@ export type MonthlyMiscFeeValidationError = Message<"blueapi.billing.v1.MonthlyM
|
|
|
5649
5439
|
* Use `create(MonthlyMiscFeeValidationErrorSchema)` to create a new message.
|
|
5650
5440
|
*/
|
|
5651
5441
|
export const MonthlyMiscFeeValidationErrorSchema: GenMessage<MonthlyMiscFeeValidationError> = /*@__PURE__*/
|
|
5652
|
-
messageDesc(file_billing_v1_billing,
|
|
5442
|
+
messageDesc(file_billing_v1_billing, 138);
|
|
5653
5443
|
|
|
5654
5444
|
/**
|
|
5655
5445
|
* BillingGroup tags adding setting
|
|
@@ -5678,7 +5468,7 @@ export type UpdateTagsAddingSettingRequest = Message<"blueapi.billing.v1.UpdateT
|
|
|
5678
5468
|
* Use `create(UpdateTagsAddingSettingRequestSchema)` to create a new message.
|
|
5679
5469
|
*/
|
|
5680
5470
|
export const UpdateTagsAddingSettingRequestSchema: GenMessage<UpdateTagsAddingSettingRequest> = /*@__PURE__*/
|
|
5681
|
-
messageDesc(file_billing_v1_billing,
|
|
5471
|
+
messageDesc(file_billing_v1_billing, 139);
|
|
5682
5472
|
|
|
5683
5473
|
/**
|
|
5684
5474
|
* @generated from message blueapi.billing.v1.GetTagsAddingSettingRequest
|
|
@@ -5700,7 +5490,7 @@ export type GetTagsAddingSettingRequest = Message<"blueapi.billing.v1.GetTagsAdd
|
|
|
5700
5490
|
* Use `create(GetTagsAddingSettingRequestSchema)` to create a new message.
|
|
5701
5491
|
*/
|
|
5702
5492
|
export const GetTagsAddingSettingRequestSchema: GenMessage<GetTagsAddingSettingRequest> = /*@__PURE__*/
|
|
5703
|
-
messageDesc(file_billing_v1_billing,
|
|
5493
|
+
messageDesc(file_billing_v1_billing, 140);
|
|
5704
5494
|
|
|
5705
5495
|
/**
|
|
5706
5496
|
* @generated from message blueapi.billing.v1.TagsAddingSetting
|
|
@@ -5727,7 +5517,7 @@ export type TagsAddingSetting = Message<"blueapi.billing.v1.TagsAddingSetting">
|
|
|
5727
5517
|
* Use `create(TagsAddingSettingSchema)` to create a new message.
|
|
5728
5518
|
*/
|
|
5729
5519
|
export const TagsAddingSettingSchema: GenMessage<TagsAddingSetting> = /*@__PURE__*/
|
|
5730
|
-
messageDesc(file_billing_v1_billing,
|
|
5520
|
+
messageDesc(file_billing_v1_billing, 141);
|
|
5731
5521
|
|
|
5732
5522
|
/**
|
|
5733
5523
|
* Request message for the ExportServiceDiscounts rpc.
|
|
@@ -5759,7 +5549,7 @@ export type ExportServiceDiscountsRequest = Message<"blueapi.billing.v1.ExportSe
|
|
|
5759
5549
|
* Use `create(ExportServiceDiscountsRequestSchema)` to create a new message.
|
|
5760
5550
|
*/
|
|
5761
5551
|
export const ExportServiceDiscountsRequestSchema: GenMessage<ExportServiceDiscountsRequest> = /*@__PURE__*/
|
|
5762
|
-
messageDesc(file_billing_v1_billing,
|
|
5552
|
+
messageDesc(file_billing_v1_billing, 142);
|
|
5763
5553
|
|
|
5764
5554
|
/**
|
|
5765
5555
|
* Request message for the ExportAccountInvoiceServiceDiscounts rpc.
|
|
@@ -5777,7 +5567,7 @@ export type ExportAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billi
|
|
|
5777
5567
|
/**
|
|
5778
5568
|
* Optional. At the moment, `ja`,`en` is supported.
|
|
5779
5569
|
*
|
|
5780
|
-
* Usually the language of the user information is used,
|
|
5570
|
+
* Usually the language of the user information is used,
|
|
5781
5571
|
* but it may be a different language due to cahce.
|
|
5782
5572
|
* In that case, you can use this option to change the language of CSV.
|
|
5783
5573
|
*
|
|
@@ -5791,6 +5581,16 @@ export type ExportAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billi
|
|
|
5791
5581
|
* @generated from field: bool directLink = 3;
|
|
5792
5582
|
*/
|
|
5793
5583
|
directLink: boolean;
|
|
5584
|
+
|
|
5585
|
+
/**
|
|
5586
|
+
* Optional. Restricts the export to these child billing group internal ids.
|
|
5587
|
+
* Every id must resolve to a child of the caller's authorized root billing
|
|
5588
|
+
* group. When empty, the export is unscoped (root-wide), matching prior
|
|
5589
|
+
* behavior.
|
|
5590
|
+
*
|
|
5591
|
+
* @generated from field: repeated string billingGroupIds = 4;
|
|
5592
|
+
*/
|
|
5593
|
+
billingGroupIds: string[];
|
|
5794
5594
|
};
|
|
5795
5595
|
|
|
5796
5596
|
/**
|
|
@@ -5798,7 +5598,7 @@ export type ExportAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billi
|
|
|
5798
5598
|
* Use `create(ExportAccountInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
5799
5599
|
*/
|
|
5800
5600
|
export const ExportAccountInvoiceServiceDiscountsRequestSchema: GenMessage<ExportAccountInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
5801
|
-
messageDesc(file_billing_v1_billing,
|
|
5601
|
+
messageDesc(file_billing_v1_billing, 143);
|
|
5802
5602
|
|
|
5803
5603
|
/**
|
|
5804
5604
|
* Request message for the ExportBillingGroupInvoiceServiceDiscounts rpc.
|
|
@@ -5816,7 +5616,7 @@ export type ExportBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.
|
|
|
5816
5616
|
/**
|
|
5817
5617
|
* Optional. At the moment, `ja`,`en` is supported.
|
|
5818
5618
|
*
|
|
5819
|
-
* Usually the language of the user information is used,
|
|
5619
|
+
* Usually the language of the user information is used,
|
|
5820
5620
|
* but it may be a different language due to cahce.
|
|
5821
5621
|
* In that case, you can use this option to change the language of CSV.
|
|
5822
5622
|
*
|
|
@@ -5830,6 +5630,16 @@ export type ExportBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.
|
|
|
5830
5630
|
* @generated from field: bool directLink = 3;
|
|
5831
5631
|
*/
|
|
5832
5632
|
directLink: boolean;
|
|
5633
|
+
|
|
5634
|
+
/**
|
|
5635
|
+
* Optional. Restricts the export to these child billing group internal ids.
|
|
5636
|
+
* Every id must resolve to a child of the caller's authorized root billing
|
|
5637
|
+
* group. When empty, the export is unscoped (root-wide), matching prior
|
|
5638
|
+
* behavior.
|
|
5639
|
+
*
|
|
5640
|
+
* @generated from field: repeated string billingGroupIds = 4;
|
|
5641
|
+
*/
|
|
5642
|
+
billingGroupIds: string[];
|
|
5833
5643
|
};
|
|
5834
5644
|
|
|
5835
5645
|
/**
|
|
@@ -5837,7 +5647,7 @@ export type ExportBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.
|
|
|
5837
5647
|
* Use `create(ExportBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
5838
5648
|
*/
|
|
5839
5649
|
export const ExportBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<ExportBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
5840
|
-
messageDesc(file_billing_v1_billing,
|
|
5650
|
+
messageDesc(file_billing_v1_billing, 144);
|
|
5841
5651
|
|
|
5842
5652
|
/**
|
|
5843
5653
|
* Request message for the ExportBillingGroupCsv rpc.
|
|
@@ -5847,13 +5657,23 @@ export const ExportBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<
|
|
|
5847
5657
|
*/
|
|
5848
5658
|
export type ExportBillingGroupCsvRequest = Message<"blueapi.billing.v1.ExportBillingGroupCsvRequest"> & {
|
|
5849
5659
|
/**
|
|
5850
|
-
* Usually the language of the user information is used,
|
|
5660
|
+
* Usually the language of the user information is used,
|
|
5851
5661
|
* but it may be a different language due to cahce.
|
|
5852
5662
|
* In that case, you can use this option to change the language of CSV.
|
|
5853
5663
|
*
|
|
5854
5664
|
* @generated from field: string language = 2;
|
|
5855
5665
|
*/
|
|
5856
5666
|
language: string;
|
|
5667
|
+
|
|
5668
|
+
/**
|
|
5669
|
+
* Optional. Restricts the export to these child billing group internal ids.
|
|
5670
|
+
* Every id must resolve to a child of the caller's authorized root billing
|
|
5671
|
+
* group. When empty, the export is unscoped (root-wide), matching prior
|
|
5672
|
+
* behavior.
|
|
5673
|
+
*
|
|
5674
|
+
* @generated from field: repeated string billingGroupIds = 3;
|
|
5675
|
+
*/
|
|
5676
|
+
billingGroupIds: string[];
|
|
5857
5677
|
};
|
|
5858
5678
|
|
|
5859
5679
|
/**
|
|
@@ -5861,7 +5681,7 @@ export type ExportBillingGroupCsvRequest = Message<"blueapi.billing.v1.ExportBil
|
|
|
5861
5681
|
* Use `create(ExportBillingGroupCsvRequestSchema)` to create a new message.
|
|
5862
5682
|
*/
|
|
5863
5683
|
export const ExportBillingGroupCsvRequestSchema: GenMessage<ExportBillingGroupCsvRequest> = /*@__PURE__*/
|
|
5864
|
-
messageDesc(file_billing_v1_billing,
|
|
5684
|
+
messageDesc(file_billing_v1_billing, 145);
|
|
5865
5685
|
|
|
5866
5686
|
/**
|
|
5867
5687
|
* Response message for the ExportBillingGroupCsv rpc.
|
|
@@ -5883,7 +5703,7 @@ export type ExportBillingGroupCsvResponse = Message<"blueapi.billing.v1.ExportBi
|
|
|
5883
5703
|
* Use `create(ExportBillingGroupCsvResponseSchema)` to create a new message.
|
|
5884
5704
|
*/
|
|
5885
5705
|
export const ExportBillingGroupCsvResponseSchema: GenMessage<ExportBillingGroupCsvResponse> = /*@__PURE__*/
|
|
5886
|
-
messageDesc(file_billing_v1_billing,
|
|
5706
|
+
messageDesc(file_billing_v1_billing, 146);
|
|
5887
5707
|
|
|
5888
5708
|
/**
|
|
5889
5709
|
* port from m/ripple/exportcsv/billing-group-setting
|
|
@@ -5892,7 +5712,7 @@ export const ExportBillingGroupCsvResponseSchema: GenMessage<ExportBillingGroupC
|
|
|
5892
5712
|
*/
|
|
5893
5713
|
export type ExportInvoiceSettingCsvRequest = Message<"blueapi.billing.v1.ExportInvoiceSettingCsvRequest"> & {
|
|
5894
5714
|
/**
|
|
5895
|
-
* Usually the language of the user information is used,
|
|
5715
|
+
* Usually the language of the user information is used,
|
|
5896
5716
|
* but it may be a different language due to cahce.
|
|
5897
5717
|
* In that case, you can use this option to change the language of CSV.
|
|
5898
5718
|
*
|
|
@@ -5906,6 +5726,16 @@ export type ExportInvoiceSettingCsvRequest = Message<"blueapi.billing.v1.ExportI
|
|
|
5906
5726
|
* @generated from field: bool includeMiscellaneous = 3;
|
|
5907
5727
|
*/
|
|
5908
5728
|
includeMiscellaneous: boolean;
|
|
5729
|
+
|
|
5730
|
+
/**
|
|
5731
|
+
* Optional. Restricts the export to these child billing group internal ids.
|
|
5732
|
+
* Every id must resolve to a child of the caller's authorized root billing
|
|
5733
|
+
* group. When empty, the export is unscoped (root-wide), matching prior
|
|
5734
|
+
* behavior.
|
|
5735
|
+
*
|
|
5736
|
+
* @generated from field: repeated string billingGroupIds = 4;
|
|
5737
|
+
*/
|
|
5738
|
+
billingGroupIds: string[];
|
|
5909
5739
|
};
|
|
5910
5740
|
|
|
5911
5741
|
/**
|
|
@@ -5913,7 +5743,7 @@ export type ExportInvoiceSettingCsvRequest = Message<"blueapi.billing.v1.ExportI
|
|
|
5913
5743
|
* Use `create(ExportInvoiceSettingCsvRequestSchema)` to create a new message.
|
|
5914
5744
|
*/
|
|
5915
5745
|
export const ExportInvoiceSettingCsvRequestSchema: GenMessage<ExportInvoiceSettingCsvRequest> = /*@__PURE__*/
|
|
5916
|
-
messageDesc(file_billing_v1_billing,
|
|
5746
|
+
messageDesc(file_billing_v1_billing, 147);
|
|
5917
5747
|
|
|
5918
5748
|
/**
|
|
5919
5749
|
* Response message for the ExportBillingGroupCsv rpc.
|
|
@@ -5935,7 +5765,7 @@ export type ExportInvoiceSettingCsvResponse = Message<"blueapi.billing.v1.Export
|
|
|
5935
5765
|
* Use `create(ExportInvoiceSettingCsvResponseSchema)` to create a new message.
|
|
5936
5766
|
*/
|
|
5937
5767
|
export const ExportInvoiceSettingCsvResponseSchema: GenMessage<ExportInvoiceSettingCsvResponse> = /*@__PURE__*/
|
|
5938
|
-
messageDesc(file_billing_v1_billing,
|
|
5768
|
+
messageDesc(file_billing_v1_billing, 148);
|
|
5939
5769
|
|
|
5940
5770
|
/**
|
|
5941
5771
|
* @generated from message blueapi.billing.v1.GetBillingGroupInvoiceServiceDiscountsRequest
|
|
@@ -5952,7 +5782,7 @@ export type GetBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.bil
|
|
|
5952
5782
|
* Use `create(GetBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
5953
5783
|
*/
|
|
5954
5784
|
export const GetBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<GetBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
5955
|
-
messageDesc(file_billing_v1_billing,
|
|
5785
|
+
messageDesc(file_billing_v1_billing, 149);
|
|
5956
5786
|
|
|
5957
5787
|
/**
|
|
5958
5788
|
* @generated from message blueapi.billing.v1.GetBillingGroupInvoiceServiceDiscountsResponse
|
|
@@ -5971,7 +5801,7 @@ export type GetBillingGroupInvoiceServiceDiscountsResponse = Message<"blueapi.bi
|
|
|
5971
5801
|
* Use `create(GetBillingGroupInvoiceServiceDiscountsResponseSchema)` to create a new message.
|
|
5972
5802
|
*/
|
|
5973
5803
|
export const GetBillingGroupInvoiceServiceDiscountsResponseSchema: GenMessage<GetBillingGroupInvoiceServiceDiscountsResponse> = /*@__PURE__*/
|
|
5974
|
-
messageDesc(file_billing_v1_billing,
|
|
5804
|
+
messageDesc(file_billing_v1_billing, 150);
|
|
5975
5805
|
|
|
5976
5806
|
/**
|
|
5977
5807
|
* @generated from message blueapi.billing.v1.AddBillingGroupCustomFieldRequest
|
|
@@ -5997,7 +5827,7 @@ export type AddBillingGroupCustomFieldRequest = Message<"blueapi.billing.v1.AddB
|
|
|
5997
5827
|
* Use `create(AddBillingGroupCustomFieldRequestSchema)` to create a new message.
|
|
5998
5828
|
*/
|
|
5999
5829
|
export const AddBillingGroupCustomFieldRequestSchema: GenMessage<AddBillingGroupCustomFieldRequest> = /*@__PURE__*/
|
|
6000
|
-
messageDesc(file_billing_v1_billing,
|
|
5830
|
+
messageDesc(file_billing_v1_billing, 151);
|
|
6001
5831
|
|
|
6002
5832
|
/**
|
|
6003
5833
|
* @generated from message blueapi.billing.v1.DeleteBillingGroupCustomFieldRequest
|
|
@@ -6023,7 +5853,7 @@ export type DeleteBillingGroupCustomFieldRequest = Message<"blueapi.billing.v1.D
|
|
|
6023
5853
|
* Use `create(DeleteBillingGroupCustomFieldRequestSchema)` to create a new message.
|
|
6024
5854
|
*/
|
|
6025
5855
|
export const DeleteBillingGroupCustomFieldRequestSchema: GenMessage<DeleteBillingGroupCustomFieldRequest> = /*@__PURE__*/
|
|
6026
|
-
messageDesc(file_billing_v1_billing,
|
|
5856
|
+
messageDesc(file_billing_v1_billing, 152);
|
|
6027
5857
|
|
|
6028
5858
|
/**
|
|
6029
5859
|
* @generated from message blueapi.billing.v1.AddAccountToBillingGroupRequest
|
|
@@ -6056,7 +5886,7 @@ export type AddAccountToBillingGroupRequest = Message<"blueapi.billing.v1.AddAcc
|
|
|
6056
5886
|
* Use `create(AddAccountToBillingGroupRequestSchema)` to create a new message.
|
|
6057
5887
|
*/
|
|
6058
5888
|
export const AddAccountToBillingGroupRequestSchema: GenMessage<AddAccountToBillingGroupRequest> = /*@__PURE__*/
|
|
6059
|
-
messageDesc(file_billing_v1_billing,
|
|
5889
|
+
messageDesc(file_billing_v1_billing, 153);
|
|
6060
5890
|
|
|
6061
5891
|
/**
|
|
6062
5892
|
* New message for account details
|
|
@@ -6098,7 +5928,7 @@ export type AccountToAdd = Message<"blueapi.billing.v1.AccountToAdd"> & {
|
|
|
6098
5928
|
* Use `create(AccountToAddSchema)` to create a new message.
|
|
6099
5929
|
*/
|
|
6100
5930
|
export const AccountToAddSchema: GenMessage<AccountToAdd> = /*@__PURE__*/
|
|
6101
|
-
messageDesc(file_billing_v1_billing,
|
|
5931
|
+
messageDesc(file_billing_v1_billing, 154);
|
|
6102
5932
|
|
|
6103
5933
|
/**
|
|
6104
5934
|
* @generated from message blueapi.billing.v1.AddTagsToBillingGroupRequest
|
|
@@ -6138,7 +5968,7 @@ export type AddTagsToBillingGroupRequest = Message<"blueapi.billing.v1.AddTagsTo
|
|
|
6138
5968
|
* Use `create(AddTagsToBillingGroupRequestSchema)` to create a new message.
|
|
6139
5969
|
*/
|
|
6140
5970
|
export const AddTagsToBillingGroupRequestSchema: GenMessage<AddTagsToBillingGroupRequest> = /*@__PURE__*/
|
|
6141
|
-
messageDesc(file_billing_v1_billing,
|
|
5971
|
+
messageDesc(file_billing_v1_billing, 155);
|
|
6142
5972
|
|
|
6143
5973
|
/**
|
|
6144
5974
|
* Settings for a specific customer account for AddTagsToBillingGroup
|
|
@@ -6166,7 +5996,7 @@ export type TagSetting = Message<"blueapi.billing.v1.TagSetting"> & {
|
|
|
6166
5996
|
* Use `create(TagSettingSchema)` to create a new message.
|
|
6167
5997
|
*/
|
|
6168
5998
|
export const TagSettingSchema: GenMessage<TagSetting> = /*@__PURE__*/
|
|
6169
|
-
messageDesc(file_billing_v1_billing,
|
|
5999
|
+
messageDesc(file_billing_v1_billing, 156);
|
|
6170
6000
|
|
|
6171
6001
|
/**
|
|
6172
6002
|
* Individual tag definition for AddTagsToBillingGroup
|
|
@@ -6201,7 +6031,7 @@ export type Tag = Message<"blueapi.billing.v1.Tag"> & {
|
|
|
6201
6031
|
* Use `create(TagSchema)` to create a new message.
|
|
6202
6032
|
*/
|
|
6203
6033
|
export const TagSchema: GenMessage<Tag> = /*@__PURE__*/
|
|
6204
|
-
messageDesc(file_billing_v1_billing,
|
|
6034
|
+
messageDesc(file_billing_v1_billing, 157);
|
|
6205
6035
|
|
|
6206
6036
|
/**
|
|
6207
6037
|
* Non-tag settings for a billing group for AddTagsToBillingGroup
|
|
@@ -6236,7 +6066,7 @@ export type NonTagSetting = Message<"blueapi.billing.v1.NonTagSetting"> & {
|
|
|
6236
6066
|
* Use `create(NonTagSettingSchema)` to create a new message.
|
|
6237
6067
|
*/
|
|
6238
6068
|
export const NonTagSettingSchema: GenMessage<NonTagSetting> = /*@__PURE__*/
|
|
6239
|
-
messageDesc(file_billing_v1_billing,
|
|
6069
|
+
messageDesc(file_billing_v1_billing, 158);
|
|
6240
6070
|
|
|
6241
6071
|
/**
|
|
6242
6072
|
* Response message for tag invoice setting operation for AddTagsToBillingGroup
|
|
@@ -6264,7 +6094,7 @@ export type SaveTagInvoiceSettingResponse = Message<"blueapi.billing.v1.SaveTagI
|
|
|
6264
6094
|
* Use `create(SaveTagInvoiceSettingResponseSchema)` to create a new message.
|
|
6265
6095
|
*/
|
|
6266
6096
|
export const SaveTagInvoiceSettingResponseSchema: GenMessage<SaveTagInvoiceSettingResponse> = /*@__PURE__*/
|
|
6267
|
-
messageDesc(file_billing_v1_billing,
|
|
6097
|
+
messageDesc(file_billing_v1_billing, 159);
|
|
6268
6098
|
|
|
6269
6099
|
/**
|
|
6270
6100
|
* Request message for updating non-tag group settings for a billing group for UpdateNonTagGroupToBillingGroup
|
|
@@ -6299,7 +6129,7 @@ export type UpdateNonTagGroupToBillingGroupRequest = Message<"blueapi.billing.v1
|
|
|
6299
6129
|
* Use `create(UpdateNonTagGroupToBillingGroupRequestSchema)` to create a new message.
|
|
6300
6130
|
*/
|
|
6301
6131
|
export const UpdateNonTagGroupToBillingGroupRequestSchema: GenMessage<UpdateNonTagGroupToBillingGroupRequest> = /*@__PURE__*/
|
|
6302
|
-
messageDesc(file_billing_v1_billing,
|
|
6132
|
+
messageDesc(file_billing_v1_billing, 160);
|
|
6303
6133
|
|
|
6304
6134
|
/**
|
|
6305
6135
|
* Individual non-tag group setting for UpdateNonTagGroupToBillingGroup
|
|
@@ -6334,7 +6164,7 @@ export type NonTagGroupSetting = Message<"blueapi.billing.v1.NonTagGroupSetting"
|
|
|
6334
6164
|
* Use `create(NonTagGroupSettingSchema)` to create a new message.
|
|
6335
6165
|
*/
|
|
6336
6166
|
export const NonTagGroupSettingSchema: GenMessage<NonTagGroupSetting> = /*@__PURE__*/
|
|
6337
|
-
messageDesc(file_billing_v1_billing,
|
|
6167
|
+
messageDesc(file_billing_v1_billing, 161);
|
|
6338
6168
|
|
|
6339
6169
|
/**
|
|
6340
6170
|
* @generated from message blueapi.billing.v1.SaveInvoiceSettingsRequest
|
|
@@ -6384,7 +6214,7 @@ export type SaveInvoiceSettingsRequest = Message<"blueapi.billing.v1.SaveInvoice
|
|
|
6384
6214
|
* Use `create(SaveInvoiceSettingsRequestSchema)` to create a new message.
|
|
6385
6215
|
*/
|
|
6386
6216
|
export const SaveInvoiceSettingsRequestSchema: GenMessage<SaveInvoiceSettingsRequest> = /*@__PURE__*/
|
|
6387
|
-
messageDesc(file_billing_v1_billing,
|
|
6217
|
+
messageDesc(file_billing_v1_billing, 162);
|
|
6388
6218
|
|
|
6389
6219
|
/**
|
|
6390
6220
|
* @generated from message blueapi.billing.v1.InvoiceSettings
|
|
@@ -6524,7 +6354,7 @@ export type InvoiceSettings = Message<"blueapi.billing.v1.InvoiceSettings"> & {
|
|
|
6524
6354
|
* Use `create(InvoiceSettingsSchema)` to create a new message.
|
|
6525
6355
|
*/
|
|
6526
6356
|
export const InvoiceSettingsSchema: GenMessage<InvoiceSettings> = /*@__PURE__*/
|
|
6527
|
-
messageDesc(file_billing_v1_billing,
|
|
6357
|
+
messageDesc(file_billing_v1_billing, 163);
|
|
6528
6358
|
|
|
6529
6359
|
/**
|
|
6530
6360
|
* @generated from message blueapi.billing.v1.BasicInformation
|
|
@@ -6596,7 +6426,7 @@ export type BasicInformation = Message<"blueapi.billing.v1.BasicInformation"> &
|
|
|
6596
6426
|
* Use `create(BasicInformationSchema)` to create a new message.
|
|
6597
6427
|
*/
|
|
6598
6428
|
export const BasicInformationSchema: GenMessage<BasicInformation> = /*@__PURE__*/
|
|
6599
|
-
messageDesc(file_billing_v1_billing,
|
|
6429
|
+
messageDesc(file_billing_v1_billing, 164);
|
|
6600
6430
|
|
|
6601
6431
|
/**
|
|
6602
6432
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupBasicInformationRequest
|
|
@@ -6618,7 +6448,7 @@ export type UpdateBillingGroupBasicInformationRequest = Message<"blueapi.billing
|
|
|
6618
6448
|
* Use `create(UpdateBillingGroupBasicInformationRequestSchema)` to create a new message.
|
|
6619
6449
|
*/
|
|
6620
6450
|
export const UpdateBillingGroupBasicInformationRequestSchema: GenMessage<UpdateBillingGroupBasicInformationRequest> = /*@__PURE__*/
|
|
6621
|
-
messageDesc(file_billing_v1_billing,
|
|
6451
|
+
messageDesc(file_billing_v1_billing, 165);
|
|
6622
6452
|
|
|
6623
6453
|
/**
|
|
6624
6454
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupCustomFieldsRequest
|
|
@@ -6640,7 +6470,7 @@ export type UpdateBillingGroupCustomFieldsRequest = Message<"blueapi.billing.v1.
|
|
|
6640
6470
|
* Use `create(UpdateBillingGroupCustomFieldsRequestSchema)` to create a new message.
|
|
6641
6471
|
*/
|
|
6642
6472
|
export const UpdateBillingGroupCustomFieldsRequestSchema: GenMessage<UpdateBillingGroupCustomFieldsRequest> = /*@__PURE__*/
|
|
6643
|
-
messageDesc(file_billing_v1_billing,
|
|
6473
|
+
messageDesc(file_billing_v1_billing, 166);
|
|
6644
6474
|
|
|
6645
6475
|
/**
|
|
6646
6476
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupFreeFormatRequest
|
|
@@ -6667,7 +6497,7 @@ export type UpdateBillingGroupFreeFormatRequest = Message<"blueapi.billing.v1.Up
|
|
|
6667
6497
|
* Use `create(UpdateBillingGroupFreeFormatRequestSchema)` to create a new message.
|
|
6668
6498
|
*/
|
|
6669
6499
|
export const UpdateBillingGroupFreeFormatRequestSchema: GenMessage<UpdateBillingGroupFreeFormatRequest> = /*@__PURE__*/
|
|
6670
|
-
messageDesc(file_billing_v1_billing,
|
|
6500
|
+
messageDesc(file_billing_v1_billing, 167);
|
|
6671
6501
|
|
|
6672
6502
|
/**
|
|
6673
6503
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupLinkedResourcesRequest
|
|
@@ -6720,7 +6550,7 @@ export type UpdateBillingGroupLinkedResourcesRequest = Message<"blueapi.billing.
|
|
|
6720
6550
|
* Use `create(UpdateBillingGroupLinkedResourcesRequestSchema)` to create a new message.
|
|
6721
6551
|
*/
|
|
6722
6552
|
export const UpdateBillingGroupLinkedResourcesRequestSchema: GenMessage<UpdateBillingGroupLinkedResourcesRequest> = /*@__PURE__*/
|
|
6723
|
-
messageDesc(file_billing_v1_billing,
|
|
6553
|
+
messageDesc(file_billing_v1_billing, 168);
|
|
6724
6554
|
|
|
6725
6555
|
/**
|
|
6726
6556
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupInvoiceSettingsRequest
|
|
@@ -6759,7 +6589,7 @@ export type UpdateBillingGroupInvoiceSettingsRequest = Message<"blueapi.billing.
|
|
|
6759
6589
|
* Use `create(UpdateBillingGroupInvoiceSettingsRequestSchema)` to create a new message.
|
|
6760
6590
|
*/
|
|
6761
6591
|
export const UpdateBillingGroupInvoiceSettingsRequestSchema: GenMessage<UpdateBillingGroupInvoiceSettingsRequest> = /*@__PURE__*/
|
|
6762
|
-
messageDesc(file_billing_v1_billing,
|
|
6592
|
+
messageDesc(file_billing_v1_billing, 169);
|
|
6763
6593
|
|
|
6764
6594
|
/**
|
|
6765
6595
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupResellerChargesRequest
|
|
@@ -6786,7 +6616,7 @@ export type UpdateBillingGroupResellerChargesRequest = Message<"blueapi.billing.
|
|
|
6786
6616
|
* Use `create(UpdateBillingGroupResellerChargesRequestSchema)` to create a new message.
|
|
6787
6617
|
*/
|
|
6788
6618
|
export const UpdateBillingGroupResellerChargesRequestSchema: GenMessage<UpdateBillingGroupResellerChargesRequest> = /*@__PURE__*/
|
|
6789
|
-
messageDesc(file_billing_v1_billing,
|
|
6619
|
+
messageDesc(file_billing_v1_billing, 170);
|
|
6790
6620
|
|
|
6791
6621
|
/**
|
|
6792
6622
|
* @generated from message blueapi.billing.v1.UpdateBillingGroupAdditionalChargesRequest
|
|
@@ -6820,7 +6650,7 @@ export type UpdateBillingGroupAdditionalChargesRequest = Message<"blueapi.billin
|
|
|
6820
6650
|
* Use `create(UpdateBillingGroupAdditionalChargesRequestSchema)` to create a new message.
|
|
6821
6651
|
*/
|
|
6822
6652
|
export const UpdateBillingGroupAdditionalChargesRequestSchema: GenMessage<UpdateBillingGroupAdditionalChargesRequest> = /*@__PURE__*/
|
|
6823
|
-
messageDesc(file_billing_v1_billing,
|
|
6653
|
+
messageDesc(file_billing_v1_billing, 171);
|
|
6824
6654
|
|
|
6825
6655
|
/**
|
|
6826
6656
|
* CustomizedBillingServiceBillingSetting
|
|
@@ -6857,7 +6687,7 @@ export type UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceB
|
|
|
6857
6687
|
* Use `create(UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceBillingSettingSchema)` to create a new message.
|
|
6858
6688
|
*/
|
|
6859
6689
|
export const UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceBillingSettingSchema: GenMessage<UpdateBillingGroupAdditionalChargesRequest_CustomizedBillingServiceBillingSetting> = /*@__PURE__*/
|
|
6860
|
-
messageDesc(file_billing_v1_billing,
|
|
6690
|
+
messageDesc(file_billing_v1_billing, 171, 0);
|
|
6861
6691
|
|
|
6862
6692
|
/**
|
|
6863
6693
|
* @generated from message blueapi.billing.v1.DeleteBillingGroupRequest
|
|
@@ -6874,7 +6704,7 @@ export type DeleteBillingGroupRequest = Message<"blueapi.billing.v1.DeleteBillin
|
|
|
6874
6704
|
* Use `create(DeleteBillingGroupRequestSchema)` to create a new message.
|
|
6875
6705
|
*/
|
|
6876
6706
|
export const DeleteBillingGroupRequestSchema: GenMessage<DeleteBillingGroupRequest> = /*@__PURE__*/
|
|
6877
|
-
messageDesc(file_billing_v1_billing,
|
|
6707
|
+
messageDesc(file_billing_v1_billing, 172);
|
|
6878
6708
|
|
|
6879
6709
|
/**
|
|
6880
6710
|
* Request message for the GetBillingGroupAccountSupportPlan rpc.
|
|
@@ -6902,7 +6732,7 @@ export type GetBillingGroupAccountSupportPlanRequest = Message<"blueapi.billing.
|
|
|
6902
6732
|
* Use `create(GetBillingGroupAccountSupportPlanRequestSchema)` to create a new message.
|
|
6903
6733
|
*/
|
|
6904
6734
|
export const GetBillingGroupAccountSupportPlanRequestSchema: GenMessage<GetBillingGroupAccountSupportPlanRequest> = /*@__PURE__*/
|
|
6905
|
-
messageDesc(file_billing_v1_billing,
|
|
6735
|
+
messageDesc(file_billing_v1_billing, 173);
|
|
6906
6736
|
|
|
6907
6737
|
/**
|
|
6908
6738
|
* Response message for the GetBillingGroupAccountSupportPlan rpc.
|
|
@@ -6944,7 +6774,7 @@ export type GetBillingGroupAccountSupportPlanResponse = Message<"blueapi.billing
|
|
|
6944
6774
|
* Use `create(GetBillingGroupAccountSupportPlanResponseSchema)` to create a new message.
|
|
6945
6775
|
*/
|
|
6946
6776
|
export const GetBillingGroupAccountSupportPlanResponseSchema: GenMessage<GetBillingGroupAccountSupportPlanResponse> = /*@__PURE__*/
|
|
6947
|
-
messageDesc(file_billing_v1_billing,
|
|
6777
|
+
messageDesc(file_billing_v1_billing, 174);
|
|
6948
6778
|
|
|
6949
6779
|
/**
|
|
6950
6780
|
* Request message for the UpdateBillingGroupAccountSupportPlan rpc.
|
|
@@ -6994,7 +6824,7 @@ export type UpdateBillingGroupAccountSupportPlanRequest = Message<"blueapi.billi
|
|
|
6994
6824
|
* Use `create(UpdateBillingGroupAccountSupportPlanRequestSchema)` to create a new message.
|
|
6995
6825
|
*/
|
|
6996
6826
|
export const UpdateBillingGroupAccountSupportPlanRequestSchema: GenMessage<UpdateBillingGroupAccountSupportPlanRequest> = /*@__PURE__*/
|
|
6997
|
-
messageDesc(file_billing_v1_billing,
|
|
6827
|
+
messageDesc(file_billing_v1_billing, 175);
|
|
6998
6828
|
|
|
6999
6829
|
/**
|
|
7000
6830
|
* @generated from message blueapi.billing.v1.GetAnnouncementsRequest
|
|
@@ -7013,7 +6843,7 @@ export type GetAnnouncementsRequest = Message<"blueapi.billing.v1.GetAnnouncemen
|
|
|
7013
6843
|
* Use `create(GetAnnouncementsRequestSchema)` to create a new message.
|
|
7014
6844
|
*/
|
|
7015
6845
|
export const GetAnnouncementsRequestSchema: GenMessage<GetAnnouncementsRequest> = /*@__PURE__*/
|
|
7016
|
-
messageDesc(file_billing_v1_billing,
|
|
6846
|
+
messageDesc(file_billing_v1_billing, 176);
|
|
7017
6847
|
|
|
7018
6848
|
/**
|
|
7019
6849
|
* @generated from message blueapi.billing.v1.CreateAnnouncementRequest
|
|
@@ -7081,7 +6911,7 @@ export type CreateAnnouncementRequest = Message<"blueapi.billing.v1.CreateAnnoun
|
|
|
7081
6911
|
* Use `create(CreateAnnouncementRequestSchema)` to create a new message.
|
|
7082
6912
|
*/
|
|
7083
6913
|
export const CreateAnnouncementRequestSchema: GenMessage<CreateAnnouncementRequest> = /*@__PURE__*/
|
|
7084
|
-
messageDesc(file_billing_v1_billing,
|
|
6914
|
+
messageDesc(file_billing_v1_billing, 177);
|
|
7085
6915
|
|
|
7086
6916
|
/**
|
|
7087
6917
|
* @generated from message blueapi.billing.v1.UpdateAnnouncementRequest
|
|
@@ -7105,7 +6935,7 @@ export type UpdateAnnouncementRequest = Message<"blueapi.billing.v1.UpdateAnnoun
|
|
|
7105
6935
|
* Use `create(UpdateAnnouncementRequestSchema)` to create a new message.
|
|
7106
6936
|
*/
|
|
7107
6937
|
export const UpdateAnnouncementRequestSchema: GenMessage<UpdateAnnouncementRequest> = /*@__PURE__*/
|
|
7108
|
-
messageDesc(file_billing_v1_billing,
|
|
6938
|
+
messageDesc(file_billing_v1_billing, 178);
|
|
7109
6939
|
|
|
7110
6940
|
/**
|
|
7111
6941
|
* @generated from message blueapi.billing.v1.UpdateAnnouncementsStatusRequest
|
|
@@ -7127,7 +6957,7 @@ export type UpdateAnnouncementsStatusRequest = Message<"blueapi.billing.v1.Updat
|
|
|
7127
6957
|
* Use `create(UpdateAnnouncementsStatusRequestSchema)` to create a new message.
|
|
7128
6958
|
*/
|
|
7129
6959
|
export const UpdateAnnouncementsStatusRequestSchema: GenMessage<UpdateAnnouncementsStatusRequest> = /*@__PURE__*/
|
|
7130
|
-
messageDesc(file_billing_v1_billing,
|
|
6960
|
+
messageDesc(file_billing_v1_billing, 179);
|
|
7131
6961
|
|
|
7132
6962
|
/**
|
|
7133
6963
|
* @generated from message blueapi.billing.v1.UpdateAnnouncementDateRequest
|
|
@@ -7151,7 +6981,7 @@ export type UpdateAnnouncementDateRequest = Message<"blueapi.billing.v1.UpdateAn
|
|
|
7151
6981
|
* Use `create(UpdateAnnouncementDateRequestSchema)` to create a new message.
|
|
7152
6982
|
*/
|
|
7153
6983
|
export const UpdateAnnouncementDateRequestSchema: GenMessage<UpdateAnnouncementDateRequest> = /*@__PURE__*/
|
|
7154
|
-
messageDesc(file_billing_v1_billing,
|
|
6984
|
+
messageDesc(file_billing_v1_billing, 180);
|
|
7155
6985
|
|
|
7156
6986
|
/**
|
|
7157
6987
|
* @generated from message blueapi.billing.v1.DeleteAnnouncementRequest
|
|
@@ -7170,7 +7000,7 @@ export type DeleteAnnouncementRequest = Message<"blueapi.billing.v1.DeleteAnnoun
|
|
|
7170
7000
|
* Use `create(DeleteAnnouncementRequestSchema)` to create a new message.
|
|
7171
7001
|
*/
|
|
7172
7002
|
export const DeleteAnnouncementRequestSchema: GenMessage<DeleteAnnouncementRequest> = /*@__PURE__*/
|
|
7173
|
-
messageDesc(file_billing_v1_billing,
|
|
7003
|
+
messageDesc(file_billing_v1_billing, 181);
|
|
7174
7004
|
|
|
7175
7005
|
/**
|
|
7176
7006
|
* @generated from message blueapi.billing.v1.Announcement
|
|
@@ -7247,7 +7077,7 @@ export type Announcement = Message<"blueapi.billing.v1.Announcement"> & {
|
|
|
7247
7077
|
* Use `create(AnnouncementSchema)` to create a new message.
|
|
7248
7078
|
*/
|
|
7249
7079
|
export const AnnouncementSchema: GenMessage<Announcement> = /*@__PURE__*/
|
|
7250
|
-
messageDesc(file_billing_v1_billing,
|
|
7080
|
+
messageDesc(file_billing_v1_billing, 182);
|
|
7251
7081
|
|
|
7252
7082
|
/**
|
|
7253
7083
|
* @generated from message blueapi.billing.v1.GetBillingGroupAnnouncementsRequest
|
|
@@ -7266,7 +7096,7 @@ export type GetBillingGroupAnnouncementsRequest = Message<"blueapi.billing.v1.Ge
|
|
|
7266
7096
|
* Use `create(GetBillingGroupAnnouncementsRequestSchema)` to create a new message.
|
|
7267
7097
|
*/
|
|
7268
7098
|
export const GetBillingGroupAnnouncementsRequestSchema: GenMessage<GetBillingGroupAnnouncementsRequest> = /*@__PURE__*/
|
|
7269
|
-
messageDesc(file_billing_v1_billing,
|
|
7099
|
+
messageDesc(file_billing_v1_billing, 183);
|
|
7270
7100
|
|
|
7271
7101
|
/**
|
|
7272
7102
|
* @generated from message blueapi.billing.v1.GetBillingGroupAnnouncementsResponse
|
|
@@ -7298,7 +7128,7 @@ export type GetBillingGroupAnnouncementsResponse = Message<"blueapi.billing.v1.G
|
|
|
7298
7128
|
* Use `create(GetBillingGroupAnnouncementsResponseSchema)` to create a new message.
|
|
7299
7129
|
*/
|
|
7300
7130
|
export const GetBillingGroupAnnouncementsResponseSchema: GenMessage<GetBillingGroupAnnouncementsResponse> = /*@__PURE__*/
|
|
7301
|
-
messageDesc(file_billing_v1_billing,
|
|
7131
|
+
messageDesc(file_billing_v1_billing, 184);
|
|
7302
7132
|
|
|
7303
7133
|
/**
|
|
7304
7134
|
* @generated from message blueapi.billing.v1.GetCreditsRequest
|
|
@@ -7311,7 +7141,7 @@ export type GetCreditsRequest = Message<"blueapi.billing.v1.GetCreditsRequest">
|
|
|
7311
7141
|
* Use `create(GetCreditsRequestSchema)` to create a new message.
|
|
7312
7142
|
*/
|
|
7313
7143
|
export const GetCreditsRequestSchema: GenMessage<GetCreditsRequest> = /*@__PURE__*/
|
|
7314
|
-
messageDesc(file_billing_v1_billing,
|
|
7144
|
+
messageDesc(file_billing_v1_billing, 185);
|
|
7315
7145
|
|
|
7316
7146
|
/**
|
|
7317
7147
|
* @generated from message blueapi.billing.v1.Credit
|
|
@@ -7373,7 +7203,7 @@ export type Credit = Message<"blueapi.billing.v1.Credit"> & {
|
|
|
7373
7203
|
* Use `create(CreditSchema)` to create a new message.
|
|
7374
7204
|
*/
|
|
7375
7205
|
export const CreditSchema: GenMessage<Credit> = /*@__PURE__*/
|
|
7376
|
-
messageDesc(file_billing_v1_billing,
|
|
7206
|
+
messageDesc(file_billing_v1_billing, 186);
|
|
7377
7207
|
|
|
7378
7208
|
/**
|
|
7379
7209
|
* @generated from message blueapi.billing.v1.GetCsvSettingsRequest
|
|
@@ -7386,7 +7216,7 @@ export type GetCsvSettingsRequest = Message<"blueapi.billing.v1.GetCsvSettingsRe
|
|
|
7386
7216
|
* Use `create(GetCsvSettingsRequestSchema)` to create a new message.
|
|
7387
7217
|
*/
|
|
7388
7218
|
export const GetCsvSettingsRequestSchema: GenMessage<GetCsvSettingsRequest> = /*@__PURE__*/
|
|
7389
|
-
messageDesc(file_billing_v1_billing,
|
|
7219
|
+
messageDesc(file_billing_v1_billing, 187);
|
|
7390
7220
|
|
|
7391
7221
|
/**
|
|
7392
7222
|
* @generated from message blueapi.billing.v1.CsvSetting
|
|
@@ -7413,7 +7243,7 @@ export type CsvSetting = Message<"blueapi.billing.v1.CsvSetting"> & {
|
|
|
7413
7243
|
* Use `create(CsvSettingSchema)` to create a new message.
|
|
7414
7244
|
*/
|
|
7415
7245
|
export const CsvSettingSchema: GenMessage<CsvSetting> = /*@__PURE__*/
|
|
7416
|
-
messageDesc(file_billing_v1_billing,
|
|
7246
|
+
messageDesc(file_billing_v1_billing, 188);
|
|
7417
7247
|
|
|
7418
7248
|
/**
|
|
7419
7249
|
* @generated from message blueapi.billing.v1.CsvSetting.Column
|
|
@@ -7445,7 +7275,7 @@ export type CsvSetting_Column = Message<"blueapi.billing.v1.CsvSetting.Column">
|
|
|
7445
7275
|
* Use `create(CsvSetting_ColumnSchema)` to create a new message.
|
|
7446
7276
|
*/
|
|
7447
7277
|
export const CsvSetting_ColumnSchema: GenMessage<CsvSetting_Column> = /*@__PURE__*/
|
|
7448
|
-
messageDesc(file_billing_v1_billing,
|
|
7278
|
+
messageDesc(file_billing_v1_billing, 188, 0);
|
|
7449
7279
|
|
|
7450
7280
|
/**
|
|
7451
7281
|
* @generated from message blueapi.billing.v1.UpdateInvoiceExchangeRateRequest
|
|
@@ -7486,7 +7316,7 @@ export type UpdateInvoiceExchangeRateRequest = Message<"blueapi.billing.v1.Updat
|
|
|
7486
7316
|
* Use `create(UpdateInvoiceExchangeRateRequestSchema)` to create a new message.
|
|
7487
7317
|
*/
|
|
7488
7318
|
export const UpdateInvoiceExchangeRateRequestSchema: GenMessage<UpdateInvoiceExchangeRateRequest> = /*@__PURE__*/
|
|
7489
|
-
messageDesc(file_billing_v1_billing,
|
|
7319
|
+
messageDesc(file_billing_v1_billing, 189);
|
|
7490
7320
|
|
|
7491
7321
|
/**
|
|
7492
7322
|
* @generated from message blueapi.billing.v1.ConvertInvoiceToPdfRequest
|
|
@@ -7520,7 +7350,7 @@ export type ConvertInvoiceToPdfRequest = Message<"blueapi.billing.v1.ConvertInvo
|
|
|
7520
7350
|
* Use `create(ConvertInvoiceToPdfRequestSchema)` to create a new message.
|
|
7521
7351
|
*/
|
|
7522
7352
|
export const ConvertInvoiceToPdfRequestSchema: GenMessage<ConvertInvoiceToPdfRequest> = /*@__PURE__*/
|
|
7523
|
-
messageDesc(file_billing_v1_billing,
|
|
7353
|
+
messageDesc(file_billing_v1_billing, 190);
|
|
7524
7354
|
|
|
7525
7355
|
/**
|
|
7526
7356
|
* @generated from message blueapi.billing.v1.ConvertInvoiceToPdfResponse
|
|
@@ -7545,7 +7375,7 @@ export type ConvertInvoiceToPdfResponse = Message<"blueapi.billing.v1.ConvertInv
|
|
|
7545
7375
|
* Use `create(ConvertInvoiceToPdfResponseSchema)` to create a new message.
|
|
7546
7376
|
*/
|
|
7547
7377
|
export const ConvertInvoiceToPdfResponseSchema: GenMessage<ConvertInvoiceToPdfResponse> = /*@__PURE__*/
|
|
7548
|
-
messageDesc(file_billing_v1_billing,
|
|
7378
|
+
messageDesc(file_billing_v1_billing, 191);
|
|
7549
7379
|
|
|
7550
7380
|
/**
|
|
7551
7381
|
* Request message for the Billing.ListBillingGroupsPaginated rpc.
|
|
@@ -7636,7 +7466,7 @@ export type ListBillingGroupsPaginatedRequest = Message<"blueapi.billing.v1.List
|
|
|
7636
7466
|
* Use `create(ListBillingGroupsPaginatedRequestSchema)` to create a new message.
|
|
7637
7467
|
*/
|
|
7638
7468
|
export const ListBillingGroupsPaginatedRequestSchema: GenMessage<ListBillingGroupsPaginatedRequest> = /*@__PURE__*/
|
|
7639
|
-
messageDesc(file_billing_v1_billing,
|
|
7469
|
+
messageDesc(file_billing_v1_billing, 192);
|
|
7640
7470
|
|
|
7641
7471
|
/**
|
|
7642
7472
|
* Response row for paginated billing groups table.
|
|
@@ -7692,7 +7522,7 @@ export type BillingGroupListItem = Message<"blueapi.billing.v1.BillingGroupListI
|
|
|
7692
7522
|
* Use `create(BillingGroupListItemSchema)` to create a new message.
|
|
7693
7523
|
*/
|
|
7694
7524
|
export const BillingGroupListItemSchema: GenMessage<BillingGroupListItem> = /*@__PURE__*/
|
|
7695
|
-
messageDesc(file_billing_v1_billing,
|
|
7525
|
+
messageDesc(file_billing_v1_billing, 193);
|
|
7696
7526
|
|
|
7697
7527
|
/**
|
|
7698
7528
|
* Vendor availability entries.
|
|
@@ -7720,7 +7550,7 @@ export type BillingGroupListItem_BillingGroupVendor = Message<"blueapi.billing.v
|
|
|
7720
7550
|
* Use `create(BillingGroupListItem_BillingGroupVendorSchema)` to create a new message.
|
|
7721
7551
|
*/
|
|
7722
7552
|
export const BillingGroupListItem_BillingGroupVendorSchema: GenMessage<BillingGroupListItem_BillingGroupVendor> = /*@__PURE__*/
|
|
7723
|
-
messageDesc(file_billing_v1_billing,
|
|
7553
|
+
messageDesc(file_billing_v1_billing, 193, 0);
|
|
7724
7554
|
|
|
7725
7555
|
/**
|
|
7726
7556
|
* Response message for the Billing.ListBillingGroupsPaginated rpc.
|
|
@@ -7769,7 +7599,7 @@ export type ListBillingGroupsPaginatedResponse = Message<"blueapi.billing.v1.Lis
|
|
|
7769
7599
|
* Use `create(ListBillingGroupsPaginatedResponseSchema)` to create a new message.
|
|
7770
7600
|
*/
|
|
7771
7601
|
export const ListBillingGroupsPaginatedResponseSchema: GenMessage<ListBillingGroupsPaginatedResponse> = /*@__PURE__*/
|
|
7772
|
-
messageDesc(file_billing_v1_billing,
|
|
7602
|
+
messageDesc(file_billing_v1_billing, 194);
|
|
7773
7603
|
|
|
7774
7604
|
/**
|
|
7775
7605
|
* @generated from message blueapi.billing.v1.ChildBillingGroupBasicInformation
|
|
@@ -7823,7 +7653,7 @@ export type ChildBillingGroupBasicInformation = Message<"blueapi.billing.v1.Chil
|
|
|
7823
7653
|
* Use `create(ChildBillingGroupBasicInformationSchema)` to create a new message.
|
|
7824
7654
|
*/
|
|
7825
7655
|
export const ChildBillingGroupBasicInformationSchema: GenMessage<ChildBillingGroupBasicInformation> = /*@__PURE__*/
|
|
7826
|
-
messageDesc(file_billing_v1_billing,
|
|
7656
|
+
messageDesc(file_billing_v1_billing, 195);
|
|
7827
7657
|
|
|
7828
7658
|
/**
|
|
7829
7659
|
* @generated from message blueapi.billing.v1.CustomizedBillingServiceBillingGroup
|
|
@@ -7863,7 +7693,7 @@ export type CustomizedBillingServiceBillingGroup = Message<"blueapi.billing.v1.C
|
|
|
7863
7693
|
* Use `create(CustomizedBillingServiceBillingGroupSchema)` to create a new message.
|
|
7864
7694
|
*/
|
|
7865
7695
|
export const CustomizedBillingServiceBillingGroupSchema: GenMessage<CustomizedBillingServiceBillingGroup> = /*@__PURE__*/
|
|
7866
|
-
messageDesc(file_billing_v1_billing,
|
|
7696
|
+
messageDesc(file_billing_v1_billing, 196);
|
|
7867
7697
|
|
|
7868
7698
|
/**
|
|
7869
7699
|
* Contains basic information and invoice settings related data.
|
|
@@ -7907,7 +7737,7 @@ export type ChildBillingGroup = Message<"blueapi.billing.v1.ChildBillingGroup">
|
|
|
7907
7737
|
* Use `create(ChildBillingGroupSchema)` to create a new message.
|
|
7908
7738
|
*/
|
|
7909
7739
|
export const ChildBillingGroupSchema: GenMessage<ChildBillingGroup> = /*@__PURE__*/
|
|
7910
|
-
messageDesc(file_billing_v1_billing,
|
|
7740
|
+
messageDesc(file_billing_v1_billing, 197);
|
|
7911
7741
|
|
|
7912
7742
|
/**
|
|
7913
7743
|
* @generated from message blueapi.billing.v1.ChildBillingGroupInvoiceSettings
|
|
@@ -7945,7 +7775,7 @@ export type ChildBillingGroupInvoiceSettings = Message<"blueapi.billing.v1.Child
|
|
|
7945
7775
|
* Use `create(ChildBillingGroupInvoiceSettingsSchema)` to create a new message.
|
|
7946
7776
|
*/
|
|
7947
7777
|
export const ChildBillingGroupInvoiceSettingsSchema: GenMessage<ChildBillingGroupInvoiceSettings> = /*@__PURE__*/
|
|
7948
|
-
messageDesc(file_billing_v1_billing,
|
|
7778
|
+
messageDesc(file_billing_v1_billing, 198);
|
|
7949
7779
|
|
|
7950
7780
|
/**
|
|
7951
7781
|
* @generated from message blueapi.billing.v1.CreateChildBillingGroupRequest
|
|
@@ -7985,7 +7815,7 @@ export type CreateChildBillingGroupRequest = Message<"blueapi.billing.v1.CreateC
|
|
|
7985
7815
|
* Use `create(CreateChildBillingGroupRequestSchema)` to create a new message.
|
|
7986
7816
|
*/
|
|
7987
7817
|
export const CreateChildBillingGroupRequestSchema: GenMessage<CreateChildBillingGroupRequest> = /*@__PURE__*/
|
|
7988
|
-
messageDesc(file_billing_v1_billing,
|
|
7818
|
+
messageDesc(file_billing_v1_billing, 199);
|
|
7989
7819
|
|
|
7990
7820
|
/**
|
|
7991
7821
|
* @generated from message blueapi.billing.v1.CreateChildBillingGroupResponse
|
|
@@ -7998,7 +7828,7 @@ export type CreateChildBillingGroupResponse = Message<"blueapi.billing.v1.Create
|
|
|
7998
7828
|
* Use `create(CreateChildBillingGroupResponseSchema)` to create a new message.
|
|
7999
7829
|
*/
|
|
8000
7830
|
export const CreateChildBillingGroupResponseSchema: GenMessage<CreateChildBillingGroupResponse> = /*@__PURE__*/
|
|
8001
|
-
messageDesc(file_billing_v1_billing,
|
|
7831
|
+
messageDesc(file_billing_v1_billing, 200);
|
|
8002
7832
|
|
|
8003
7833
|
/**
|
|
8004
7834
|
* @generated from message blueapi.billing.v1.GetChildBillingGroupRequest
|
|
@@ -8017,7 +7847,7 @@ export type GetChildBillingGroupRequest = Message<"blueapi.billing.v1.GetChildBi
|
|
|
8017
7847
|
* Use `create(GetChildBillingGroupRequestSchema)` to create a new message.
|
|
8018
7848
|
*/
|
|
8019
7849
|
export const GetChildBillingGroupRequestSchema: GenMessage<GetChildBillingGroupRequest> = /*@__PURE__*/
|
|
8020
|
-
messageDesc(file_billing_v1_billing,
|
|
7850
|
+
messageDesc(file_billing_v1_billing, 201);
|
|
8021
7851
|
|
|
8022
7852
|
/**
|
|
8023
7853
|
* @generated from message blueapi.billing.v1.GetChildBillingGroupResponse
|
|
@@ -8034,7 +7864,7 @@ export type GetChildBillingGroupResponse = Message<"blueapi.billing.v1.GetChildB
|
|
|
8034
7864
|
* Use `create(GetChildBillingGroupResponseSchema)` to create a new message.
|
|
8035
7865
|
*/
|
|
8036
7866
|
export const GetChildBillingGroupResponseSchema: GenMessage<GetChildBillingGroupResponse> = /*@__PURE__*/
|
|
8037
|
-
messageDesc(file_billing_v1_billing,
|
|
7867
|
+
messageDesc(file_billing_v1_billing, 202);
|
|
8038
7868
|
|
|
8039
7869
|
/**
|
|
8040
7870
|
* @generated from message blueapi.billing.v1.ReadChildBillingGroupsRequest
|
|
@@ -8062,7 +7892,7 @@ export type ReadChildBillingGroupsRequest = Message<"blueapi.billing.v1.ReadChil
|
|
|
8062
7892
|
* Use `create(ReadChildBillingGroupsRequestSchema)` to create a new message.
|
|
8063
7893
|
*/
|
|
8064
7894
|
export const ReadChildBillingGroupsRequestSchema: GenMessage<ReadChildBillingGroupsRequest> = /*@__PURE__*/
|
|
8065
|
-
messageDesc(file_billing_v1_billing,
|
|
7895
|
+
messageDesc(file_billing_v1_billing, 203);
|
|
8066
7896
|
|
|
8067
7897
|
/**
|
|
8068
7898
|
* @generated from message blueapi.billing.v1.UpdateChildBillingGroupRequest
|
|
@@ -8095,7 +7925,7 @@ export type UpdateChildBillingGroupRequest = Message<"blueapi.billing.v1.UpdateC
|
|
|
8095
7925
|
* Use `create(UpdateChildBillingGroupRequestSchema)` to create a new message.
|
|
8096
7926
|
*/
|
|
8097
7927
|
export const UpdateChildBillingGroupRequestSchema: GenMessage<UpdateChildBillingGroupRequest> = /*@__PURE__*/
|
|
8098
|
-
messageDesc(file_billing_v1_billing,
|
|
7928
|
+
messageDesc(file_billing_v1_billing, 204);
|
|
8099
7929
|
|
|
8100
7930
|
/**
|
|
8101
7931
|
* @generated from message blueapi.billing.v1.UpdateChildBillingGroupResponse
|
|
@@ -8108,7 +7938,7 @@ export type UpdateChildBillingGroupResponse = Message<"blueapi.billing.v1.Update
|
|
|
8108
7938
|
* Use `create(UpdateChildBillingGroupResponseSchema)` to create a new message.
|
|
8109
7939
|
*/
|
|
8110
7940
|
export const UpdateChildBillingGroupResponseSchema: GenMessage<UpdateChildBillingGroupResponse> = /*@__PURE__*/
|
|
8111
|
-
messageDesc(file_billing_v1_billing,
|
|
7941
|
+
messageDesc(file_billing_v1_billing, 205);
|
|
8112
7942
|
|
|
8113
7943
|
/**
|
|
8114
7944
|
* @generated from message blueapi.billing.v1.DeleteChildBillingGroupRequest
|
|
@@ -8127,7 +7957,7 @@ export type DeleteChildBillingGroupRequest = Message<"blueapi.billing.v1.DeleteC
|
|
|
8127
7957
|
* Use `create(DeleteChildBillingGroupRequestSchema)` to create a new message.
|
|
8128
7958
|
*/
|
|
8129
7959
|
export const DeleteChildBillingGroupRequestSchema: GenMessage<DeleteChildBillingGroupRequest> = /*@__PURE__*/
|
|
8130
|
-
messageDesc(file_billing_v1_billing,
|
|
7960
|
+
messageDesc(file_billing_v1_billing, 206);
|
|
8131
7961
|
|
|
8132
7962
|
/**
|
|
8133
7963
|
* @generated from message blueapi.billing.v1.DeleteChildBillingGroupResponse
|
|
@@ -8140,7 +7970,7 @@ export type DeleteChildBillingGroupResponse = Message<"blueapi.billing.v1.Delete
|
|
|
8140
7970
|
* Use `create(DeleteChildBillingGroupResponseSchema)` to create a new message.
|
|
8141
7971
|
*/
|
|
8142
7972
|
export const DeleteChildBillingGroupResponseSchema: GenMessage<DeleteChildBillingGroupResponse> = /*@__PURE__*/
|
|
8143
|
-
messageDesc(file_billing_v1_billing,
|
|
7973
|
+
messageDesc(file_billing_v1_billing, 207);
|
|
8144
7974
|
|
|
8145
7975
|
/**
|
|
8146
7976
|
* @generated from message blueapi.billing.v1.UpdateChildBillingGroupInvoiceSettingsRequest
|
|
@@ -8173,7 +8003,7 @@ export type UpdateChildBillingGroupInvoiceSettingsRequest = Message<"blueapi.bil
|
|
|
8173
8003
|
* Use `create(UpdateChildBillingGroupInvoiceSettingsRequestSchema)` to create a new message.
|
|
8174
8004
|
*/
|
|
8175
8005
|
export const UpdateChildBillingGroupInvoiceSettingsRequestSchema: GenMessage<UpdateChildBillingGroupInvoiceSettingsRequest> = /*@__PURE__*/
|
|
8176
|
-
messageDesc(file_billing_v1_billing,
|
|
8006
|
+
messageDesc(file_billing_v1_billing, 208);
|
|
8177
8007
|
|
|
8178
8008
|
/**
|
|
8179
8009
|
* @generated from message blueapi.billing.v1.UpdateChildBillingGroupInvoiceSettingsResponse
|
|
@@ -8186,7 +8016,7 @@ export type UpdateChildBillingGroupInvoiceSettingsResponse = Message<"blueapi.bi
|
|
|
8186
8016
|
* Use `create(UpdateChildBillingGroupInvoiceSettingsResponseSchema)` to create a new message.
|
|
8187
8017
|
*/
|
|
8188
8018
|
export const UpdateChildBillingGroupInvoiceSettingsResponseSchema: GenMessage<UpdateChildBillingGroupInvoiceSettingsResponse> = /*@__PURE__*/
|
|
8189
|
-
messageDesc(file_billing_v1_billing,
|
|
8019
|
+
messageDesc(file_billing_v1_billing, 209);
|
|
8190
8020
|
|
|
8191
8021
|
/**
|
|
8192
8022
|
* @generated from message blueapi.billing.v1.SetChildBillingGroupCustomizedBillingServiceRequest
|
|
@@ -8226,7 +8056,7 @@ export type SetChildBillingGroupCustomizedBillingServiceRequest = Message<"bluea
|
|
|
8226
8056
|
* Use `create(SetChildBillingGroupCustomizedBillingServiceRequestSchema)` to create a new message.
|
|
8227
8057
|
*/
|
|
8228
8058
|
export const SetChildBillingGroupCustomizedBillingServiceRequestSchema: GenMessage<SetChildBillingGroupCustomizedBillingServiceRequest> = /*@__PURE__*/
|
|
8229
|
-
messageDesc(file_billing_v1_billing,
|
|
8059
|
+
messageDesc(file_billing_v1_billing, 210);
|
|
8230
8060
|
|
|
8231
8061
|
/**
|
|
8232
8062
|
* CustomizedBillingServiceBillingSetting
|
|
@@ -8263,7 +8093,7 @@ export type SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillin
|
|
|
8263
8093
|
* Use `create(SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillingServiceBillingSettingSchema)` to create a new message.
|
|
8264
8094
|
*/
|
|
8265
8095
|
export const SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillingServiceBillingSettingSchema: GenMessage<SetChildBillingGroupCustomizedBillingServiceRequest_CustomizedBillingServiceBillingSetting> = /*@__PURE__*/
|
|
8266
|
-
messageDesc(file_billing_v1_billing,
|
|
8096
|
+
messageDesc(file_billing_v1_billing, 210, 0);
|
|
8267
8097
|
|
|
8268
8098
|
/**
|
|
8269
8099
|
* @generated from message blueapi.billing.v1.SetChildBillingGroupInvoiceServiceDiscountsRequest
|
|
@@ -8283,169 +8113,570 @@ export type SetChildBillingGroupInvoiceServiceDiscountsRequest = Message<"blueap
|
|
|
8283
8113
|
*
|
|
8284
8114
|
* @generated from field: string id = 2;
|
|
8285
8115
|
*/
|
|
8286
|
-
id: string;
|
|
8287
|
-
};
|
|
8116
|
+
id: string;
|
|
8117
|
+
};
|
|
8118
|
+
|
|
8119
|
+
/**
|
|
8120
|
+
* Describes the message blueapi.billing.v1.SetChildBillingGroupInvoiceServiceDiscountsRequest.
|
|
8121
|
+
* Use `create(SetChildBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
8122
|
+
*/
|
|
8123
|
+
export const SetChildBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<SetChildBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8124
|
+
messageDesc(file_billing_v1_billing, 211);
|
|
8125
|
+
|
|
8126
|
+
/**
|
|
8127
|
+
* @generated from message blueapi.billing.v1.SetChildBillingGroupAccountInvoiceServiceDiscountsRequest
|
|
8128
|
+
*/
|
|
8129
|
+
export type SetChildBillingGroupAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billing.v1.SetChildBillingGroupAccountInvoiceServiceDiscountsRequest"> & {
|
|
8130
|
+
/**
|
|
8131
|
+
* Required. child billing group's internal Id.
|
|
8132
|
+
*
|
|
8133
|
+
* @generated from field: string internalId = 1;
|
|
8134
|
+
*/
|
|
8135
|
+
internalId: string;
|
|
8136
|
+
|
|
8137
|
+
/**
|
|
8138
|
+
* Required.
|
|
8139
|
+
*
|
|
8140
|
+
* @generated from field: repeated blueapi.billing.v1.AccountServiceDiscounts accounts = 2;
|
|
8141
|
+
*/
|
|
8142
|
+
accounts: AccountServiceDiscounts[];
|
|
8143
|
+
};
|
|
8144
|
+
|
|
8145
|
+
/**
|
|
8146
|
+
* Describes the message blueapi.billing.v1.SetChildBillingGroupAccountInvoiceServiceDiscountsRequest.
|
|
8147
|
+
* Use `create(SetChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
8148
|
+
*/
|
|
8149
|
+
export const SetChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema: GenMessage<SetChildBillingGroupAccountInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8150
|
+
messageDesc(file_billing_v1_billing, 212);
|
|
8151
|
+
|
|
8152
|
+
/**
|
|
8153
|
+
* @generated from message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceRequest
|
|
8154
|
+
*/
|
|
8155
|
+
export type GetChildBillingGroupCustomizedBillingServiceRequest = Message<"blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceRequest"> & {
|
|
8156
|
+
/**
|
|
8157
|
+
* Required. Internal Id
|
|
8158
|
+
*
|
|
8159
|
+
* @generated from field: string internalId = 1;
|
|
8160
|
+
*/
|
|
8161
|
+
internalId: string;
|
|
8162
|
+
|
|
8163
|
+
/**
|
|
8164
|
+
* Required. At the moment, `aws` is supported.
|
|
8165
|
+
*
|
|
8166
|
+
* @generated from field: string vendor = 2;
|
|
8167
|
+
*/
|
|
8168
|
+
vendor: string;
|
|
8169
|
+
};
|
|
8170
|
+
|
|
8171
|
+
/**
|
|
8172
|
+
* Describes the message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceRequest.
|
|
8173
|
+
* Use `create(GetChildBillingGroupCustomizedBillingServiceRequestSchema)` to create a new message.
|
|
8174
|
+
*/
|
|
8175
|
+
export const GetChildBillingGroupCustomizedBillingServiceRequestSchema: GenMessage<GetChildBillingGroupCustomizedBillingServiceRequest> = /*@__PURE__*/
|
|
8176
|
+
messageDesc(file_billing_v1_billing, 213);
|
|
8177
|
+
|
|
8178
|
+
/**
|
|
8179
|
+
* @generated from message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceResponse
|
|
8180
|
+
*/
|
|
8181
|
+
export type GetChildBillingGroupCustomizedBillingServiceResponse = Message<"blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceResponse"> & {
|
|
8182
|
+
/**
|
|
8183
|
+
* Required. [blueapi.api.ripple.CustomizedBillingService.id]
|
|
8184
|
+
*
|
|
8185
|
+
* @generated from field: string id = 1;
|
|
8186
|
+
*/
|
|
8187
|
+
id: string;
|
|
8188
|
+
|
|
8189
|
+
/**
|
|
8190
|
+
* Required. vendor that applied to the CustomizedBillingService config.
|
|
8191
|
+
*
|
|
8192
|
+
* @generated from field: string vendor = 2;
|
|
8193
|
+
*/
|
|
8194
|
+
vendor: string;
|
|
8195
|
+
|
|
8196
|
+
/**
|
|
8197
|
+
* Required. [blueapi.api.ripple.ChargingTarget]
|
|
8198
|
+
*
|
|
8199
|
+
* @generated from field: blueapi.api.ripple.ChargingTarget chargingTarget = 3;
|
|
8200
|
+
*/
|
|
8201
|
+
chargingTarget: ChargingTarget;
|
|
8202
|
+
|
|
8203
|
+
/**
|
|
8204
|
+
* Optional. accounts that applied to the CustomizedBillingService config.
|
|
8205
|
+
*
|
|
8206
|
+
* @generated from field: repeated blueapi.api.Account accounts = 4;
|
|
8207
|
+
*/
|
|
8208
|
+
accounts: Account[];
|
|
8209
|
+
};
|
|
8210
|
+
|
|
8211
|
+
/**
|
|
8212
|
+
* Describes the message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceResponse.
|
|
8213
|
+
* Use `create(GetChildBillingGroupCustomizedBillingServiceResponseSchema)` to create a new message.
|
|
8214
|
+
*/
|
|
8215
|
+
export const GetChildBillingGroupCustomizedBillingServiceResponseSchema: GenMessage<GetChildBillingGroupCustomizedBillingServiceResponse> = /*@__PURE__*/
|
|
8216
|
+
messageDesc(file_billing_v1_billing, 214);
|
|
8217
|
+
|
|
8218
|
+
/**
|
|
8219
|
+
* @generated from message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest
|
|
8220
|
+
*/
|
|
8221
|
+
export type GetChildBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest"> & {
|
|
8222
|
+
/**
|
|
8223
|
+
* Required. Child Billing Group Internal Id
|
|
8224
|
+
*
|
|
8225
|
+
* @generated from field: string internalId = 1;
|
|
8226
|
+
*/
|
|
8227
|
+
internalId: string;
|
|
8228
|
+
};
|
|
8229
|
+
|
|
8230
|
+
/**
|
|
8231
|
+
* Describes the message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest.
|
|
8232
|
+
* Use `create(GetChildBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
8233
|
+
*/
|
|
8234
|
+
export const GetChildBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<GetChildBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8235
|
+
messageDesc(file_billing_v1_billing, 215);
|
|
8236
|
+
|
|
8237
|
+
/**
|
|
8238
|
+
* @generated from message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse
|
|
8239
|
+
*/
|
|
8240
|
+
export type GetChildBillingGroupInvoiceServiceDiscountsResponse = Message<"blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse"> & {
|
|
8241
|
+
/**
|
|
8242
|
+
* Service discount id
|
|
8243
|
+
*
|
|
8244
|
+
* @generated from field: string id = 1;
|
|
8245
|
+
*/
|
|
8246
|
+
id: string;
|
|
8247
|
+
};
|
|
8248
|
+
|
|
8249
|
+
/**
|
|
8250
|
+
* Describes the message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse.
|
|
8251
|
+
* Use `create(GetChildBillingGroupInvoiceServiceDiscountsResponseSchema)` to create a new message.
|
|
8252
|
+
*/
|
|
8253
|
+
export const GetChildBillingGroupInvoiceServiceDiscountsResponseSchema: GenMessage<GetChildBillingGroupInvoiceServiceDiscountsResponse> = /*@__PURE__*/
|
|
8254
|
+
messageDesc(file_billing_v1_billing, 216);
|
|
8255
|
+
|
|
8256
|
+
/**
|
|
8257
|
+
* @generated from message blueapi.billing.v1.ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest
|
|
8258
|
+
*/
|
|
8259
|
+
export type ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billing.v1.ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest"> & {
|
|
8260
|
+
/**
|
|
8261
|
+
* Required. Child Billing Group Internal Id
|
|
8262
|
+
*
|
|
8263
|
+
* @generated from field: string internalId = 1;
|
|
8264
|
+
*/
|
|
8265
|
+
internalId: string;
|
|
8266
|
+
};
|
|
8267
|
+
|
|
8268
|
+
/**
|
|
8269
|
+
* Describes the message blueapi.billing.v1.ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest.
|
|
8270
|
+
* Use `create(ReadChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
8271
|
+
*/
|
|
8272
|
+
export const ReadChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema: GenMessage<ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8273
|
+
messageDesc(file_billing_v1_billing, 217);
|
|
8274
|
+
|
|
8275
|
+
/**
|
|
8276
|
+
* @generated from message blueapi.billing.v1.BulkCreateBillingGroupRequest
|
|
8277
|
+
*/
|
|
8278
|
+
export type BulkCreateBillingGroupRequest = Message<"blueapi.billing.v1.BulkCreateBillingGroupRequest"> & {
|
|
8279
|
+
/**
|
|
8280
|
+
* Required. The cloud vendor for all billing groups in this CSV.
|
|
8281
|
+
* Must be one of: aws, azure, gcp.
|
|
8282
|
+
*
|
|
8283
|
+
* @generated from field: string vendor = 5;
|
|
8284
|
+
*/
|
|
8285
|
+
vendor: string;
|
|
8286
|
+
|
|
8287
|
+
/**
|
|
8288
|
+
* Required. The CSV file content as bytes.
|
|
8289
|
+
*
|
|
8290
|
+
* @generated from field: bytes csvContent = 1;
|
|
8291
|
+
*/
|
|
8292
|
+
csvContent: Uint8Array;
|
|
8293
|
+
|
|
8294
|
+
/**
|
|
8295
|
+
* Optional. The delimiter used in the CSV file. Defaults to comma (,).
|
|
8296
|
+
*
|
|
8297
|
+
* @generated from field: string delimiter = 2;
|
|
8298
|
+
*/
|
|
8299
|
+
delimiter: string;
|
|
8300
|
+
|
|
8301
|
+
/**
|
|
8302
|
+
* Optional. Whether the CSV file has a header row. Defaults to true.
|
|
8303
|
+
*
|
|
8304
|
+
* @generated from field: bool hasHeader = 3;
|
|
8305
|
+
*/
|
|
8306
|
+
hasHeader: boolean;
|
|
8307
|
+
|
|
8308
|
+
/**
|
|
8309
|
+
* Optional. If true, validate the CSV and check for errors without actually creating billing groups.
|
|
8310
|
+
* Useful for validating CSV format and data before performing the actual bulk creation.
|
|
8311
|
+
*
|
|
8312
|
+
* @generated from field: bool dryRun = 4;
|
|
8313
|
+
*/
|
|
8314
|
+
dryRun: boolean;
|
|
8315
|
+
};
|
|
8316
|
+
|
|
8317
|
+
/**
|
|
8318
|
+
* Describes the message blueapi.billing.v1.BulkCreateBillingGroupRequest.
|
|
8319
|
+
* Use `create(BulkCreateBillingGroupRequestSchema)` to create a new message.
|
|
8320
|
+
*/
|
|
8321
|
+
export const BulkCreateBillingGroupRequestSchema: GenMessage<BulkCreateBillingGroupRequest> = /*@__PURE__*/
|
|
8322
|
+
messageDesc(file_billing_v1_billing, 218);
|
|
8323
|
+
|
|
8324
|
+
/**
|
|
8325
|
+
* @generated from message blueapi.billing.v1.BulkCreateBillingGroupError
|
|
8326
|
+
*/
|
|
8327
|
+
export type BulkCreateBillingGroupError = Message<"blueapi.billing.v1.BulkCreateBillingGroupError"> & {
|
|
8328
|
+
/**
|
|
8329
|
+
* The index of the row that failed (zero-based).
|
|
8330
|
+
*
|
|
8331
|
+
* @generated from field: int32 index = 1;
|
|
8332
|
+
*/
|
|
8333
|
+
index: number;
|
|
8334
|
+
|
|
8335
|
+
/**
|
|
8336
|
+
* The billing group ID that failed to create.
|
|
8337
|
+
*
|
|
8338
|
+
* @generated from field: string billingGroupId = 2;
|
|
8339
|
+
*/
|
|
8340
|
+
billingGroupId: string;
|
|
8341
|
+
|
|
8342
|
+
/**
|
|
8343
|
+
* Error message.
|
|
8344
|
+
*
|
|
8345
|
+
* @generated from field: string message = 3;
|
|
8346
|
+
*/
|
|
8347
|
+
message: string;
|
|
8348
|
+
};
|
|
8349
|
+
|
|
8350
|
+
/**
|
|
8351
|
+
* Describes the message blueapi.billing.v1.BulkCreateBillingGroupError.
|
|
8352
|
+
* Use `create(BulkCreateBillingGroupErrorSchema)` to create a new message.
|
|
8353
|
+
*/
|
|
8354
|
+
export const BulkCreateBillingGroupErrorSchema: GenMessage<BulkCreateBillingGroupError> = /*@__PURE__*/
|
|
8355
|
+
messageDesc(file_billing_v1_billing, 219);
|
|
8356
|
+
|
|
8357
|
+
/**
|
|
8358
|
+
* Metadata for the BulkCreateBillingGroup long-running operation.
|
|
8359
|
+
* Stored in protos.Operation.metadata.
|
|
8360
|
+
*
|
|
8361
|
+
* @generated from message blueapi.billing.v1.BulkCreateBillingGroupMetadata
|
|
8362
|
+
*/
|
|
8363
|
+
export type BulkCreateBillingGroupMetadata = Message<"blueapi.billing.v1.BulkCreateBillingGroupMetadata"> & {
|
|
8364
|
+
/**
|
|
8365
|
+
* The current status: "pending", "processing", "completed", "partial_failed", "failed".
|
|
8366
|
+
*
|
|
8367
|
+
* @generated from field: string status = 1;
|
|
8368
|
+
*/
|
|
8369
|
+
status: string;
|
|
8370
|
+
|
|
8371
|
+
/**
|
|
8372
|
+
* Total number of billing groups to create.
|
|
8373
|
+
*
|
|
8374
|
+
* @generated from field: int32 totalCount = 2;
|
|
8375
|
+
*/
|
|
8376
|
+
totalCount: number;
|
|
8377
|
+
|
|
8378
|
+
/**
|
|
8379
|
+
* Number of billing groups processed so far.
|
|
8380
|
+
*
|
|
8381
|
+
* @generated from field: int32 processedCount = 3;
|
|
8382
|
+
*/
|
|
8383
|
+
processedCount: number;
|
|
8384
|
+
|
|
8385
|
+
/**
|
|
8386
|
+
* Number of billing groups successfully created.
|
|
8387
|
+
*
|
|
8388
|
+
* @generated from field: int32 successCount = 4;
|
|
8389
|
+
*/
|
|
8390
|
+
successCount: number;
|
|
8391
|
+
|
|
8392
|
+
/**
|
|
8393
|
+
* Number of billing groups that failed.
|
|
8394
|
+
*
|
|
8395
|
+
* @generated from field: int32 failureCount = 5;
|
|
8396
|
+
*/
|
|
8397
|
+
failureCount: number;
|
|
8398
|
+
|
|
8399
|
+
/**
|
|
8400
|
+
* Details of failed billing groups.
|
|
8401
|
+
*
|
|
8402
|
+
* @generated from field: repeated blueapi.billing.v1.BulkCreateBillingGroupError errors = 6;
|
|
8403
|
+
*/
|
|
8404
|
+
errors: BulkCreateBillingGroupError[];
|
|
8405
|
+
|
|
8406
|
+
/**
|
|
8407
|
+
* Job start timestamp (RFC 3339).
|
|
8408
|
+
*
|
|
8409
|
+
* @generated from field: string startTime = 7;
|
|
8410
|
+
*/
|
|
8411
|
+
startTime: string;
|
|
8412
|
+
|
|
8413
|
+
/**
|
|
8414
|
+
* Job end timestamp. Empty if still running.
|
|
8415
|
+
*
|
|
8416
|
+
* @generated from field: string endTime = 8;
|
|
8417
|
+
*/
|
|
8418
|
+
endTime: string;
|
|
8419
|
+
|
|
8420
|
+
/**
|
|
8421
|
+
* Per-row normalized Invoice Settings results, populated for dryRun requests and for
|
|
8422
|
+
* completed executions. Reused by BulkUpdateBillingGroupMetadata so Dry-run and execution
|
|
8423
|
+
* for both Create and Update share one row-result shape.
|
|
8424
|
+
*
|
|
8425
|
+
* @generated from field: repeated blueapi.billing.v1.BulkBillingGroupInvoiceSettingsRow rows = 9;
|
|
8426
|
+
*/
|
|
8427
|
+
rows: BulkBillingGroupInvoiceSettingsRow[];
|
|
8428
|
+
};
|
|
8429
|
+
|
|
8430
|
+
/**
|
|
8431
|
+
* Describes the message blueapi.billing.v1.BulkCreateBillingGroupMetadata.
|
|
8432
|
+
* Use `create(BulkCreateBillingGroupMetadataSchema)` to create a new message.
|
|
8433
|
+
*/
|
|
8434
|
+
export const BulkCreateBillingGroupMetadataSchema: GenMessage<BulkCreateBillingGroupMetadata> = /*@__PURE__*/
|
|
8435
|
+
messageDesc(file_billing_v1_billing, 220);
|
|
8436
|
+
|
|
8437
|
+
/**
|
|
8438
|
+
* A single Invoice Settings field's normalized value together with where that value came from.
|
|
8439
|
+
*
|
|
8440
|
+
* @generated from message blueapi.billing.v1.NormalizedInvoiceSettingField
|
|
8441
|
+
*/
|
|
8442
|
+
export type NormalizedInvoiceSettingField = Message<"blueapi.billing.v1.NormalizedInvoiceSettingField"> & {
|
|
8443
|
+
/**
|
|
8444
|
+
* Canonical string-encoded normalized value. Empty if the setting has no value.
|
|
8445
|
+
*
|
|
8446
|
+
* @generated from field: string value = 1;
|
|
8447
|
+
*/
|
|
8448
|
+
value: string;
|
|
8449
|
+
|
|
8450
|
+
/**
|
|
8451
|
+
* Where this value came from. One of: "uploaded", "existing", "default_derived",
|
|
8452
|
+
* "org_derived", "connection_resolved". "existing" means the value was carried
|
|
8453
|
+
* forward unchanged from the billing group's current stored state (the common case
|
|
8454
|
+
* for a blank Update CSV cell — see BulkUpdateBillingGroup's merge semantics).
|
|
8455
|
+
* Omitted (empty) if the server cannot determine a classification.
|
|
8456
|
+
* A field the Bulk CSV schema does not accept as an input column (e.g. support_amount_target)
|
|
8457
|
+
* must never be classified as "uploaded".
|
|
8458
|
+
*
|
|
8459
|
+
* @generated from field: string source = 2;
|
|
8460
|
+
*/
|
|
8461
|
+
source: string;
|
|
8462
|
+
};
|
|
8463
|
+
|
|
8464
|
+
/**
|
|
8465
|
+
* Describes the message blueapi.billing.v1.NormalizedInvoiceSettingField.
|
|
8466
|
+
* Use `create(NormalizedInvoiceSettingFieldSchema)` to create a new message.
|
|
8467
|
+
*/
|
|
8468
|
+
export const NormalizedInvoiceSettingFieldSchema: GenMessage<NormalizedInvoiceSettingField> = /*@__PURE__*/
|
|
8469
|
+
messageDesc(file_billing_v1_billing, 221);
|
|
8470
|
+
|
|
8471
|
+
/**
|
|
8472
|
+
* Server-normalized Invoice Settings for a single bulk row, as they will be (Dry-run) or were
|
|
8473
|
+
* (execution) applied. Shared by BulkCreateBillingGroup and BulkUpdateBillingGroup results.
|
|
8474
|
+
*
|
|
8475
|
+
* @generated from message blueapi.billing.v1.NormalizedInvoiceSettings
|
|
8476
|
+
*/
|
|
8477
|
+
export type NormalizedInvoiceSettings = Message<"blueapi.billing.v1.NormalizedInvoiceSettings"> & {
|
|
8478
|
+
/**
|
|
8479
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField calcType = 1;
|
|
8480
|
+
*/
|
|
8481
|
+
calcType?: NormalizedInvoiceSettingField;
|
|
8482
|
+
|
|
8483
|
+
/**
|
|
8484
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField displayCost = 2;
|
|
8485
|
+
*/
|
|
8486
|
+
displayCost?: NormalizedInvoiceSettingField;
|
|
8487
|
+
|
|
8488
|
+
/**
|
|
8489
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField supportAmountTarget = 3;
|
|
8490
|
+
*/
|
|
8491
|
+
supportAmountTarget?: NormalizedInvoiceSettingField;
|
|
8492
|
+
|
|
8493
|
+
/**
|
|
8494
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField supportFeeCalcTarget = 4;
|
|
8495
|
+
*/
|
|
8496
|
+
supportFeeCalcTarget?: NormalizedInvoiceSettingField;
|
|
8497
|
+
|
|
8498
|
+
/**
|
|
8499
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField substitutionFeeCalcTarget = 5;
|
|
8500
|
+
*/
|
|
8501
|
+
substitutionFeeCalcTarget?: NormalizedInvoiceSettingField;
|
|
8502
|
+
|
|
8503
|
+
/**
|
|
8504
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField invoiceTemplate = 6;
|
|
8505
|
+
*/
|
|
8506
|
+
invoiceTemplate?: NormalizedInvoiceSettingField;
|
|
8507
|
+
|
|
8508
|
+
/**
|
|
8509
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField customService = 7;
|
|
8510
|
+
*/
|
|
8511
|
+
customService?: NormalizedInvoiceSettingField;
|
|
8512
|
+
|
|
8513
|
+
/**
|
|
8514
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField serviceDiscounts = 8;
|
|
8515
|
+
*/
|
|
8516
|
+
serviceDiscounts?: NormalizedInvoiceSettingField;
|
|
8517
|
+
|
|
8518
|
+
/**
|
|
8519
|
+
* Complete per-vendor normalized invoice settings. These fields are additive;
|
|
8520
|
+
* fields 1-8 above retain their original numbers.
|
|
8521
|
+
*
|
|
8522
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField currency = 9;
|
|
8523
|
+
*/
|
|
8524
|
+
currency?: NormalizedInvoiceSettingField;
|
|
8525
|
+
|
|
8526
|
+
/**
|
|
8527
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField taxRate = 10;
|
|
8528
|
+
*/
|
|
8529
|
+
taxRate?: NormalizedInvoiceSettingField;
|
|
8530
|
+
|
|
8531
|
+
/**
|
|
8532
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField discountRate = 11;
|
|
8533
|
+
*/
|
|
8534
|
+
discountRate?: NormalizedInvoiceSettingField;
|
|
8535
|
+
|
|
8536
|
+
/**
|
|
8537
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField discountTargetUsage = 12;
|
|
8538
|
+
*/
|
|
8539
|
+
discountTargetUsage?: NormalizedInvoiceSettingField;
|
|
8540
|
+
|
|
8541
|
+
/**
|
|
8542
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField discountCalcLogic = 13;
|
|
8543
|
+
*/
|
|
8544
|
+
discountCalcLogic?: NormalizedInvoiceSettingField;
|
|
8545
|
+
|
|
8546
|
+
/**
|
|
8547
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField substitutionFee = 14;
|
|
8548
|
+
*/
|
|
8549
|
+
substitutionFee?: NormalizedInvoiceSettingField;
|
|
8550
|
+
|
|
8551
|
+
/**
|
|
8552
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField substitutionRate = 15;
|
|
8553
|
+
*/
|
|
8554
|
+
substitutionRate?: NormalizedInvoiceSettingField;
|
|
8288
8555
|
|
|
8289
|
-
/**
|
|
8290
|
-
|
|
8291
|
-
|
|
8292
|
-
|
|
8293
|
-
export const SetChildBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<SetChildBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8294
|
-
messageDesc(file_billing_v1_billing, 215);
|
|
8556
|
+
/**
|
|
8557
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField substitutionFix = 16;
|
|
8558
|
+
*/
|
|
8559
|
+
substitutionFix?: NormalizedInvoiceSettingField;
|
|
8295
8560
|
|
|
8296
|
-
/**
|
|
8297
|
-
* @generated from message blueapi.billing.v1.SetChildBillingGroupAccountInvoiceServiceDiscountsRequest
|
|
8298
|
-
*/
|
|
8299
|
-
export type SetChildBillingGroupAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billing.v1.SetChildBillingGroupAccountInvoiceServiceDiscountsRequest"> & {
|
|
8300
8561
|
/**
|
|
8301
|
-
*
|
|
8302
|
-
*
|
|
8303
|
-
* @generated from field: string internalId = 1;
|
|
8562
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField substitutionFeeTargetUsage = 17;
|
|
8304
8563
|
*/
|
|
8305
|
-
|
|
8564
|
+
substitutionFeeTargetUsage?: NormalizedInvoiceSettingField;
|
|
8306
8565
|
|
|
8307
8566
|
/**
|
|
8308
|
-
*
|
|
8309
|
-
*
|
|
8310
|
-
* @generated from field: repeated blueapi.billing.v1.AccountServiceDiscounts accounts = 2;
|
|
8567
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField substitutionFeeCalcType = 18;
|
|
8311
8568
|
*/
|
|
8312
|
-
|
|
8313
|
-
};
|
|
8569
|
+
substitutionFeeCalcType?: NormalizedInvoiceSettingField;
|
|
8314
8570
|
|
|
8315
|
-
/**
|
|
8316
|
-
|
|
8317
|
-
|
|
8318
|
-
|
|
8319
|
-
export const SetChildBillingGroupAccountInvoiceServiceDiscountsRequestSchema: GenMessage<SetChildBillingGroupAccountInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8320
|
-
messageDesc(file_billing_v1_billing, 216);
|
|
8571
|
+
/**
|
|
8572
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField supportFee = 19;
|
|
8573
|
+
*/
|
|
8574
|
+
supportFee?: NormalizedInvoiceSettingField;
|
|
8321
8575
|
|
|
8322
|
-
/**
|
|
8323
|
-
* @generated from message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceRequest
|
|
8324
|
-
*/
|
|
8325
|
-
export type GetChildBillingGroupCustomizedBillingServiceRequest = Message<"blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceRequest"> & {
|
|
8326
8576
|
/**
|
|
8327
|
-
*
|
|
8328
|
-
*
|
|
8329
|
-
* @generated from field: string internalId = 1;
|
|
8577
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField supportRate = 20;
|
|
8330
8578
|
*/
|
|
8331
|
-
|
|
8579
|
+
supportRate?: NormalizedInvoiceSettingField;
|
|
8332
8580
|
|
|
8333
8581
|
/**
|
|
8334
|
-
*
|
|
8335
|
-
*
|
|
8336
|
-
* @generated from field: string vendor = 2;
|
|
8582
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField supportFix = 21;
|
|
8337
8583
|
*/
|
|
8338
|
-
|
|
8584
|
+
supportFix?: NormalizedInvoiceSettingField;
|
|
8585
|
+
|
|
8586
|
+
/**
|
|
8587
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettingField supportFeeAdjustment = 22;
|
|
8588
|
+
*/
|
|
8589
|
+
supportFeeAdjustment?: NormalizedInvoiceSettingField;
|
|
8339
8590
|
};
|
|
8340
8591
|
|
|
8341
8592
|
/**
|
|
8342
|
-
* Describes the message blueapi.billing.v1.
|
|
8343
|
-
* Use `create(
|
|
8593
|
+
* Describes the message blueapi.billing.v1.NormalizedInvoiceSettings.
|
|
8594
|
+
* Use `create(NormalizedInvoiceSettingsSchema)` to create a new message.
|
|
8344
8595
|
*/
|
|
8345
|
-
export const
|
|
8346
|
-
messageDesc(file_billing_v1_billing,
|
|
8596
|
+
export const NormalizedInvoiceSettingsSchema: GenMessage<NormalizedInvoiceSettings> = /*@__PURE__*/
|
|
8597
|
+
messageDesc(file_billing_v1_billing, 222);
|
|
8347
8598
|
|
|
8348
8599
|
/**
|
|
8349
|
-
*
|
|
8600
|
+
* Per-row result for a bulk Create or Update Invoice Settings operation.
|
|
8601
|
+
*
|
|
8602
|
+
* @generated from message blueapi.billing.v1.BulkBillingGroupInvoiceSettingsRow
|
|
8350
8603
|
*/
|
|
8351
|
-
export type
|
|
8604
|
+
export type BulkBillingGroupInvoiceSettingsRow = Message<"blueapi.billing.v1.BulkBillingGroupInvoiceSettingsRow"> & {
|
|
8352
8605
|
/**
|
|
8353
|
-
*
|
|
8606
|
+
* The canonical logical data-row index in the original CSV (zero-based,
|
|
8607
|
+
* excluding the header when hasHeader is true). This index is preserved for
|
|
8608
|
+
* valid rows, parse errors, and worker results; it is never compressed after
|
|
8609
|
+
* a malformed or missing row.
|
|
8354
8610
|
*
|
|
8355
|
-
* @generated from field:
|
|
8611
|
+
* @generated from field: int32 index = 1;
|
|
8356
8612
|
*/
|
|
8357
|
-
|
|
8613
|
+
index: number;
|
|
8358
8614
|
|
|
8359
8615
|
/**
|
|
8360
|
-
*
|
|
8616
|
+
* The billing group ID. For Update, the resolved existing billing group. For Create,
|
|
8617
|
+
* populated once known (empty for a row that has not yet been processed on a dryRun).
|
|
8361
8618
|
*
|
|
8362
|
-
* @generated from field: string
|
|
8619
|
+
* @generated from field: string billingGroupId = 2;
|
|
8363
8620
|
*/
|
|
8364
|
-
|
|
8621
|
+
billingGroupId: string;
|
|
8365
8622
|
|
|
8366
8623
|
/**
|
|
8367
|
-
*
|
|
8624
|
+
* Row status: "valid" (Dry-run row ready), "invalid" (parse/validation failure),
|
|
8625
|
+
* "not_found" (referenced billing group does not exist), "updated" (execution
|
|
8626
|
+
* succeeded), "failed" (row-level failure during execution). "created" is reserved
|
|
8627
|
+
* for the Create side of this shared row-result shape.
|
|
8368
8628
|
*
|
|
8369
|
-
* @generated from field:
|
|
8629
|
+
* @generated from field: string status = 3;
|
|
8370
8630
|
*/
|
|
8371
|
-
|
|
8631
|
+
status: string;
|
|
8372
8632
|
|
|
8373
8633
|
/**
|
|
8374
|
-
*
|
|
8634
|
+
* Human-readable error message(s) for this row, if any.
|
|
8375
8635
|
*
|
|
8376
|
-
* @generated from field: repeated
|
|
8636
|
+
* @generated from field: repeated string errors = 4;
|
|
8377
8637
|
*/
|
|
8378
|
-
|
|
8379
|
-
};
|
|
8638
|
+
errors: string[];
|
|
8380
8639
|
|
|
8381
|
-
/**
|
|
8382
|
-
* Describes the message blueapi.billing.v1.GetChildBillingGroupCustomizedBillingServiceResponse.
|
|
8383
|
-
* Use `create(GetChildBillingGroupCustomizedBillingServiceResponseSchema)` to create a new message.
|
|
8384
|
-
*/
|
|
8385
|
-
export const GetChildBillingGroupCustomizedBillingServiceResponseSchema: GenMessage<GetChildBillingGroupCustomizedBillingServiceResponse> = /*@__PURE__*/
|
|
8386
|
-
messageDesc(file_billing_v1_billing, 218);
|
|
8387
|
-
|
|
8388
|
-
/**
|
|
8389
|
-
* @generated from message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest
|
|
8390
|
-
*/
|
|
8391
|
-
export type GetChildBillingGroupInvoiceServiceDiscountsRequest = Message<"blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest"> & {
|
|
8392
8640
|
/**
|
|
8393
|
-
*
|
|
8641
|
+
* The normalized Invoice Settings this row will produce (dryRun) or produced (execution).
|
|
8394
8642
|
*
|
|
8395
|
-
* @generated from field:
|
|
8643
|
+
* @generated from field: blueapi.billing.v1.NormalizedInvoiceSettings normalizedSettings = 5;
|
|
8396
8644
|
*/
|
|
8397
|
-
|
|
8398
|
-
};
|
|
8399
|
-
|
|
8400
|
-
/**
|
|
8401
|
-
* Describes the message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsRequest.
|
|
8402
|
-
* Use `create(GetChildBillingGroupInvoiceServiceDiscountsRequestSchema)` to create a new message.
|
|
8403
|
-
*/
|
|
8404
|
-
export const GetChildBillingGroupInvoiceServiceDiscountsRequestSchema: GenMessage<GetChildBillingGroupInvoiceServiceDiscountsRequest> = /*@__PURE__*/
|
|
8405
|
-
messageDesc(file_billing_v1_billing, 219);
|
|
8645
|
+
normalizedSettings?: NormalizedInvoiceSettings;
|
|
8406
8646
|
|
|
8407
|
-
/**
|
|
8408
|
-
* @generated from message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse
|
|
8409
|
-
*/
|
|
8410
|
-
export type GetChildBillingGroupInvoiceServiceDiscountsResponse = Message<"blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse"> & {
|
|
8411
8647
|
/**
|
|
8412
|
-
*
|
|
8648
|
+
* Explicit row disposition. Values: "ready" (Dry-run row will update), "invalid"
|
|
8649
|
+
* (parse/validation failure), "not_found" (referenced billing group does not exist),
|
|
8650
|
+
* "connection_resolution_failed" (service-discount connection resolution failed),
|
|
8651
|
+
* "unsupported_field" (a requested setting is not supported, e.g. non-blank
|
|
8652
|
+
* custom_service), "updated" (execution succeeded), "failed" (any other row-level
|
|
8653
|
+
* execution failure). It is separate from status so a terminal operation status
|
|
8654
|
+
* cannot be mistaken for row success.
|
|
8413
8655
|
*
|
|
8414
|
-
* @generated from field: string
|
|
8656
|
+
* @generated from field: string disposition = 6;
|
|
8415
8657
|
*/
|
|
8416
|
-
|
|
8417
|
-
};
|
|
8418
|
-
|
|
8419
|
-
/**
|
|
8420
|
-
* Describes the message blueapi.billing.v1.GetChildBillingGroupInvoiceServiceDiscountsResponse.
|
|
8421
|
-
* Use `create(GetChildBillingGroupInvoiceServiceDiscountsResponseSchema)` to create a new message.
|
|
8422
|
-
*/
|
|
8423
|
-
export const GetChildBillingGroupInvoiceServiceDiscountsResponseSchema: GenMessage<GetChildBillingGroupInvoiceServiceDiscountsResponse> = /*@__PURE__*/
|
|
8424
|
-
messageDesc(file_billing_v1_billing, 220);
|
|
8658
|
+
disposition: string;
|
|
8425
8659
|
|
|
8426
|
-
/**
|
|
8427
|
-
* @generated from message blueapi.billing.v1.ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest
|
|
8428
|
-
*/
|
|
8429
|
-
export type ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest = Message<"blueapi.billing.v1.ReadChildBillingGroupAccountInvoiceServiceDiscountsRequest"> & {
|
|
8430
8660
|
/**
|
|
8431
|
-
*
|
|
8661
|
+
* One-based physical CSV line number when known, including a header line.
|
|
8662
|
+
* Zero means the line number was not available.
|
|
8432
8663
|
*
|
|
8433
|
-
* @generated from field:
|
|
8664
|
+
* @generated from field: int32 csvLineNumber = 7;
|
|
8434
8665
|
*/
|
|
8435
|
-
|
|
8666
|
+
csvLineNumber: number;
|
|
8436
8667
|
};
|
|
8437
8668
|
|
|
8438
8669
|
/**
|
|
8439
|
-
* Describes the message blueapi.billing.v1.
|
|
8440
|
-
* Use `create(
|
|
8670
|
+
* Describes the message blueapi.billing.v1.BulkBillingGroupInvoiceSettingsRow.
|
|
8671
|
+
* Use `create(BulkBillingGroupInvoiceSettingsRowSchema)` to create a new message.
|
|
8441
8672
|
*/
|
|
8442
|
-
export const
|
|
8443
|
-
messageDesc(file_billing_v1_billing,
|
|
8673
|
+
export const BulkBillingGroupInvoiceSettingsRowSchema: GenMessage<BulkBillingGroupInvoiceSettingsRow> = /*@__PURE__*/
|
|
8674
|
+
messageDesc(file_billing_v1_billing, 223);
|
|
8444
8675
|
|
|
8445
8676
|
/**
|
|
8446
|
-
* @generated from message blueapi.billing.v1.
|
|
8677
|
+
* @generated from message blueapi.billing.v1.BulkUpdateBillingGroupRequest
|
|
8447
8678
|
*/
|
|
8448
|
-
export type
|
|
8679
|
+
export type BulkUpdateBillingGroupRequest = Message<"blueapi.billing.v1.BulkUpdateBillingGroupRequest"> & {
|
|
8449
8680
|
/**
|
|
8450
8681
|
* Required. The cloud vendor for all billing groups in this CSV.
|
|
8451
8682
|
* Must be one of: aws, azure, gcp.
|
|
@@ -8469,15 +8700,21 @@ export type BulkCreateBillingGroupRequest = Message<"blueapi.billing.v1.BulkCrea
|
|
|
8469
8700
|
delimiter: string;
|
|
8470
8701
|
|
|
8471
8702
|
/**
|
|
8472
|
-
* Optional. Whether the CSV
|
|
8703
|
+
* Optional. Whether the first CSV line names the columns. When true, the first
|
|
8704
|
+
* line is read as a header and columns are matched by name. When false OR omitted
|
|
8705
|
+
* (proto3 scalar default), the CSV is interpreted using the canonical bulk-update
|
|
8706
|
+
* column order (the same order as the downloadable template, headerless).
|
|
8707
|
+
* Callers SHOULD set this field explicitly. Unlike BulkCreateBillingGroup — which
|
|
8708
|
+
* always interprets the first CSV line as a header — Bulk Update honors this field
|
|
8709
|
+
* as given, and the value is preserved on the async execution payload.
|
|
8473
8710
|
*
|
|
8474
8711
|
* @generated from field: bool hasHeader = 3;
|
|
8475
8712
|
*/
|
|
8476
8713
|
hasHeader: boolean;
|
|
8477
8714
|
|
|
8478
8715
|
/**
|
|
8479
|
-
* Optional. If true, validate the CSV and
|
|
8480
|
-
*
|
|
8716
|
+
* Optional. If true, validate the CSV and resolve/merge against existing billing group
|
|
8717
|
+
* state, returning the normalized result, without persisting any change.
|
|
8481
8718
|
*
|
|
8482
8719
|
* @generated from field: bool dryRun = 4;
|
|
8483
8720
|
*/
|
|
@@ -8485,25 +8722,28 @@ export type BulkCreateBillingGroupRequest = Message<"blueapi.billing.v1.BulkCrea
|
|
|
8485
8722
|
};
|
|
8486
8723
|
|
|
8487
8724
|
/**
|
|
8488
|
-
* Describes the message blueapi.billing.v1.
|
|
8489
|
-
* Use `create(
|
|
8725
|
+
* Describes the message blueapi.billing.v1.BulkUpdateBillingGroupRequest.
|
|
8726
|
+
* Use `create(BulkUpdateBillingGroupRequestSchema)` to create a new message.
|
|
8490
8727
|
*/
|
|
8491
|
-
export const
|
|
8492
|
-
messageDesc(file_billing_v1_billing,
|
|
8728
|
+
export const BulkUpdateBillingGroupRequestSchema: GenMessage<BulkUpdateBillingGroupRequest> = /*@__PURE__*/
|
|
8729
|
+
messageDesc(file_billing_v1_billing, 224);
|
|
8493
8730
|
|
|
8494
8731
|
/**
|
|
8495
|
-
* @generated from message blueapi.billing.v1.
|
|
8732
|
+
* @generated from message blueapi.billing.v1.BulkUpdateBillingGroupError
|
|
8496
8733
|
*/
|
|
8497
|
-
export type
|
|
8734
|
+
export type BulkUpdateBillingGroupError = Message<"blueapi.billing.v1.BulkUpdateBillingGroupError"> & {
|
|
8498
8735
|
/**
|
|
8499
|
-
* The index of the row
|
|
8736
|
+
* The canonical logical data-row index of the failed row (zero-based, excluding
|
|
8737
|
+
* the header line when hasHeader is true). Same definition as
|
|
8738
|
+
* BulkBillingGroupInvoiceSettingsRow.index: preserved for parse errors and worker
|
|
8739
|
+
* results, never compressed after a malformed or missing row.
|
|
8500
8740
|
*
|
|
8501
8741
|
* @generated from field: int32 index = 1;
|
|
8502
8742
|
*/
|
|
8503
8743
|
index: number;
|
|
8504
8744
|
|
|
8505
8745
|
/**
|
|
8506
|
-
* The billing group ID
|
|
8746
|
+
* The billing group ID from the failed row, if present in the CSV.
|
|
8507
8747
|
*
|
|
8508
8748
|
* @generated from field: string billingGroupId = 2;
|
|
8509
8749
|
*/
|
|
@@ -8515,22 +8755,33 @@ export type BulkCreateBillingGroupError = Message<"blueapi.billing.v1.BulkCreate
|
|
|
8515
8755
|
* @generated from field: string message = 3;
|
|
8516
8756
|
*/
|
|
8517
8757
|
message: string;
|
|
8758
|
+
|
|
8759
|
+
/**
|
|
8760
|
+
* Failure reason code: "not_found" (billing group does not exist),
|
|
8761
|
+
* "validation_failed" (CSV parse or validation failure),
|
|
8762
|
+
* "connection_resolution_failed" (service-discount connection resolution failed),
|
|
8763
|
+
* or "unsupported_field" (a requested setting is not supported, e.g. non-blank
|
|
8764
|
+
* custom_service).
|
|
8765
|
+
*
|
|
8766
|
+
* @generated from field: string reason = 4;
|
|
8767
|
+
*/
|
|
8768
|
+
reason: string;
|
|
8518
8769
|
};
|
|
8519
8770
|
|
|
8520
8771
|
/**
|
|
8521
|
-
* Describes the message blueapi.billing.v1.
|
|
8522
|
-
* Use `create(
|
|
8772
|
+
* Describes the message blueapi.billing.v1.BulkUpdateBillingGroupError.
|
|
8773
|
+
* Use `create(BulkUpdateBillingGroupErrorSchema)` to create a new message.
|
|
8523
8774
|
*/
|
|
8524
|
-
export const
|
|
8525
|
-
messageDesc(file_billing_v1_billing,
|
|
8775
|
+
export const BulkUpdateBillingGroupErrorSchema: GenMessage<BulkUpdateBillingGroupError> = /*@__PURE__*/
|
|
8776
|
+
messageDesc(file_billing_v1_billing, 225);
|
|
8526
8777
|
|
|
8527
8778
|
/**
|
|
8528
|
-
* Metadata for the
|
|
8779
|
+
* Metadata for the BulkUpdateBillingGroup long-running operation.
|
|
8529
8780
|
* Stored in protos.Operation.metadata.
|
|
8530
8781
|
*
|
|
8531
|
-
* @generated from message blueapi.billing.v1.
|
|
8782
|
+
* @generated from message blueapi.billing.v1.BulkUpdateBillingGroupMetadata
|
|
8532
8783
|
*/
|
|
8533
|
-
export type
|
|
8784
|
+
export type BulkUpdateBillingGroupMetadata = Message<"blueapi.billing.v1.BulkUpdateBillingGroupMetadata"> & {
|
|
8534
8785
|
/**
|
|
8535
8786
|
* The current status: "pending", "processing", "completed", "partial_failed", "failed".
|
|
8536
8787
|
*
|
|
@@ -8539,39 +8790,39 @@ export type BulkCreateBillingGroupMetadata = Message<"blueapi.billing.v1.BulkCre
|
|
|
8539
8790
|
status: string;
|
|
8540
8791
|
|
|
8541
8792
|
/**
|
|
8542
|
-
* Total number of
|
|
8793
|
+
* Total number of rows to process.
|
|
8543
8794
|
*
|
|
8544
8795
|
* @generated from field: int32 totalCount = 2;
|
|
8545
8796
|
*/
|
|
8546
8797
|
totalCount: number;
|
|
8547
8798
|
|
|
8548
8799
|
/**
|
|
8549
|
-
* Number of
|
|
8800
|
+
* Number of rows processed so far.
|
|
8550
8801
|
*
|
|
8551
8802
|
* @generated from field: int32 processedCount = 3;
|
|
8552
8803
|
*/
|
|
8553
8804
|
processedCount: number;
|
|
8554
8805
|
|
|
8555
8806
|
/**
|
|
8556
|
-
* Number of
|
|
8807
|
+
* Number of rows successfully updated.
|
|
8557
8808
|
*
|
|
8558
8809
|
* @generated from field: int32 successCount = 4;
|
|
8559
8810
|
*/
|
|
8560
8811
|
successCount: number;
|
|
8561
8812
|
|
|
8562
8813
|
/**
|
|
8563
|
-
* Number of
|
|
8814
|
+
* Number of rows that failed (including not-found billing groups).
|
|
8564
8815
|
*
|
|
8565
8816
|
* @generated from field: int32 failureCount = 5;
|
|
8566
8817
|
*/
|
|
8567
8818
|
failureCount: number;
|
|
8568
8819
|
|
|
8569
8820
|
/**
|
|
8570
|
-
* Details of failed
|
|
8821
|
+
* Details of failed rows.
|
|
8571
8822
|
*
|
|
8572
|
-
* @generated from field: repeated blueapi.billing.v1.
|
|
8823
|
+
* @generated from field: repeated blueapi.billing.v1.BulkUpdateBillingGroupError errors = 6;
|
|
8573
8824
|
*/
|
|
8574
|
-
errors:
|
|
8825
|
+
errors: BulkUpdateBillingGroupError[];
|
|
8575
8826
|
|
|
8576
8827
|
/**
|
|
8577
8828
|
* Job start timestamp (RFC 3339).
|
|
@@ -8586,14 +8837,22 @@ export type BulkCreateBillingGroupMetadata = Message<"blueapi.billing.v1.BulkCre
|
|
|
8586
8837
|
* @generated from field: string endTime = 8;
|
|
8587
8838
|
*/
|
|
8588
8839
|
endTime: string;
|
|
8840
|
+
|
|
8841
|
+
/**
|
|
8842
|
+
* Per-row normalized Invoice Settings results, populated for dryRun requests and for
|
|
8843
|
+
* completed executions.
|
|
8844
|
+
*
|
|
8845
|
+
* @generated from field: repeated blueapi.billing.v1.BulkBillingGroupInvoiceSettingsRow rows = 9;
|
|
8846
|
+
*/
|
|
8847
|
+
rows: BulkBillingGroupInvoiceSettingsRow[];
|
|
8589
8848
|
};
|
|
8590
8849
|
|
|
8591
8850
|
/**
|
|
8592
|
-
* Describes the message blueapi.billing.v1.
|
|
8593
|
-
* Use `create(
|
|
8851
|
+
* Describes the message blueapi.billing.v1.BulkUpdateBillingGroupMetadata.
|
|
8852
|
+
* Use `create(BulkUpdateBillingGroupMetadataSchema)` to create a new message.
|
|
8594
8853
|
*/
|
|
8595
|
-
export const
|
|
8596
|
-
messageDesc(file_billing_v1_billing,
|
|
8854
|
+
export const BulkUpdateBillingGroupMetadataSchema: GenMessage<BulkUpdateBillingGroupMetadata> = /*@__PURE__*/
|
|
8855
|
+
messageDesc(file_billing_v1_billing, 226);
|
|
8597
8856
|
|
|
8598
8857
|
/**
|
|
8599
8858
|
* @generated from message blueapi.billing.v1.ExcludeServiceEntry
|
|
@@ -8668,7 +8927,7 @@ export type ExcludeServiceEntry = Message<"blueapi.billing.v1.ExcludeServiceEntr
|
|
|
8668
8927
|
* Use `create(ExcludeServiceEntrySchema)` to create a new message.
|
|
8669
8928
|
*/
|
|
8670
8929
|
export const ExcludeServiceEntrySchema: GenMessage<ExcludeServiceEntry> = /*@__PURE__*/
|
|
8671
|
-
messageDesc(file_billing_v1_billing,
|
|
8930
|
+
messageDesc(file_billing_v1_billing, 227);
|
|
8672
8931
|
|
|
8673
8932
|
/**
|
|
8674
8933
|
* @generated from message blueapi.billing.v1.CreateExcludeServiceEntryRequest
|
|
@@ -8722,7 +8981,7 @@ export type CreateExcludeServiceEntryRequest = Message<"blueapi.billing.v1.Creat
|
|
|
8722
8981
|
* Use `create(CreateExcludeServiceEntryRequestSchema)` to create a new message.
|
|
8723
8982
|
*/
|
|
8724
8983
|
export const CreateExcludeServiceEntryRequestSchema: GenMessage<CreateExcludeServiceEntryRequest> = /*@__PURE__*/
|
|
8725
|
-
messageDesc(file_billing_v1_billing,
|
|
8984
|
+
messageDesc(file_billing_v1_billing, 228);
|
|
8726
8985
|
|
|
8727
8986
|
/**
|
|
8728
8987
|
* @generated from message blueapi.billing.v1.CreateExcludeServiceEntryResponse
|
|
@@ -8741,7 +9000,7 @@ export type CreateExcludeServiceEntryResponse = Message<"blueapi.billing.v1.Crea
|
|
|
8741
9000
|
* Use `create(CreateExcludeServiceEntryResponseSchema)` to create a new message.
|
|
8742
9001
|
*/
|
|
8743
9002
|
export const CreateExcludeServiceEntryResponseSchema: GenMessage<CreateExcludeServiceEntryResponse> = /*@__PURE__*/
|
|
8744
|
-
messageDesc(file_billing_v1_billing,
|
|
9003
|
+
messageDesc(file_billing_v1_billing, 229);
|
|
8745
9004
|
|
|
8746
9005
|
/**
|
|
8747
9006
|
* @generated from message blueapi.billing.v1.UpdateExcludeServiceEntryRequest
|
|
@@ -8795,7 +9054,7 @@ export type UpdateExcludeServiceEntryRequest = Message<"blueapi.billing.v1.Updat
|
|
|
8795
9054
|
* Use `create(UpdateExcludeServiceEntryRequestSchema)` to create a new message.
|
|
8796
9055
|
*/
|
|
8797
9056
|
export const UpdateExcludeServiceEntryRequestSchema: GenMessage<UpdateExcludeServiceEntryRequest> = /*@__PURE__*/
|
|
8798
|
-
messageDesc(file_billing_v1_billing,
|
|
9057
|
+
messageDesc(file_billing_v1_billing, 230);
|
|
8799
9058
|
|
|
8800
9059
|
/**
|
|
8801
9060
|
* @generated from message blueapi.billing.v1.UpdateExcludeServiceEntryResponse
|
|
@@ -8814,7 +9073,7 @@ export type UpdateExcludeServiceEntryResponse = Message<"blueapi.billing.v1.Upda
|
|
|
8814
9073
|
* Use `create(UpdateExcludeServiceEntryResponseSchema)` to create a new message.
|
|
8815
9074
|
*/
|
|
8816
9075
|
export const UpdateExcludeServiceEntryResponseSchema: GenMessage<UpdateExcludeServiceEntryResponse> = /*@__PURE__*/
|
|
8817
|
-
messageDesc(file_billing_v1_billing,
|
|
9076
|
+
messageDesc(file_billing_v1_billing, 231);
|
|
8818
9077
|
|
|
8819
9078
|
/**
|
|
8820
9079
|
* @generated from message blueapi.billing.v1.DeleteExcludeServiceEntryRequest
|
|
@@ -8861,7 +9120,7 @@ export type DeleteExcludeServiceEntryRequest = Message<"blueapi.billing.v1.Delet
|
|
|
8861
9120
|
* Use `create(DeleteExcludeServiceEntryRequestSchema)` to create a new message.
|
|
8862
9121
|
*/
|
|
8863
9122
|
export const DeleteExcludeServiceEntryRequestSchema: GenMessage<DeleteExcludeServiceEntryRequest> = /*@__PURE__*/
|
|
8864
|
-
messageDesc(file_billing_v1_billing,
|
|
9123
|
+
messageDesc(file_billing_v1_billing, 232);
|
|
8865
9124
|
|
|
8866
9125
|
/**
|
|
8867
9126
|
* @generated from message blueapi.billing.v1.DeleteExcludeServiceEntryResponse
|
|
@@ -8880,7 +9139,7 @@ export type DeleteExcludeServiceEntryResponse = Message<"blueapi.billing.v1.Dele
|
|
|
8880
9139
|
* Use `create(DeleteExcludeServiceEntryResponseSchema)` to create a new message.
|
|
8881
9140
|
*/
|
|
8882
9141
|
export const DeleteExcludeServiceEntryResponseSchema: GenMessage<DeleteExcludeServiceEntryResponse> = /*@__PURE__*/
|
|
8883
|
-
messageDesc(file_billing_v1_billing,
|
|
9142
|
+
messageDesc(file_billing_v1_billing, 233);
|
|
8884
9143
|
|
|
8885
9144
|
/**
|
|
8886
9145
|
* @generated from message blueapi.billing.v1.ListExcludeServicesRequest
|
|
@@ -8906,7 +9165,7 @@ export type ListExcludeServicesRequest = Message<"blueapi.billing.v1.ListExclude
|
|
|
8906
9165
|
* Use `create(ListExcludeServicesRequestSchema)` to create a new message.
|
|
8907
9166
|
*/
|
|
8908
9167
|
export const ListExcludeServicesRequestSchema: GenMessage<ListExcludeServicesRequest> = /*@__PURE__*/
|
|
8909
|
-
messageDesc(file_billing_v1_billing,
|
|
9168
|
+
messageDesc(file_billing_v1_billing, 234);
|
|
8910
9169
|
|
|
8911
9170
|
/**
|
|
8912
9171
|
* @generated from message blueapi.billing.v1.ListExcludeServicesResponse
|
|
@@ -8925,7 +9184,7 @@ export type ListExcludeServicesResponse = Message<"blueapi.billing.v1.ListExclud
|
|
|
8925
9184
|
* Use `create(ListExcludeServicesResponseSchema)` to create a new message.
|
|
8926
9185
|
*/
|
|
8927
9186
|
export const ListExcludeServicesResponseSchema: GenMessage<ListExcludeServicesResponse> = /*@__PURE__*/
|
|
8928
|
-
messageDesc(file_billing_v1_billing,
|
|
9187
|
+
messageDesc(file_billing_v1_billing, 235);
|
|
8929
9188
|
|
|
8930
9189
|
/**
|
|
8931
9190
|
* Represents a single service with its associated names and SKUs.
|
|
@@ -8967,7 +9226,7 @@ export type ServiceItem = Message<"blueapi.billing.v1.ServiceItem"> & {
|
|
|
8967
9226
|
* Use `create(ServiceItemSchema)` to create a new message.
|
|
8968
9227
|
*/
|
|
8969
9228
|
export const ServiceItemSchema: GenMessage<ServiceItem> = /*@__PURE__*/
|
|
8970
|
-
messageDesc(file_billing_v1_billing,
|
|
9229
|
+
messageDesc(file_billing_v1_billing, 236);
|
|
8971
9230
|
|
|
8972
9231
|
/**
|
|
8973
9232
|
* @generated from message blueapi.billing.v1.ListServicesRequest
|
|
@@ -8996,7 +9255,7 @@ export type ListServicesRequest = Message<"blueapi.billing.v1.ListServicesReques
|
|
|
8996
9255
|
* Use `create(ListServicesRequestSchema)` to create a new message.
|
|
8997
9256
|
*/
|
|
8998
9257
|
export const ListServicesRequestSchema: GenMessage<ListServicesRequest> = /*@__PURE__*/
|
|
8999
|
-
messageDesc(file_billing_v1_billing,
|
|
9258
|
+
messageDesc(file_billing_v1_billing, 237);
|
|
9000
9259
|
|
|
9001
9260
|
/**
|
|
9002
9261
|
* @generated from message blueapi.billing.v1.ListServicesResponse
|
|
@@ -9015,7 +9274,7 @@ export type ListServicesResponse = Message<"blueapi.billing.v1.ListServicesRespo
|
|
|
9015
9274
|
* Use `create(ListServicesResponseSchema)` to create a new message.
|
|
9016
9275
|
*/
|
|
9017
9276
|
export const ListServicesResponseSchema: GenMessage<ListServicesResponse> = /*@__PURE__*/
|
|
9018
|
-
messageDesc(file_billing_v1_billing,
|
|
9277
|
+
messageDesc(file_billing_v1_billing, 238);
|
|
9019
9278
|
|
|
9020
9279
|
/**
|
|
9021
9280
|
* @generated from message blueapi.billing.v1.BulkLinkAccountRequest
|
|
@@ -9064,7 +9323,7 @@ export type BulkLinkAccountRequest = Message<"blueapi.billing.v1.BulkLinkAccount
|
|
|
9064
9323
|
* Use `create(BulkLinkAccountRequestSchema)` to create a new message.
|
|
9065
9324
|
*/
|
|
9066
9325
|
export const BulkLinkAccountRequestSchema: GenMessage<BulkLinkAccountRequest> = /*@__PURE__*/
|
|
9067
|
-
messageDesc(file_billing_v1_billing,
|
|
9326
|
+
messageDesc(file_billing_v1_billing, 239);
|
|
9068
9327
|
|
|
9069
9328
|
/**
|
|
9070
9329
|
* @generated from message blueapi.billing.v1.BulkLinkAccountError
|
|
@@ -9104,7 +9363,7 @@ export type BulkLinkAccountError = Message<"blueapi.billing.v1.BulkLinkAccountEr
|
|
|
9104
9363
|
* Use `create(BulkLinkAccountErrorSchema)` to create a new message.
|
|
9105
9364
|
*/
|
|
9106
9365
|
export const BulkLinkAccountErrorSchema: GenMessage<BulkLinkAccountError> = /*@__PURE__*/
|
|
9107
|
-
messageDesc(file_billing_v1_billing,
|
|
9366
|
+
messageDesc(file_billing_v1_billing, 240);
|
|
9108
9367
|
|
|
9109
9368
|
/**
|
|
9110
9369
|
* Metadata for the BulkLinkAccount long-running operation.
|
|
@@ -9175,7 +9434,7 @@ export type BulkLinkAccountMetadata = Message<"blueapi.billing.v1.BulkLinkAccoun
|
|
|
9175
9434
|
* Use `create(BulkLinkAccountMetadataSchema)` to create a new message.
|
|
9176
9435
|
*/
|
|
9177
9436
|
export const BulkLinkAccountMetadataSchema: GenMessage<BulkLinkAccountMetadata> = /*@__PURE__*/
|
|
9178
|
-
messageDesc(file_billing_v1_billing,
|
|
9437
|
+
messageDesc(file_billing_v1_billing, 241);
|
|
9179
9438
|
|
|
9180
9439
|
/**
|
|
9181
9440
|
* Request for BulkTagBillingGroup.
|
|
@@ -9205,7 +9464,7 @@ export type BulkTagBillingGroupRequest = Message<"blueapi.billing.v1.BulkTagBill
|
|
|
9205
9464
|
* Use `create(BulkTagBillingGroupRequestSchema)` to create a new message.
|
|
9206
9465
|
*/
|
|
9207
9466
|
export const BulkTagBillingGroupRequestSchema: GenMessage<BulkTagBillingGroupRequest> = /*@__PURE__*/
|
|
9208
|
-
messageDesc(file_billing_v1_billing,
|
|
9467
|
+
messageDesc(file_billing_v1_billing, 242);
|
|
9209
9468
|
|
|
9210
9469
|
/**
|
|
9211
9470
|
* Describes a single failed row in a BulkTagBillingGroup operation.
|
|
@@ -9261,7 +9520,7 @@ export type BulkTagBillingGroupError = Message<"blueapi.billing.v1.BulkTagBillin
|
|
|
9261
9520
|
* Use `create(BulkTagBillingGroupErrorSchema)` to create a new message.
|
|
9262
9521
|
*/
|
|
9263
9522
|
export const BulkTagBillingGroupErrorSchema: GenMessage<BulkTagBillingGroupError> = /*@__PURE__*/
|
|
9264
|
-
messageDesc(file_billing_v1_billing,
|
|
9523
|
+
messageDesc(file_billing_v1_billing, 243);
|
|
9265
9524
|
|
|
9266
9525
|
/**
|
|
9267
9526
|
* Metadata for the BulkTagBillingGroup long-running operation.
|
|
@@ -9332,7 +9591,7 @@ export type BulkTagBillingGroupMetadata = Message<"blueapi.billing.v1.BulkTagBil
|
|
|
9332
9591
|
* Use `create(BulkTagBillingGroupMetadataSchema)` to create a new message.
|
|
9333
9592
|
*/
|
|
9334
9593
|
export const BulkTagBillingGroupMetadataSchema: GenMessage<BulkTagBillingGroupMetadata> = /*@__PURE__*/
|
|
9335
|
-
messageDesc(file_billing_v1_billing,
|
|
9594
|
+
messageDesc(file_billing_v1_billing, 244);
|
|
9336
9595
|
|
|
9337
9596
|
/**
|
|
9338
9597
|
* @generated from message blueapi.billing.v1.GetBillingGroupInvoiceLayoutConfigRequest
|
|
@@ -9351,7 +9610,7 @@ export type GetBillingGroupInvoiceLayoutConfigRequest = Message<"blueapi.billing
|
|
|
9351
9610
|
* Use `create(GetBillingGroupInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9352
9611
|
*/
|
|
9353
9612
|
export const GetBillingGroupInvoiceLayoutConfigRequestSchema: GenMessage<GetBillingGroupInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9354
|
-
messageDesc(file_billing_v1_billing,
|
|
9613
|
+
messageDesc(file_billing_v1_billing, 245);
|
|
9355
9614
|
|
|
9356
9615
|
/**
|
|
9357
9616
|
* @generated from message blueapi.billing.v1.GetBillingGroupInvoiceLayoutConfigResponse
|
|
@@ -9382,7 +9641,7 @@ export type GetBillingGroupInvoiceLayoutConfigResponse = Message<"blueapi.billin
|
|
|
9382
9641
|
* Use `create(GetBillingGroupInvoiceLayoutConfigResponseSchema)` to create a new message.
|
|
9383
9642
|
*/
|
|
9384
9643
|
export const GetBillingGroupInvoiceLayoutConfigResponseSchema: GenMessage<GetBillingGroupInvoiceLayoutConfigResponse> = /*@__PURE__*/
|
|
9385
|
-
messageDesc(file_billing_v1_billing,
|
|
9644
|
+
messageDesc(file_billing_v1_billing, 246);
|
|
9386
9645
|
|
|
9387
9646
|
/**
|
|
9388
9647
|
* @generated from message blueapi.billing.v1.SetBillingGroupInvoiceLayoutConfigRequest
|
|
@@ -9408,7 +9667,7 @@ export type SetBillingGroupInvoiceLayoutConfigRequest = Message<"blueapi.billing
|
|
|
9408
9667
|
* Use `create(SetBillingGroupInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9409
9668
|
*/
|
|
9410
9669
|
export const SetBillingGroupInvoiceLayoutConfigRequestSchema: GenMessage<SetBillingGroupInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9411
|
-
messageDesc(file_billing_v1_billing,
|
|
9670
|
+
messageDesc(file_billing_v1_billing, 247);
|
|
9412
9671
|
|
|
9413
9672
|
/**
|
|
9414
9673
|
* @generated from message blueapi.billing.v1.CreateInvoiceLayoutConfigRequest
|
|
@@ -9434,7 +9693,7 @@ export type CreateInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.Creat
|
|
|
9434
9693
|
* Use `create(CreateInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9435
9694
|
*/
|
|
9436
9695
|
export const CreateInvoiceLayoutConfigRequestSchema: GenMessage<CreateInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9437
|
-
messageDesc(file_billing_v1_billing,
|
|
9696
|
+
messageDesc(file_billing_v1_billing, 248);
|
|
9438
9697
|
|
|
9439
9698
|
/**
|
|
9440
9699
|
* @generated from message blueapi.billing.v1.CreateInvoiceLayoutConfigResponse
|
|
@@ -9453,7 +9712,7 @@ export type CreateInvoiceLayoutConfigResponse = Message<"blueapi.billing.v1.Crea
|
|
|
9453
9712
|
* Use `create(CreateInvoiceLayoutConfigResponseSchema)` to create a new message.
|
|
9454
9713
|
*/
|
|
9455
9714
|
export const CreateInvoiceLayoutConfigResponseSchema: GenMessage<CreateInvoiceLayoutConfigResponse> = /*@__PURE__*/
|
|
9456
|
-
messageDesc(file_billing_v1_billing,
|
|
9715
|
+
messageDesc(file_billing_v1_billing, 249);
|
|
9457
9716
|
|
|
9458
9717
|
/**
|
|
9459
9718
|
* @generated from message blueapi.billing.v1.UpdateInvoiceLayoutConfigRequest
|
|
@@ -9486,7 +9745,7 @@ export type UpdateInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.Updat
|
|
|
9486
9745
|
* Use `create(UpdateInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9487
9746
|
*/
|
|
9488
9747
|
export const UpdateInvoiceLayoutConfigRequestSchema: GenMessage<UpdateInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9489
|
-
messageDesc(file_billing_v1_billing,
|
|
9748
|
+
messageDesc(file_billing_v1_billing, 250);
|
|
9490
9749
|
|
|
9491
9750
|
/**
|
|
9492
9751
|
* @generated from message blueapi.billing.v1.ReadInvoiceLayoutConfigRequest
|
|
@@ -9499,7 +9758,7 @@ export type ReadInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.ReadInv
|
|
|
9499
9758
|
* Use `create(ReadInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9500
9759
|
*/
|
|
9501
9760
|
export const ReadInvoiceLayoutConfigRequestSchema: GenMessage<ReadInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9502
|
-
messageDesc(file_billing_v1_billing,
|
|
9761
|
+
messageDesc(file_billing_v1_billing, 251);
|
|
9503
9762
|
|
|
9504
9763
|
/**
|
|
9505
9764
|
* @generated from message blueapi.billing.v1.ReadInvoiceLayoutConfigResponse
|
|
@@ -9530,7 +9789,7 @@ export type ReadInvoiceLayoutConfigResponse = Message<"blueapi.billing.v1.ReadIn
|
|
|
9530
9789
|
* Use `create(ReadInvoiceLayoutConfigResponseSchema)` to create a new message.
|
|
9531
9790
|
*/
|
|
9532
9791
|
export const ReadInvoiceLayoutConfigResponseSchema: GenMessage<ReadInvoiceLayoutConfigResponse> = /*@__PURE__*/
|
|
9533
|
-
messageDesc(file_billing_v1_billing,
|
|
9792
|
+
messageDesc(file_billing_v1_billing, 252);
|
|
9534
9793
|
|
|
9535
9794
|
/**
|
|
9536
9795
|
* @generated from message blueapi.billing.v1.DeleteBillingGroupInvoiceLayoutConfigRequest
|
|
@@ -9549,7 +9808,7 @@ export type DeleteBillingGroupInvoiceLayoutConfigRequest = Message<"blueapi.bill
|
|
|
9549
9808
|
* Use `create(DeleteBillingGroupInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9550
9809
|
*/
|
|
9551
9810
|
export const DeleteBillingGroupInvoiceLayoutConfigRequestSchema: GenMessage<DeleteBillingGroupInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9552
|
-
messageDesc(file_billing_v1_billing,
|
|
9811
|
+
messageDesc(file_billing_v1_billing, 253);
|
|
9553
9812
|
|
|
9554
9813
|
/**
|
|
9555
9814
|
* @generated from message blueapi.billing.v1.DeleteInvoiceLayoutConfigRequest
|
|
@@ -9568,7 +9827,7 @@ export type DeleteInvoiceLayoutConfigRequest = Message<"blueapi.billing.v1.Delet
|
|
|
9568
9827
|
* Use `create(DeleteInvoiceLayoutConfigRequestSchema)` to create a new message.
|
|
9569
9828
|
*/
|
|
9570
9829
|
export const DeleteInvoiceLayoutConfigRequestSchema: GenMessage<DeleteInvoiceLayoutConfigRequest> = /*@__PURE__*/
|
|
9571
|
-
messageDesc(file_billing_v1_billing,
|
|
9830
|
+
messageDesc(file_billing_v1_billing, 254);
|
|
9572
9831
|
|
|
9573
9832
|
/**
|
|
9574
9833
|
* @generated from message blueapi.billing.v1.ListInvoiceLayoutConfigBillingGroupsRequest
|
|
@@ -9587,7 +9846,7 @@ export type ListInvoiceLayoutConfigBillingGroupsRequest = Message<"blueapi.billi
|
|
|
9587
9846
|
* Use `create(ListInvoiceLayoutConfigBillingGroupsRequestSchema)` to create a new message.
|
|
9588
9847
|
*/
|
|
9589
9848
|
export const ListInvoiceLayoutConfigBillingGroupsRequestSchema: GenMessage<ListInvoiceLayoutConfigBillingGroupsRequest> = /*@__PURE__*/
|
|
9590
|
-
messageDesc(file_billing_v1_billing,
|
|
9849
|
+
messageDesc(file_billing_v1_billing, 255);
|
|
9591
9850
|
|
|
9592
9851
|
/**
|
|
9593
9852
|
* @generated from message blueapi.billing.v1.ListInvoiceLayoutConfigBillingGroupsResponse
|
|
@@ -9606,7 +9865,7 @@ export type ListInvoiceLayoutConfigBillingGroupsResponse = Message<"blueapi.bill
|
|
|
9606
9865
|
* Use `create(ListInvoiceLayoutConfigBillingGroupsResponseSchema)` to create a new message.
|
|
9607
9866
|
*/
|
|
9608
9867
|
export const ListInvoiceLayoutConfigBillingGroupsResponseSchema: GenMessage<ListInvoiceLayoutConfigBillingGroupsResponse> = /*@__PURE__*/
|
|
9609
|
-
messageDesc(file_billing_v1_billing,
|
|
9868
|
+
messageDesc(file_billing_v1_billing, 256);
|
|
9610
9869
|
|
|
9611
9870
|
/**
|
|
9612
9871
|
* Billing service definition.
|
|
@@ -10470,7 +10729,7 @@ export const Billing: GenService<{
|
|
|
10470
10729
|
output: typeof EmptySchema;
|
|
10471
10730
|
},
|
|
10472
10731
|
/**
|
|
10473
|
-
* Returns the customer details and its tags.
|
|
10732
|
+
* Returns the customer details and its tags.
|
|
10474
10733
|
* Port for: m/ripple/tags/vendor/{vendor}?type={type}
|
|
10475
10734
|
*
|
|
10476
10735
|
* @generated from rpc blueapi.billing.v1.Billing.GetTags
|
|
@@ -10480,6 +10739,17 @@ export const Billing: GenService<{
|
|
|
10480
10739
|
input: typeof GetTagsRequestSchema;
|
|
10481
10740
|
output: typeof TagDataSchema;
|
|
10482
10741
|
},
|
|
10742
|
+
/**
|
|
10743
|
+
* Returns one page of the distinct values for a single customer's tag key, for
|
|
10744
|
+
* drilling down into a key beyond GetTags' per-key cap (see Tags.truncated).
|
|
10745
|
+
*
|
|
10746
|
+
* @generated from rpc blueapi.billing.v1.Billing.ListTagValues
|
|
10747
|
+
*/
|
|
10748
|
+
listTagValues: {
|
|
10749
|
+
methodKind: "unary";
|
|
10750
|
+
input: typeof ListTagValuesRequestSchema;
|
|
10751
|
+
output: typeof ListTagValuesResponseSchema;
|
|
10752
|
+
},
|
|
10483
10753
|
/**
|
|
10484
10754
|
* Creates new customfield
|
|
10485
10755
|
*
|
|
@@ -10611,17 +10881,19 @@ export const Billing: GenService<{
|
|
|
10611
10881
|
output: typeof MonthlyMiscFeeImportTemplateSchema;
|
|
10612
10882
|
},
|
|
10613
10883
|
/**
|
|
10614
|
-
* Validates or imports monthly
|
|
10884
|
+
* Validates or imports monthly FreeFormItems from CSV through invoice settings. The CSV
|
|
10885
|
+
* supplies each row's own billing month, billing group, and vendor; there is no
|
|
10886
|
+
* request-level billing_month or vendor to scope the call.
|
|
10615
10887
|
*
|
|
10616
10888
|
* @generated from rpc blueapi.billing.v1.Billing.BulkImportMonthlyMiscFees
|
|
10617
10889
|
*/
|
|
10618
10890
|
bulkImportMonthlyMiscFees: {
|
|
10619
10891
|
methodKind: "unary";
|
|
10620
10892
|
input: typeof BulkImportMonthlyMiscFeesRequestSchema;
|
|
10621
|
-
output: typeof
|
|
10893
|
+
output: typeof MonthlyMiscFeeImportResultSchema;
|
|
10622
10894
|
},
|
|
10623
10895
|
/**
|
|
10624
|
-
* Lists monthly
|
|
10896
|
+
* Lists effective monthly FreeFormItems.
|
|
10625
10897
|
*
|
|
10626
10898
|
* @generated from rpc blueapi.billing.v1.Billing.ListMonthlyMiscFees
|
|
10627
10899
|
*/
|
|
@@ -10631,47 +10903,7 @@ export const Billing: GenService<{
|
|
|
10631
10903
|
output: typeof ListMonthlyMiscFeesResponseSchema;
|
|
10632
10904
|
},
|
|
10633
10905
|
/**
|
|
10634
|
-
*
|
|
10635
|
-
*
|
|
10636
|
-
* @generated from rpc blueapi.billing.v1.Billing.GetMonthlyMiscFee
|
|
10637
|
-
*/
|
|
10638
|
-
getMonthlyMiscFee: {
|
|
10639
|
-
methodKind: "unary";
|
|
10640
|
-
input: typeof GetMonthlyMiscFeeRequestSchema;
|
|
10641
|
-
output: typeof MonthlyMiscFeeSchema;
|
|
10642
|
-
},
|
|
10643
|
-
/**
|
|
10644
|
-
* Exports monthly miscellaneous fee rows using the list filters.
|
|
10645
|
-
*
|
|
10646
|
-
* @generated from rpc blueapi.billing.v1.Billing.ExportMonthlyMiscFees
|
|
10647
|
-
*/
|
|
10648
|
-
exportMonthlyMiscFees: {
|
|
10649
|
-
methodKind: "unary";
|
|
10650
|
-
input: typeof ExportMonthlyMiscFeesRequestSchema;
|
|
10651
|
-
output: typeof ExportMonthlyMiscFeesResponseSchema;
|
|
10652
|
-
},
|
|
10653
|
-
/**
|
|
10654
|
-
* Gets a completed monthly miscellaneous fee import result.
|
|
10655
|
-
*
|
|
10656
|
-
* @generated from rpc blueapi.billing.v1.Billing.GetMonthlyMiscFeeImport
|
|
10657
|
-
*/
|
|
10658
|
-
getMonthlyMiscFeeImport: {
|
|
10659
|
-
methodKind: "unary";
|
|
10660
|
-
input: typeof GetMonthlyMiscFeeImportRequestSchema;
|
|
10661
|
-
output: typeof MonthlyMiscFeeImportResultSchema;
|
|
10662
|
-
},
|
|
10663
|
-
/**
|
|
10664
|
-
* Creates or updates a monthly miscellaneous fee row.
|
|
10665
|
-
*
|
|
10666
|
-
* @generated from rpc blueapi.billing.v1.Billing.UpsertMonthlyMiscFee
|
|
10667
|
-
*/
|
|
10668
|
-
upsertMonthlyMiscFee: {
|
|
10669
|
-
methodKind: "unary";
|
|
10670
|
-
input: typeof UpsertMonthlyMiscFeeRequestSchema;
|
|
10671
|
-
output: typeof MonthlyMiscFeeSchema;
|
|
10672
|
-
},
|
|
10673
|
-
/**
|
|
10674
|
-
* Deletes a monthly miscellaneous fee row.
|
|
10906
|
+
* Deletes one monthly FreeFormItem through invoice settings.
|
|
10675
10907
|
*
|
|
10676
10908
|
* @generated from rpc blueapi.billing.v1.Billing.DeleteMonthlyMiscFee
|
|
10677
10909
|
*/
|
|
@@ -11025,6 +11257,20 @@ export const Billing: GenService<{
|
|
|
11025
11257
|
input: typeof BulkCreateBillingGroupRequestSchema;
|
|
11026
11258
|
output: typeof OperationSchema;
|
|
11027
11259
|
},
|
|
11260
|
+
/**
|
|
11261
|
+
* Update invoice settings on existing billing groups in bulk from a CSV file.
|
|
11262
|
+
* Unlike BulkCreateBillingGroup, a blank CSV cell preserves the billing group's existing
|
|
11263
|
+
* value for that setting rather than clearing it, and a row referencing a billing group
|
|
11264
|
+
* that does not exist fails only that row (no implicit create).
|
|
11265
|
+
* Returns a long-running operation. Poll status via the Operations service (GET /ops/v1/{name}).
|
|
11266
|
+
*
|
|
11267
|
+
* @generated from rpc blueapi.billing.v1.Billing.BulkUpdateBillingGroup
|
|
11268
|
+
*/
|
|
11269
|
+
bulkUpdateBillingGroup: {
|
|
11270
|
+
methodKind: "unary";
|
|
11271
|
+
input: typeof BulkUpdateBillingGroupRequestSchema;
|
|
11272
|
+
output: typeof OperationSchema;
|
|
11273
|
+
},
|
|
11028
11274
|
/**
|
|
11029
11275
|
* Create Exclude Service Entry
|
|
11030
11276
|
*
|