@raystack/proton 0.1.0-ccaf27e487cbe97a6ac7249e7382f2d016c3f5fa → 0.1.0-d7ccfeef8ed0a304b5da3537c1b2bb5e7d99c77c

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.
@@ -9,7 +9,7 @@ import { file_google_api_field_behavior } from "../../../google/api/field_behavi
9
9
  import type { Timestamp } from "@bufbuild/protobuf/wkt";
10
10
  import { file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
11
11
  import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
12
- import type { AuditLog, AuditRecord, AuditRecordActor, AuditRecordResource, AuditRecordTarget, BillingAccount, BillingAccount_Address, BillingAccount_Balance, BillingAccount_Tax, BillingAccountDetails, BillingTransaction, CheckoutProductBody, CheckoutSession, CheckoutSetupBody, CheckoutSubscriptionBody, Domain, Feature, Group, Invitation, Invoice, JSONWebKey, KeyCredential, MetaSchema, Namespace, Organization, OrganizationKyc, PaymentMethod, Permission, Plan, Policy, Preference, PreferenceRequestBody, PreferenceTrait, Price, Product, Product_BehaviorConfig, Project, Relation, Resource, Role, RoleRequestBody, SecretCredential, ServiceUser, ServiceUserJWK, ServiceUserToken, Session, Subscription, Subscription_Phase, Usage, User } from "./models_pb";
12
+ import type { AuditRecord, AuditRecordActor, AuditRecordResource, AuditRecordTarget, BillingAccount, BillingAccount_Address, BillingAccount_Balance, BillingAccount_Tax, BillingAccountDetails, BillingTransaction, CheckoutProductBody, CheckoutSession, CheckoutSetupBody, CheckoutSubscriptionBody, Domain, Feature, Group, Invitation, Invoice, JSONWebKey, KeyCredential, MetaSchema, Namespace, Organization, OrganizationKyc, PaymentMethod, Permission, Plan, Policy, Preference, PreferenceRequestBody, PreferenceTrait, Price, Product, Product_BehaviorConfig, Project, Relation, Resource, Role, RoleRequestBody, SecretCredential, ServiceUser, ServiceUserJWK, ServiceUserToken, Session, Session_Meta, Subscription, Subscription_Phase, Usage, User } from "./models_pb";
13
13
  import { file_raystack_frontier_v1beta1_models } from "./models_pb";
14
14
  import { file_validate_validate } from "../../../validate/validate_pb";
15
15
  import type { JsonObject, Message } from "@bufbuild/protobuf";
@@ -18,7 +18,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
18
18
  * Describes the file raystack/frontier/v1beta1/frontier.proto.
19
19
  */
20
20
  export const file_raystack_frontier_v1beta1_frontier: GenFile = /*@__PURE__*/
21
- fileDesc("CihyYXlzdGFjay9mcm9udGllci92MWJldGExL2Zyb250aWVyLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIokCChlCaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFZW1haWwYAiABKAkSDQoFcGhvbmUYAyABKAkSQgoHYWRkcmVzcxgEIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQWRkcmVzcxIQCghjdXJyZW5jeRgFIAEoCRI/Cgh0YXhfZGF0YRgGIAMoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuVGF4EikKCG1ldGFkYXRhGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKVAQobQ3JlYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARJMCgRib2R5GAIgASgLMjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5Qgj6QgWKAQIQARIPCgdvZmZsaW5lGAMgASgIImIKHENyZWF0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudCKUAQoYR2V0QmlsbGluZ0FjY291bnRSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQARIcChR3aXRoX3BheW1lbnRfbWV0aG9kcxgDIAEoCBIcChR3aXRoX2JpbGxpbmdfZGV0YWlscxgEIAEoCBIOCgZleHBhbmQYZSADKAki7QEKGUdldEJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudBJBCg9wYXltZW50X21ldGhvZHMYAiADKAsyKC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBheW1lbnRNZXRob2QSSQoPYmlsbGluZ19kZXRhaWxzGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudERldGFpbHMikAEKG1VwZGF0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABEkIKBGJvZHkYAyABKAsyNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50UmVxdWVzdEJvZHkiYgocVXBkYXRlQmlsbGluZ0FjY291bnRSZXNwb25zZRJCCg9iaWxsaW5nX2FjY291bnQYASABKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50Ik4KHVJlZ2lzdGVyQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiIAoeUmVnaXN0ZXJCaWxsaW5nQWNjb3VudFJlc3BvbnNlIkUKGkxpc3RCaWxsaW5nQWNjb3VudHNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARIOCgZleHBhbmQYZSADKAkiYgobTGlzdEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IkwKG0RlbGV0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABIh4KHERlbGV0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiTAobRW5hYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHgocRW5hYmxlQmlsbGluZ0FjY291bnRSZXNwb25zZSJNChxEaXNhYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHwodRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiSQoYR2V0QmlsbGluZ0JhbGFuY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiXwoZR2V0QmlsbGluZ0JhbGFuY2VSZXNwb25zZRJCCgdiYWxhbmNlGAEgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudC5CYWxhbmNlIlwKEUhhc1RyaWFsZWRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAESGAoHcGxhbl9pZBgDIAEoCUIH+kIEcgIQASIlChJIYXNUcmlhbGVkUmVzcG9uc2USDwoHdHJpYWxlZBgBIAEoCCKSAQoZQ3JlYXRlQmlsbGluZ1VzYWdlUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKcHJvamVjdF9pZBgEIAEoCRIwCgZ1c2FnZXMYAyADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzYWdlIhwKGkNyZWF0ZUJpbGxpbmdVc2FnZVJlc3BvbnNlIvkBCh5MaXN0QmlsbGluZ1RyYW5zYWN0aW9uc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEi0KBXNpbmNlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICGAESLwoLc3RhcnRfcmFuZ2UYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWVuZF9yYW5nZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGZXhwYW5kGGUgAygJImYKH0xpc3RCaWxsaW5nVHJhbnNhY3Rpb25zUmVzcG9uc2USQwoMdHJhbnNhY3Rpb25zGAEgAygLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nVHJhbnNhY3Rpb24iWAofVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHAoKYmlsbGluZ19pZBgCIAEoCUII+kIFcgOwAQEiZgogVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVzcG9uc2USQgoHZGViaXRlZBgBIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQmFsYW5jZSJ3ChZHZXRTdWJzY3JpcHRpb25SZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQARIOCgZleHBhbmQYZSADKAkiWAoXR2V0U3Vic2NyaXB0aW9uUmVzcG9uc2USPQoMc3Vic2NyaXB0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TdWJzY3JpcHRpb24igQEKGExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESDQoFc3RhdGUYAyABKAkSDAoEcGxhbhgEIAEoCRIOCgZleHBhbmQYZSADKAkiWwoZTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZRI+Cg1zdWJzY3JpcHRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TdWJzY3JpcHRpb24ilQEKGVVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEhMKAmlkGAMgASgJQgf6QgRyAhABEikKCG1ldGFkYXRhGBQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJbChpVcGRhdGVTdWJzY3JpcHRpb25SZXNwb25zZRI9CgxzdWJzY3JpcHRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbiKuAwoZQ2hhbmdlU3Vic2NyaXB0aW9uUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAESEAoEcGxhbhgEIAEoCUICGAESFQoJaW1tZWRpYXRlGAUgASgIQgIYARJWCgtwbGFuX2NoYW5nZRgGIAEoCzI/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hhbmdlU3Vic2NyaXB0aW9uUmVxdWVzdC5QbGFuQ2hhbmdlSAASWAoMcGhhc2VfY2hhbmdlGAcgASgLMkAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0LlBoYXNlQ2hhbmdlSAAaLQoKUGxhbkNoYW5nZRIMCgRwbGFuGAEgASgJEhEKCWltbWVkaWF0ZRgCIAEoCBouCgtQaGFzZUNoYW5nZRIfChdjYW5jZWxfdXBjb21pbmdfY2hhbmdlcxgBIAEoCEIICgZjaGFuZ2UiWgoaQ2hhbmdlU3Vic2NyaXB0aW9uUmVzcG9uc2USPAoFcGhhc2UYASABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlN1YnNjcmlwdGlvbi5QaGFzZSJ9ChlDYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQARIRCglpbW1lZGlhdGUYBCABKAgiHAoaQ2FuY2VsU3Vic2NyaXB0aW9uUmVzcG9uc2UiEgoQTGlzdFBsYW5zUmVxdWVzdCJDChFMaXN0UGxhbnNSZXNwb25zZRIuCgVwbGFucxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiJ/Ch5DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlcXVlc3QSDgoGb3JnX2lkGAEgASgJEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEhIKCnByb2plY3RfaWQYBCABKAkSGAoHZmVhdHVyZRgDIAEoCUIH+kIEcgIQASIxCh9DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoCCJRCh1DaGVja0NyZWRpdEVudGl0bGVtZW50UmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSFwoGYW1vdW50GAIgASgDQgf6QgQiAiAAIjAKHkNoZWNrQ3JlZGl0RW50aXRsZW1lbnRSZXNwb25zZRIOCgZzdGF0dXMYASABKAgi0gIKFUNyZWF0ZUNoZWNrb3V0UmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEwoLc3VjY2Vzc191cmwYAyABKAkSEgoKY2FuY2VsX3VybBgEIAEoCRJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keRJACgpzZXR1cF9ib2R5GAwgASgLMiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNldHVwQm9keSJeChZDcmVhdGVDaGVja291dFJlc3BvbnNlEkQKEGNoZWNrb3V0X3Nlc3Npb24YASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiJQChRMaXN0Q2hlY2tvdXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQEiXgoVTGlzdENoZWNrb3V0c1Jlc3BvbnNlEkUKEWNoZWNrb3V0X3Nlc3Npb25zGAEgAygLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNlc3Npb24iYwoSR2V0Q2hlY2tvdXRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQASJbChNHZXRDaGVja291dFJlc3BvbnNlEkQKEGNoZWNrb3V0X3Nlc3Npb24YASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiL7AgoSUHJvZHVjdFJlcXVlc3RCb2R5EhUKBG5hbWUYASABKAlCB/pCBHICEAMSDQoFdGl0bGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHcGxhbl9pZBgEIAEoCRIwCgZwcmljZXMYBSADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByaWNlEjQKCGJlaGF2aW9yGAggASgJQiL6Qh9yHVIFYmFzaWNSB2NyZWRpdHNSCHBlcl9zZWF00AEBEjQKCGZlYXR1cmVzGAkgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlEkoKD2JlaGF2aW9yX2NvbmZpZxgKIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdC5CZWhhdmlvckNvbmZpZxIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgHEAgiXQoUQ3JlYXRlUHJvZHVjdFJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdFJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCIoChFHZXRQcm9kdWN0UmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJJChJHZXRQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCIVChNMaXN0UHJvZHVjdHNSZXF1ZXN0IkwKFExpc3RQcm9kdWN0c1Jlc3BvbnNlEjQKCHByb2R1Y3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0ImgKFFVwZGF0ZVByb2R1Y3RSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3RSZXF1ZXN0Qm9keSJMChVVcGRhdGVQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCJ6ChJGZWF0dXJlUmVxdWVzdEJvZHkSFQoEbmFtZRgBIAEoCUIH+kIEcgIQAxINCgV0aXRsZRgCIAEoCRITCgtwcm9kdWN0X2lkcxgDIAMoCRIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiXQoUQ3JlYXRlRmVhdHVyZVJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVGZWF0dXJlUmVzcG9uc2USMwoHZmVhdHVyZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSIoChFHZXRGZWF0dXJlUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJJChJHZXRGZWF0dXJlUmVzcG9uc2USMwoHZmVhdHVyZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSJoChRVcGRhdGVGZWF0dXJlUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlUmVxdWVzdEJvZHkiTAoVVXBkYXRlRmVhdHVyZVJlc3BvbnNlEjMKB2ZlYXR1cmUYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmUiFQoTTGlzdEZlYXR1cmVzUmVxdWVzdCJMChRMaXN0RmVhdHVyZXNSZXNwb25zZRI0CghmZWF0dXJlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSKDAgoPUGxhblJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFdGl0bGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSNAoIcHJvZHVjdHMYBCADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QSLwoIaW50ZXJ2YWwYBSABKAlCHfpCGnIYUgNkYXlSBHdlZWtSBW1vbnRoUgR5ZWFyEhgKEG9uX3N0YXJ0X2NyZWRpdHMYBiABKAMSEgoKdHJpYWxfZGF5cxgHIAEoAxIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoRQ3JlYXRlUGxhblJlcXVlc3QSQgoEYm9keRgBIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhblJlcXVlc3RCb2R5Qgj6QgWKAQIQASJDChJDcmVhdGVQbGFuUmVzcG9uc2USLQoEcGxhbhgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiIlCg5HZXRQbGFuUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJACg9HZXRQbGFuUmVzcG9uc2USLQoEcGxhbhgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiJiChFVcGRhdGVQbGFuUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QbGFuUmVxdWVzdEJvZHkiQwoSVXBkYXRlUGxhblJlc3BvbnNlEi0KBHBsYW4YASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW4ifAoTTGlzdEludm9pY2VzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESGwoTbm9uemVyb19hbW91bnRfb25seRgDIAEoCBIOCgZleHBhbmQYZSADKAkiTAoUTGlzdEludm9pY2VzUmVzcG9uc2USNAoIaW52b2ljZXMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludm9pY2UiVQoZR2V0VXBjb21pbmdJbnZvaWNlUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQEiUQoaR2V0VXBjb21pbmdJbnZvaWNlUmVzcG9uc2USMwoHaW52b2ljZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZSIQCg5HZXRKV0tzUmVxdWVzdCJGCg9HZXRKV0tzUmVzcG9uc2USMwoEa2V5cxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSlNPTldlYktleSITChFBdXRoTG9nb3V0UmVxdWVzdCIUChJBdXRoTG9nb3V0UmVzcG9uc2UieQoTQXV0aENhbGxiYWNrUmVxdWVzdBIVCg1zdHJhdGVneV9uYW1lGAEgASgJEg0KBXN0YXRlGAIgASgJEgwKBGNvZGUYAyABKAkSLgoNc3RhdGVfb3B0aW9ucxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiFgoUQXV0aENhbGxiYWNrUmVzcG9uc2Ui3gUKE0F1dGhlbnRpY2F0ZVJlcXVlc3QSZAoNc3RyYXRlZ3lfbmFtZRgBIAEoCUJNkkFKMkhOYW1lIG9mIHRoZSBzdHJhdGVneSB0byB1c2UgZm9yIGF1dGhlbnRpY2F0aW9uLjxici8+ICpFeGFtcGxlOiogYGdvb2dsZWASagoQcmVkaXJlY3Rfb25zdGFydBgCIAEoCEJQkkFNMktJZiBzZXQgdG8gdHJ1ZSwgbG9jYXRpb24gaGVhZGVyIHdpbGwgYmUgc2V0IGZvciByZWRpcmVjdCB0byBzdGFydCBhdXRoIGZsb3cSeAoJcmV0dXJuX3RvGAMgASgJQmWSQWIyYFVSTCB0byByZWRpcmVjdCBhZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uLjxici8+ICpFeGFtcGxlOipgImh0dHBzOi8vZnJvbnRpZXIuZXhhbXBsZS5jb20iYBJuCgVlbWFpbBgEIAEoCUJfkkFcMlpFbWFpbCBvZiB0aGUgdXNlciB0byBhdXRoZW50aWNhdGUuIFVzZWQgZm9yIG1hZ2ljIGxpbmtzLjxici8+ICpFeGFtcGxlOipgZXhhbXBsZUBhY21lLm9yZ2ASigIKDGNhbGxiYWNrX3VybBgFIAEoCULzAZJB7wEy7AFIb3N0IHdoaWNoIHNob3VsZCBoYW5kbGUgdGhlIGNhbGwgdG8gZmluaXNoIGF1dGhlbnRpY2F0aW9uIGZsb3csIGZvciBtb3N0IGNhc2VzIGl0IGNvdWxkIGJlIGhvc3Qgb2YgZnJvbnRpZXIgYnV0IGluIGNhc2Ugb2YgcHJveGllcywgdGhpcyB3aWxsIGJlIHByb3h5IHB1YmxpYyBlbmRwb2ludC48YnIvPiAqRXhhbXBsZToqYGh0dHBzOi8vZnJvbnRpZXIuZXhhbXBsZS5jb20vdjFiZXRhMS9hdXRoL2NhbGxiYWNrYCJnChRBdXRoZW50aWNhdGVSZXNwb25zZRIQCghlbmRwb2ludBgBIAEoCRINCgVzdGF0ZRgCIAEoCRIuCg1zdGF0ZV9vcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJFCgxBdXRoU3RyYXRlZ3kSDAoEbmFtZRgBIAEoCRInCgZwYXJhbXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IhsKGUxpc3RBdXRoU3RyYXRlZ2llc1JlcXVlc3QiWQoaTGlzdEF1dGhTdHJhdGVnaWVzUmVzcG9uc2USOwoKc3RyYXRlZ2llcxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aFN0cmF0ZWd5ImMKEEF1dGhUb2tlblJlcXVlc3QSEgoKZ3JhbnRfdHlwZRgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkSFQoNY2xpZW50X3NlY3JldBgDIAEoCRIRCglhc3NlcnRpb24YBCABKAkiPQoRQXV0aFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhIKCnRva2VuX3R5cGUYAiABKAki8wsKD1VzZXJSZXF1ZXN0Qm9keRLGAgoEbmFtZRgBIAEoCUK3ApJBjAIyiQJUaGUgbmFtZSBvZiB0aGUgdXNlci4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYW5kIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlci4gSWYgbm90IHByb3ZpZGVkLCBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIG5hbWUgZnJvbSB0aGUgdXNlciBlbWFpbC4g+kIkciIyIF4oW2EtekEtWl1bYS16QS1aMC05LV9dezMsNjR9KT8kEpwBCgVlbWFpbBgCIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABEtgDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCrAOSQagDMqUDTWV0YWRhdGEgb2JqZWN0IGZvciB1c2VycyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBwcmUtZGVmaW5lZCBpbiBVc2VyIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyIHN1Y2ggYXMgbGFiZWwsIGRlc2NyaXB0aW9uIGV0Yy4gQnkgZGVmYXVsdCB0aGUgdXNlciBtZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIGZvciB0aGUgdXNlci4gVXBkYXRlIHRoZSBzYW1lIHRvIGFkZCBtb3JlIGZpZWxkcyB0byB0aGUgdXNlciBtZXRhZGF0YSBvYmplY3QuIDxici8+KkV4YW1wbGU6KmB7ImxhYmVsIjogeyJrZXkxIjogInZhbHVlMSJ9LCAiZGVzY3JpcHRpb24iOiAiVXNlciBEZXNjcmlwdGlvbiJ9YBKpAQoFdGl0bGUYBCABKAlCmQGSQZUBMpIBVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPipFeGFtcGxlOipgIkpvaG4gRG9lImAS8AIKBmF2YXRhchgFIAEoCULfApJBjwIy0wFUaGUgYXZhdGFyIGlzIGJhc2U2NCBlbmNvZGVkIGltYWdlIGRhdGEgb2YgdGhlIHVzZXIuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuIFRoZSBpbWFnZSBzaG91bGQgYmUgbGVzcyB0aGFuIDIwMEtCLiBTaG91bGQgZm9sbG93IHRoZSByZWdleCBwYXR0ZXJuIGBeZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJGAuSjciZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUEi+kJJckcYkKEPMj5eZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJNABASLHAwoQTGlzdFVzZXJzUmVxdWVzdBJlCglwYWdlX3NpemUYASABKAVCUpJBRjJEVGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgMTAwMC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESQQoHa2V5d29yZBgDIAEoCUIwkkEtMitUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yIGluIG5hbWUgb3IgZW1haWwuEjwKBm9yZ19pZBgEIAEoCUIskkEpMidUaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciB1c2VycyBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlIKEUxpc3RVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIlcKEUNyZWF0ZVVzZXJSZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keUII+kIFigECEAEiQwoSQ3JlYXRlVXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiOwoeTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEg0KBXN0YXRlGAIgASgJIqcBCh9MaXN0T3JnYW5pemF0aW9uc0J5VXNlclJlc3BvbnNlEj4KDW9yZ2FuaXphdGlvbnMYASADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbhJEChNqb2luYWJsZV92aWFfZG9tYWluGAIgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iNgolTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVxdWVzdBINCgVzdGF0ZRgBIAEoCSKuAQomTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uEkQKE2pvaW5hYmxlX3ZpYV9kb21haW4YAiADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiInChlMaXN0UHJvamVjdHNCeVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIlIKGkxpc3RQcm9qZWN0c0J5VXNlclJlc3BvbnNlEjQKCHByb2plY3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0IrMCCiBMaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSGAoQd2l0aF9wZXJtaXNzaW9ucxgCIAMoCRIVCg1ub25faW5oZXJpdGVkGAMgASgIEhkKEXdpdGhfbWVtYmVyX2NvdW50GAQgASgIEmUKCXBhZ2Vfc2l6ZRgFIAEoBUJSkkFGMkRUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyAxMDAwLvpCBhoEKAFAARJMCghwYWdlX251bRgGIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASL+AQohTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlc3BvbnNlEjQKCHByb2plY3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0El0KDGFjY2Vzc19wYWlycxgCIAMoCzJHLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlc3BvbnNlLkFjY2Vzc1BhaXISDQoFY291bnQYAyABKAUaNQoKQWNjZXNzUGFpchISCgpwcm9qZWN0X2lkGAEgASgJEhMKC3Blcm1pc3Npb25zGAIgAygJIh8KEUVuYWJsZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhQKEkVuYWJsZVVzZXJSZXNwb25zZSIgChJEaXNhYmxlVXNlclJlcXVlc3QSCgoCaWQYASABKAkiFQoTRGlzYWJsZVVzZXJSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiQAoPR2V0VXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiFwoVR2V0Q3VycmVudFVzZXJSZXF1ZXN0IoQBChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISOwoLc2VydmljZXVzZXIYAiABKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIkMKElVwZGF0ZVVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIkoKGVVwZGF0ZUN1cnJlbnRVc2VyUmVzcG9uc2USLQoEdXNlchgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlciJZChFVcGRhdGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCRI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyUmVxdWVzdEJvZHkiHAoOR2V0VXNlclJlcXVlc3QSCgoCaWQYASABKAkiYwocTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSGAoQd2l0aF9wZXJtaXNzaW9ucxgCIAMoCRIZChF3aXRoX21lbWJlcl9jb3VudBgDIAEoCCLhAQodTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVzcG9uc2USMAoGZ3JvdXBzGAEgAygLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cBJZCgxhY2Nlc3NfcGFpcnMYAiADKAsyQy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1Jlc3BvbnNlLkFjY2Vzc1BhaXIaMwoKQWNjZXNzUGFpchIQCghncm91cF9pZBgBIAEoCRITCgtwZXJtaXNzaW9ucxgCIAMoCSLYAQoVTGlzdFVzZXJHcm91cHNSZXF1ZXN0Ej0KAmlkGAEgASgJQjGSQS4yLFRoZSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IGdyb3VwcyBmb3IuEnoKBm9yZ19pZBgDIAEoCUJqkkFnMmVUaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciBncm91cHMgYnkuIElmIG5vdCBwcm92aWRlZCwgZ3JvdXBzIGZyb20gYWxsIG9yZ2FuaXphdGlvbnMgYXJlIHJldHVybmVkLkoECAIQAyJKChZMaXN0VXNlckdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAiVAoYVXBkYXRlQ3VycmVudFVzZXJSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keSJaChpMaXN0VXNlckludml0YXRpb25zUmVxdWVzdBI8CgJpZBgBIAEoCUIwkkEtMitUaGUgdXNlciBlbWFpbCB0byBsaXN0IHRoZSBpbnZpdGF0aW9ucyBmb3IuIlkKG0xpc3RVc2VySW52aXRhdGlvbnNSZXNwb25zZRI6CgtpbnZpdGF0aW9ucxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52aXRhdGlvbiIjCiFMaXN0Q3VycmVudFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QilwEKIkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24SNQoEb3JncxgCIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIrYBChdMaXN0U2VydmljZVVzZXJzUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBMTIvVGhlIG9yZ2FuaXphdGlvbiBJRCB0byBmaWx0ZXIgc2VydmljZSB1c2VycyBieS7iQQEC+kIEcgIQAxJKCgVzdGF0ZRgCIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4iWAoYTGlzdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIikQEKFlNlcnZpY2VVc2VyUmVxdWVzdEJvZHkSTAoFdGl0bGUYASABKAlCPZJBOjInVXNlciBmcmllbmRseSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHVzZXIuSg8iT3JkZXIgU2VydmljZSISKQoIbWV0YWRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrYBChhDcmVhdGVTZXJ2aWNlVXNlclJlcXVlc3QSPwoEYm9keRgBIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJSZXF1ZXN0Qm9keRJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiWAoZQ3JlYXRlU2VydmljZVVzZXJSZXNwb25zZRI7CgtzZXJ2aWNldXNlchgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIirgEKFUdldFNlcnZpY2VVc2VyUmVxdWVzdBI6CgJpZBgBIAEoCUIukkErMilUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZ2V0LhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiVQoWR2V0U2VydmljZVVzZXJSZXNwb25zZRI7CgtzZXJ2aWNldXNlchgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIi9QEKGFVwZGF0ZVNlcnZpY2VVc2VyUmVxdWVzdBI9CgJpZBgBIAEoCUIxkkEuMixUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gdXBkYXRlLhI/CgRib2R5GAIgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlclJlcXVlc3RCb2R5ElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJYChlVcGRhdGVTZXJ2aWNlVXNlclJlc3BvbnNlEjsKC3NlcnZpY2V1c2VyGAEgASgLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciK0AQoYRGVsZXRlU2VydmljZVVzZXJSZXF1ZXN0Ej0KAmlkGAEgASgJQjGSQS4yLFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBkZWxldGUuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyIbChlEZWxldGVTZXJ2aWNlVXNlclJlc3BvbnNlItABChtDcmVhdGVTZXJ2aWNlVXNlckpXS1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGNyZWF0ZSBhIGtleSBmb3IuEg0KBXRpdGxlGAIgASgJElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJVChxDcmVhdGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlEjUKA2tleRgBIAEoCzIoLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuS2V5Q3JlZGVudGlhbCLyAQoYR2V0U2VydmljZVVzZXJKV0tSZXF1ZXN0EkQKAmlkGAEgASgJQjiSQTUyM1RoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBnZXQgYSBrZXkgZm9yLhI1CgZrZXlfaWQYAiABKAlCJZJBIjIgVGhlIHVuaXF1ZSBJRCBvZiB0aGUga2V5IHRvIGdldC4SWQoGb3JnX2lkGAMgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIlAKGUdldFNlcnZpY2VVc2VySldLUmVzcG9uc2USMwoEa2V5cxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSlNPTldlYktleSK9AQoaTGlzdFNlcnZpY2VVc2VySldLc1JlcXVlc3QSRAoCaWQYASABKAlCOJJBNTIzVGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3Qga2V5cyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJWChtMaXN0U2VydmljZVVzZXJKV0tzUmVzcG9uc2USNwoEa2V5cxgBIAMoCzIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJKV0si+wEKG0RlbGV0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBJHCgJpZBgBIAEoCUI7kkE4MjZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZGVsZXRlIGEga2V5IGZvci4SOAoGa2V5X2lkGAIgASgJQiiSQSUyI1RoZSB1bmlxdWUgSUQgb2YgdGhlIGtleSB0byBkZWxldGUuElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyIeChxEZWxldGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlItcBCiJDcmVhdGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXF1ZXN0EkcKAmlkGAEgASgJQjuSQTgyNlRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSBrZXkgZm9yLhINCgV0aXRsZRgCIAEoCRJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiYgojQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2USOwoGc2VjcmV0GAEgASgLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWNyZXRDcmVkZW50aWFsIscBCiFMaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3Qgc2VjcmV0cyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJiCiJMaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlEjwKB3NlY3JldHMYASADKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlY3JldENyZWRlbnRpYWwiiwIKIkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QSSgoCaWQYASABKAlCPpJBOzI5VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIHNlY3JldCBmb3IuEj4KCXNlY3JldF9pZBgCIAEoCUIrkkEoMiZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZWNyZXQgdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiJQojRGVsZXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2Ui1AEKHUNyZWF0ZVNlcnZpY2VVc2VyVG9rZW5SZXF1ZXN0EkkKAmlkGAEgASgJQj2SQToyOFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSB0b2tlbiBmb3IuEg0KBXRpdGxlGAIgASgJElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJcCh5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVzcG9uc2USOgoFdG9rZW4YASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyVG9rZW4iwQEKHExpc3RTZXJ2aWNlVXNlclRva2Vuc1JlcXVlc3QSRgoCaWQYASABKAlCOpJBNzI1VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3QgdG9rZW5zIGZvci4SWQoGb3JnX2lkGAIgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIlwKHUxpc3RTZXJ2aWNlVXNlclRva2Vuc1Jlc3BvbnNlEjsKBnRva2VucxgBIAMoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJUb2tlbiKDAgodRGVsZXRlU2VydmljZVVzZXJUb2tlblJlcXVlc3QSSQoCaWQYASABKAlCPZJBOjI4VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIHRva2VuIGZvci4SPAoIdG9rZW5faWQYAiABKAlCKpJBJzIlVGhlIHVuaXF1ZSBJRCBvZiB0aGUgdG9rZW4gdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiIAoeRGVsZXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIt8BCh5MaXN0U2VydmljZVVzZXJQcm9qZWN0c1JlcXVlc3QSSAoCaWQYASABKAlCPJJBOTI3VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGxpc3QgcHJvamVjdHMgZm9yLhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMSGAoQd2l0aF9wZXJtaXNzaW9ucxgDIAMoCSLrAQofTGlzdFNlcnZpY2VVc2VyUHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdBJbCgxhY2Nlc3NfcGFpcnMYAiADKAsyRS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVzcG9uc2UuQWNjZXNzUGFpcho1CgpBY2Nlc3NQYWlyEhIKCnByb2plY3RfaWQYASABKAkSEwoLcGVybWlzc2lvbnMYAiADKAki7QEKHUxpc3RPcmdhbml6YXRpb25Hcm91cHNSZXF1ZXN0EikKBm9yZ19pZBgCIAEoCUIZ+kIWchQQAzIQXltBLVphLXowLTlfLV0rJBJXCgVzdGF0ZRgDIAEoCUJIkkFFMkNUaGUgc3RhdGUgb2YgdGhlIGdyb3VwIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuEhEKCWdyb3VwX2lkcxgEIAMoCRIUCgx3aXRoX21lbWJlcnMYBSABKAgSGQoRd2l0aF9tZW1iZXJfY291bnQYBiABKAhKBAgBEAIiUgoeTGlzdE9yZ2FuaXphdGlvbkdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAirwEKHUNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keUII+kIFigECEAESSgoGb3JnX2lkGAIgASgJQjqSQTMyMVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHJvbGUgYmVsb25ncyB0by7iQQECIk8KHkNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRItCgRyb2xlGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIkEKGkdldE9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyJMChtHZXRPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJ1Ch1VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZvcmdfaWQYAyABKAkSOAoEYm9keRgCIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZVJlcXVlc3RCb2R5Ik8KHlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZRItCgRyb2xlGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIjEKEExpc3RSb2xlc1JlcXVlc3QSDQoFc3RhdGUYASABKAkSDgoGc2NvcGVzGAIgAygJIkMKEUxpc3RSb2xlc1Jlc3BvbnNlEi4KBXJvbGVzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIlYKHExpc3RPcmdhbml6YXRpb25Sb2xlc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEg0KBXN0YXRlGAIgASgJEg4KBnNjb3BlcxgDIAMoCSJPCh1MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZRIuCgVyb2xlcxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJECh1EZWxldGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiIAoeRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIqsKChdPcmdhbml6YXRpb25SZXF1ZXN0Qm9keRL7AQoEbmFtZRgBIAEoCULsAZJBzQEyygFUaGUgbmFtZSBvZiB0aGUgb3JnYW5pemF0aW9uLiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy48YnIvPipFeGFtcGxlOipgImZyb250aWVyLW9yZzEtYWNtZSJg4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskErIBCgV0aXRsZRgCIAEoCUKiAZJBngEymwFUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIG9yZ2FuaXphdGlvbi4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS48YnIvPiAqRXhhbXBsZSo6IGAiQWNtZSBJbmMiYBLpAwoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Qr0DkkG5AzK2A01ldGFkYXRhIG9iamVjdCBmb3Igb3JnYW5pemF0aW9ucyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hLiBUaGUgbWV0YWRhdGEgb2JqZWN0IGNhbiBiZSB1c2VkIHRvIHN0b3JlIGFyYml0cmFyeSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3JnYW5pemF0aW9uIHN1Y2ggYXMgbGFiZWxzLCBkZXNjcmlwdGlvbnMgZXRjLiBUaGUgZGVmYXVsdCBPcmdhbml6YXRpb24gTWV0YXNjaGVtYSBjb250YWlucyBsYWJlbHMgYW5kIGRlc2NyaXB0b24gZmllbGRzLiBVcGRhdGUgdGhlIE9yZ2FuaXphdGlvbiBNZXRhc2NoZW1hIHRvIGFkZCBtb3JlIGZpZWxkcy4gPGJyLz4qRXhhbXBsZSo6YHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXphdGlvbiBkZXNjcmlwdGlvbiJ9YBLwAgoGYXZhdGFyGAQgASgJQt8CkkGPAjLTAVRoZSBhdmF0YXIgaXMgYmFzZTY0IGVuY29kZWQgaW1hZ2UgZGF0YSBvZiB0aGUgdXNlci4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gVGhlIGltYWdlIHNob3VsZCBiZSBsZXNzIHRoYW4gMjAwS0IuIFNob3VsZCBmb2xsb3cgdGhlIHJlZ2V4IHBhdHRlcm4gYF5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSskYC5KNyJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQSL6QklyRxiQoQ8yPl5kYXRhOmltYWdlLyhwbmd8anBnfGpwZWd8Z2lmKTtiYXNlNjQsKFthLXpBLVowLTkrL10rPXswLDJ9KSsk0AEBIukDChhMaXN0T3JnYW5pemF0aW9uc1JlcXVlc3QSxwEKB3VzZXJfaWQYASABKAlCtQGSQbEBMq4BVGhlIHVzZXIgSUQgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgdXNlZCB0byBsaXN0IGFsbCB0aGUgb3JnYW5pemF0aW9ucyB0aGF0IHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mLiBPdGhlcndpc2UsIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiB0aGUgRnJvbnRpZXIgaW5zdGFuY2Ugd2lsbCBiZSBsaXN0ZWQuEk4KBXN0YXRlGAIgASgJQj+SQTwyOlRoZSBzdGF0ZSB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBgZW5hYmxlZGAgb3IgYGRpc2FibGVkYC4SZQoJcGFnZV9zaXplGAMgASgFQlKSQUYyRFRoZSBtYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byByZXR1cm4gcGVyIHBhZ2UuIFRoZSBkZWZhdWx0IGlzIDEwMDAu+kIGGgQoAUABEkwKCHBhZ2VfbnVtGAQgASgFQjqSQS4yLFRoZSBwYWdlIG51bWJlciB0byByZXR1cm4uIFRoZSBkZWZhdWx0IGlzIDEu+kIGGgQoAUABIlsKGUxpc3RPcmdhbml6YXRpb25zUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uImcKGUNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QSSgoEYm9keRgBIAEoCzIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uUmVxdWVzdEJvZHlCCPpCBYoBAhABIlsKGkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIlgKF0dldE9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIlsKGlVwZGF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEj0KDG9yZ2FuaXphdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIiQKFkdldE9yZ2FuaXphdGlvblJlcXVlc3QSCgoCaWQYASABKAkiaQoZVXBkYXRlT3JnYW5pemF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRJACgRib2R5GAIgASgLMjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25SZXF1ZXN0Qm9keSI0Ch1MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJQCh5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIifAocTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxIdChFwZXJtaXNzaW9uX2ZpbHRlchgCIAEoCUICGAESEgoKd2l0aF9yb2xlcxgDIAEoCBIUCgxyb2xlX2ZpbHRlcnMYBCADKAki8wEKHUxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyElUKCnJvbGVfcGFpcnMYAiADKAsyQS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlLlJvbGVQYWlyGksKCFJvbGVQYWlyEg8KB3VzZXJfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUifAobQWRkT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkgKCHVzZXJfaWRzGAIgAygJQjaSQTMyMUxpc3Qgb2YgdXNlciBJRHMgdG8gYmUgYWRkZWQgdG8gdGhlIG9yZ2FuaXphdGlvbi4iHgocQWRkT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSJFCh1SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxIPCgd1c2VyX2lkGAIgASgJIiAKHlJlbW92ZU9yZ2FuaXphdGlvblVzZXJSZXNwb25zZSI6CiNMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJkCiRMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2USPAoMc2VydmljZXVzZXJzGAEgAygLMiYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlciLcAQoiTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBODI2dW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gdG8gd2hpY2ggdXNlciBpcyBpbnZpdGVk4kEBAhJlCgd1c2VyX2lkGAIgASgJQlSSQVEyT3VzZXJfaWQgZmlsdGVyIGlzIHRoZSBlbWFpbCBpZCBvZiB1c2VyIHdobyBhcmUgaW52aXRlZCBpbnNpZGUgdGhlIG9yZ2FuaXphdGlvbi4iYQojTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24ihgQKI0NyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Ek8KBm9yZ19pZBgBIAEoCUI/kkE4MjZ1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCB1c2VyIGlzIGludml0ZWTiQQECEqsBCgh1c2VyX2lkcxgCIAMoCUKYAZJBhgEygwF1c2VyX2lkIGlzIGVtYWlsIGlkIG9mIHVzZXIgd2hvIGFyZSBpbnZpdGVkIGluc2lkZSB0aGUgb3JnYW5pemF0aW9uLiBJZiB1c2VyIGlzIG5vdCByZWdpc3RlcmVkIG9uIHRoZSBwbGF0Zm9ybSwgaXQgd2lsbCBiZSBub3RpZmllZOJBAQL6QgeSAQQIARAKElYKCWdyb3VwX2lkcxgDIAMoCUJDkkFAMj5saXN0IG9mIGdyb3VwIGlkcyB0byB3aGljaCB1c2VyIG5lZWRzIHRvIGJlIGFkZGVkIGFzIGEgbWVtYmVyLhKHAQoIcm9sZV9pZHMYBCADKAlCdZJBcjJwbGlzdCBvZiByb2xlIGlkcyB0byB3aGljaCB1c2VyIG5lZWRzIHRvIGJlIGFkZGVkIGFzIGEgbWVtYmVyLiBSb2xlcyBhcmUgYmluZGVkIGF0IG9yZ2FuaXphdGlvbiBsZXZlbCBieSBkZWZhdWx0LiJiCiRDcmVhdGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24iPgogR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJIl4KIUdldE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZRI5CgppbnZpdGF0aW9uGAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZpdGF0aW9uIkEKI0FjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCSImCiRBY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2UiQQojRGVsZXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJIpUCCh5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1JlcXVlc3QSbAoGb3JnX2lkGAEgASgJQlySQU4yTHVuaXF1ZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB3aGl0ZWxpc3RlZCBkb21haW5zIGFyZSB0byBiZSBsaXN0ZWTiQQEC+kIEcgIQAxKEAQoFc3RhdGUYAiABKAlCdZJBcjJwZmlsdGVyIHRvIGxpc3QgZG9tYWlucyBieSB0aGVpciBzdGF0ZSAocGVuZGluZy92ZXJpZmllZCkuIElmIG5vdCBwcm92aWRlZCwgYWxsIGRvbWFpbnMgZm9yIGFuIG9yZyB3aWxsIGJlIGxpc3RlZCJVCh9MaXN0T3JnYW5pemF0aW9uRG9tYWluc1Jlc3BvbnNlEjIKB2RvbWFpbnMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRvbWFpbiKYAQogTGlzdE9yZ2FuaXphdGlvbnNCeURvbWFpblJlcXVlc3QSdAoEbmFtZRgBIAEoCUJmkkFYMlZkb21haW4gbmFtZSB0byBiZSB1c2VkIHRvIGxpc3QgYWxsIHRoZSBvcmdhbml6YXRpb25zIHRoYXQgaGF2ZSB0aGlzIGRvbWFpbiB3aGl0ZWxpc3RlZOJBAQL6QgRyAhADImMKIUxpc3RPcmdhbml6YXRpb25zQnlEb21haW5SZXNwb25zZRI+Cg1vcmdhbml6YXRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iMgoXSm9pbk9yZ2FuaXphdGlvblJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADIhoKGEpvaW5Pcmdhbml6YXRpb25SZXNwb25zZSLSAQocR2V0T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJDCgJpZBgBIAEoCUI3kkEpMid1bmlxdWUgaWQgb2YgdGhlIGRvbWFpbiB0byBiZSByZXRyaWV2ZWTiQQEC+kIEcgIQAxJtCgZvcmdfaWQYAiABKAlCXZJBTzJNdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbiBpcyB0byBiZSByZXRyaWV2ZWTiQQEC+kIEcgIQAyJSCh1HZXRPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZRIxCgZkb21haW4YASABKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRvbWFpbiLiAQofQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJrCgZvcmdfaWQYASABKAlCW5JBTTJLdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbnMgYXJlIHRvIGJlIGFkZGVk4kEBAvpCBHICEAMSUgoGZG9tYWluGAIgASgJQkKSQTQyMmRvbWFpbiBuYW1lIHRvIGJlIGFkZGVkIHRvIHRoZSB0cnVzdGVkIGRvbWFpbiBsaXN04kEBAvpCBHICEAMiVQogQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2USMQoGZG9tYWluGAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Eb21haW4i0wEKH0RlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QSQQoCaWQYASABKAlCNZJBJzIldW5pcXVlIGlkIG9mIHRoZSBkb21haW4gdG8gYmUgZGVsZXRlZOJBAQL6QgRyAhADEm0KBm9yZ19pZBgCIAEoCUJdkkFPMk11bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgZGVsZXRlZOJBAQL6QgRyAhADIiIKIERlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlItUBCh9WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0Em4KBm9yZ19pZBgBIAEoCUJekkFQMk51bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgdmVyaWZpZWTiQQEC+kIEcgIQAxJCCgJpZBgCIAEoCUI2kkEoMiZ1bmlxdWUgaWQgb2YgdGhlIGRvbWFpbiB0byBiZSB2ZXJpZmllZOJBAQL6QgRyAhADIjEKIFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlEg0KBXN0YXRlGAEgASgJIiYKJERlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSInChlFbmFibGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIhwKGkVuYWJsZU9yZ2FuaXphdGlvblJlc3BvbnNlIigKGkRpc2FibGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIh0KG0Rpc2FibGVPcmdhbml6YXRpb25SZXNwb25zZSInChlEZWxldGVPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIhwKGkRlbGV0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIisKGUdldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QSDgoGb3JnX2lkGAEgASgJImIKGkdldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlEkQKEG9yZ2FuaXphdGlvbl9reWMYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbkt5YyKsBQoSUHJvamVjdFJlcXVlc3RCb2R5EvcBCgRuYW1lGAEgASgJQugBkkHJATLGAVRoZSBuYW1lIG9mIHRoZSBwcm9qZWN0LiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gVGhlIG5hbWUgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy48YnIvPiAqRXhhbXBsZToqIGBmcm9udGllci1wbGF5Z3JvdW5kYOJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBK3AQoFdGl0bGUYAiABKAlCpwGSQaMBMqABVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBwcm9qZWN0LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBGcm9udGllciBQbGF5Z3JvdW5kYBKJAQoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ql6SQVsyWU1ldGFkYXRhIG9iamVjdCBmb3IgcHJvamVjdHMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMgZGVmaW5lZCBpbiBQcm9qZWN0IE1ldGFzY2hlbWEuElYKBm9yZ19pZBgEIAEoCUJGkkE4MjZ1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCBwcm9qZWN0IGJlbG9uZ3PiQQEC+kIEcgIQAyJdChRDcmVhdGVQcm9qZWN0UmVxdWVzdBJFCgRib2R5GAEgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0UmVxdWVzdEJvZHlCCPpCBYoBAhABIkwKFUNyZWF0ZVByb2plY3RSZXNwb25zZRIzCgdwcm9qZWN0GAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0It8BCh9MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEosBCgVzdGF0ZRgCIAEoCUJ8kkF5MndGaWx0ZXIgcHJvamVjdHMgYnkgc3RhdGUuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBwcm9qZWN0cyBhcmUgcmV0dXJuZWQuIDxici8+ICpQb3NzaWJsZSB2YWx1ZXM6KiBgZW5hYmxlZGAgb3IgYGRpc2FibGVkYBIZChF3aXRoX21lbWJlcl9jb3VudBgDIAEoCCJYCiBMaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZRI0Cghwcm9qZWN0cxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCIfChFHZXRQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSJJChJHZXRQcm9qZWN0UmVzcG9uc2USMwoHcHJvamVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCJfChRVcGRhdGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCRI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0UmVxdWVzdEJvZHkiTAoVVXBkYXRlUHJvamVjdFJlc3BvbnNlEjMKB3Byb2plY3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QiLwoYTGlzdFByb2plY3RBZG1pbnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIksKGUxpc3RQcm9qZWN0QWRtaW5zUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiXQoXTGlzdFByb2plY3RVc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSGQoRcGVybWlzc2lvbl9maWx0ZXIYAiABKAkSEgoKd2l0aF9yb2xlcxgDIAEoCCLpAQoYTGlzdFByb2plY3RVc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyElAKCnJvbGVfcGFpcnMYAiADKAsyPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0VXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIkkKHkxpc3RQcm9qZWN0U2VydmljZVVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxISCgp3aXRoX3JvbGVzGAMgASgIIowCCh9MaXN0UHJvamVjdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXISVwoKcm9sZV9wYWlycxgCIAMoCzJDLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpSCghSb2xlUGFpchIWCg5zZXJ2aWNldXNlcl9pZBgBIAEoCRIuCgVyb2xlcxgCIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJDChhMaXN0UHJvamVjdEdyb3Vwc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSEgoKd2l0aF9yb2xlcxgCIAEoCCLuAQoZTGlzdFByb2plY3RHcm91cHNSZXNwb25zZRIwCgZncm91cHMYASADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwElEKCnJvbGVfcGFpcnMYAiADKAsyPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0R3JvdXBzUmVzcG9uc2UuUm9sZVBhaXIaTAoIUm9sZVBhaXISEAoIZ3JvdXBfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiIgoURW5hYmxlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiFwoVRW5hYmxlUHJvamVjdFJlc3BvbnNlIiMKFURpc2FibGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIYChZEaXNhYmxlUHJvamVjdFJlc3BvbnNlIiIKFERlbGV0ZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIhcKFURlbGV0ZVByb2plY3RSZXNwb25zZSKjCAoRUG9saWN5UmVxdWVzdEJvZHkSUgoHcm9sZV9pZBgBIAEoCUJBkkEzMjF1bmlxdWUgaWQgb2YgdGhlIHJvbGUgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVk4kEBAvpCBHICEAMSrwEKBXRpdGxlGAMgASgJQp8BkkGbATKYAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcG9saWN5LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBQb2xpY3kgdGl0bGVgErMBCghyZXNvdXJjZRgCIAEoCUKgAZJBkQEyjgFUaGUgcmVzb3VyY2UgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVkIGluIHRoaXMgZm9ybWF0IGBuYW1lc3BhY2U6dXVpZGAuIDxici8+ICpFeGFtcGxlOiogYGFwcC9ndWFyZGlhbjo3MGY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4ZTJg4kEBAvpCBHICEAMS7wIKCXByaW5jaXBhbBgEIAEoCULbApJB0wIy0AJwcmluY2lwYWwgaXMgdGhlIHVzZXIgb3IgZ3JvdXAgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVkLiBUaGUgcHJpbmNpcGFsIGlkIG11c3QgYmUgcHJlZml4ZWQgd2l0aCBpdHMgbmFtZXNwYWNlIGlkIGluIHRoaXMgZm9ybWF0IGBuYW1lc3BhY2U6dXVpZGAuIFRoZSBuYW1lc3BhY2UgY2FuIGJlIGBhcHAvdXNlcmAsIGBhcHAvZ3JvdXBgIG9yIGBhcHAvc2VydmljZXVzZXJgIChjb21pbmcgdXAhKSBhbmQgdXVpZCBpcyB0aGUgdW5pcXVlIGlkIG9mIHRoZSBwcmluY2lwYWwuIDxici8+ICpFeGFtcGxlOiogYGFwcC91c2VyOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWDiQQECEt8BCghtZXRhZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCswGSQa8BMqwBTWV0YWRhdGEgb2JqZWN0IGZvciBwb2xpY2llcyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIFBvbGljeSBNZXRhc2NoZW1hLjxici8+ICpFeGFtcGxlOiogYHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIlBvbGljeSBkZXNjcmlwdGlvbiJ9YCKUBQoaQ3JlYXRlUG9saWN5Rm9yUHJvamVjdEJvZHkSUgoHcm9sZV9pZBgBIAEoCUJBkkEzMjF1bmlxdWUgaWQgb2YgdGhlIHJvbGUgdG8gd2hpY2ggcG9saWN5IGlzIGFzc2lnbmVk4kEBAvpCBHICEAMSrwEKBXRpdGxlGAIgASgJQp8BkkGbATKYAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcG9saWN5LiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPiAqRXhhbXBsZToqIGBQb2xpY3kgdGl0bGVgEu8CCglwcmluY2lwYWwYAyABKAlC2wKSQdMCMtACcHJpbmNpcGFsIGlzIHRoZSB1c2VyIG9yIGdyb3VwIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZC4gVGhlIHByaW5jaXBhbCBpZCBtdXN0IGJlIHByZWZpeGVkIHdpdGggaXRzIG5hbWVzcGFjZSBpZCBpbiB0aGlzIGZvcm1hdCBgbmFtZXNwYWNlOnV1aWRgLiBUaGUgbmFtZXNwYWNlIGNhbiBiZSBgYXBwL3VzZXJgLCBgYXBwL2dyb3VwYCBvciBgYXBwL3NlcnZpY2V1c2VyYCAoY29taW5nIHVwISkgYW5kIHV1aWQgaXMgdGhlIHVuaXF1ZSBpZCBvZiB0aGUgcHJpbmNpcGFsLiA8YnIvPiAqRXhhbXBsZToqIGBhcHAvdXNlcjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAiIiChRHZXRQZXJtaXNzaW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJSChVHZXRQZXJtaXNzaW9uUmVzcG9uc2USOQoKcGVybWlzc2lvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIYChZMaXN0UGVybWlzc2lvbnNSZXF1ZXN0IlUKF0xpc3RQZXJtaXNzaW9uc1Jlc3BvbnNlEjoKC3Blcm1pc3Npb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QZXJtaXNzaW9uIhcKFUxpc3ROYW1lc3BhY2VzUmVxdWVzdCJSChZMaXN0TmFtZXNwYWNlc1Jlc3BvbnNlEjgKCm5hbWVzcGFjZXMYASADKAsyJC5yYXlzdGFjay5mcm9udGllci52MWJldGExLk5hbWVzcGFjZSIhChNHZXROYW1lc3BhY2VSZXF1ZXN0EgoKAmlkGAEgASgJIk8KFEdldE5hbWVzcGFjZVJlc3BvbnNlEjcKCW5hbWVzcGFjZRgBIAEoCzIkLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTmFtZXNwYWNlIlsKE0NyZWF0ZVBvbGljeVJlcXVlc3QSRAoEYm9keRgBIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5UmVxdWVzdEJvZHlCCPpCBYoBAhABIk8KFENyZWF0ZVBvbGljeVJlc3BvbnNlEjEKBnBvbGljeRgCIAEoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5SgQIARACIh4KEEdldFBvbGljeVJlcXVlc3QSCgoCaWQYASABKAkiRgoRR2V0UG9saWN5UmVzcG9uc2USMQoGcG9saWN5GAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qb2xpY3kimQIKE0xpc3RQb2xpY2llc1JlcXVlc3QSNgoGb3JnX2lkGAEgASgJQiaSQSMyIVRoZSBvcmdhbml6YXRpb24gaWQgdG8gZmlsdGVyIGJ5LhI1Cgpwcm9qZWN0X2lkGAIgASgJQiGSQR4yHFRoZSBwcm9qZWN0IGlkIHRvIGZpbHRlciBieS4SLwoHdXNlcl9pZBgDIAEoCUIekkEbMhlUaGUgdXNlciBpZCB0byBmaWx0ZXIgYnkuEi8KB3JvbGVfaWQYBCABKAlCHpJBGzIZVGhlIHJvbGUgaWQgdG8gZmlsdGVyIGJ5LhIxCghncm91cF9pZBgFIAEoCUIfkkEcMhpUaGUgZ3JvdXAgaWQgdG8gZmlsdGVyIGJ5LiJLChRMaXN0UG9saWNpZXNSZXNwb25zZRIzCghwb2xpY2llcxgBIAMoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5Il0KE1VwZGF0ZVBvbGljeVJlcXVlc3QSCgoCaWQYASABKAkSOgoEYm9keRgCIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5UmVxdWVzdEJvZHkiSwoUVXBkYXRlUG9saWN5UmVzcG9uc2USMwoIcG9saWNpZXMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeSIhChNEZWxldGVQb2xpY3lSZXF1ZXN0EgoKAmlkGAEgASgJIhYKFERlbGV0ZVBvbGljeVJlc3BvbnNlIosBCh1DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVxdWVzdBIbCgpwcm9qZWN0X2lkGAEgASgJQgf6QgRyAhADEk0KBGJvZHkYAiABKAsyNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RCb2R5Qgj6QgWKAQIQASIgCh5DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVzcG9uc2UicgoTUmVsYXRpb25SZXF1ZXN0Qm9keRIOCgZvYmplY3QYASABKAkSDwoHc3ViamVjdBgDIAEoCRIQCghyZWxhdGlvbhgEIAEoCRIcChRzdWJqZWN0X3N1Yl9yZWxhdGlvbhgGIAEoCUoECAIQA0oECAUQBiJfChVDcmVhdGVSZWxhdGlvblJlcXVlc3QSRgoEYm9keRgBIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb25SZXF1ZXN0Qm9keUII+kIFigECEAEiTwoWQ3JlYXRlUmVsYXRpb25SZXNwb25zZRI1CghyZWxhdGlvbhgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb24iIAoSR2V0UmVsYXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJIkwKE0dldFJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uImEKFVVwZGF0ZVJlbGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRI8CgRib2R5GAIgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvblJlcXVlc3RCb2R5Ik8KFlVwZGF0ZVJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uIrkGChBHcm91cFJlcXVlc3RCb2R5Es8BCgRuYW1lGAEgASgJQsABkkGhATKeAVRoZSBuYW1lIG9mIHRoZSBncm91cC4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMu4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskEosBCgV0aXRsZRgCIAEoCUJ8kkF5MndUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGdyb3VwLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LhK+AwoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QpIDkkGOAzKLA01ldGFkYXRhIG9iamVjdCBmb3IgZ3JvdXBzIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gR3JvdXAgTWV0YXNjaGVtYS4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gYmUgdXNlZCB0byBzdG9yZSBhcmJpdHJhcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdyb3VwIHN1Y2ggYXMgbGFiZWxzLCBkZXNjcmlwdGlvbnMgZXRjLiBUaGUgZGVmYXVsdCBHcm91cCBNZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRvbiBmaWVsZHMuIFVwZGF0ZSB0aGUgR3JvdXAgTWV0YXNjaGVtYSB0byBhZGQgbW9yZSBmaWVsZHMuPGJyLz4qRXhhbXBsZToqYHsibGFiZWxzIjogeyJrZXkiOiAidmFsdWUifSwgImRlc2NyaXB0aW9uIjogIkdyb3VwIGRlc2NyaXB0aW9uIn1gSgQIBBAFIqYBChJDcmVhdGVHcm91cFJlcXVlc3QSQwoEYm9keRgBIAEoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXBSZXF1ZXN0Qm9keUII+kIFigECEAESSwoGb3JnX2lkGAIgASgJQjuSQTQyMlRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIGdyb3VwIGJlbG9uZ3MgdG8u4kEBAiJDCg9HZXRHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJEhQKDHdpdGhfbWVtYmVycxgDIAEoCCJGChNDcmVhdGVHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJDChBHZXRHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCJGChNVcGRhdGVHcm91cFJlc3BvbnNlEi8KBWdyb3VwGAEgASgLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cCKoAQoSVXBkYXRlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEjkKBGJvZHkYAiABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwUmVxdWVzdEJvZHkSSwoGb3JnX2lkGAMgASgJQjuSQTQyMlRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIGdyb3VwIGJlbG9uZ3MgdG8u4kEBAiJHChVMaXN0R3JvdXBVc2Vyc1JlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAIgASgJEhIKCndpdGhfcm9sZXMYAyABKAgi5QEKFkxpc3RHcm91cFVzZXJzUmVzcG9uc2USLgoFdXNlcnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISTgoKcm9sZV9wYWlycxgCIAMoCzI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIjkKEkVuYWJsZUdyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiFQoTRW5hYmxlR3JvdXBSZXNwb25zZSI6ChNEaXNhYmxlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyIWChREaXNhYmxlR3JvdXBSZXNwb25zZSI5ChJEZWxldGVHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADIhUKE0RlbGV0ZUdyb3VwUmVzcG9uc2UiTQoUQWRkR3JvdXBVc2Vyc1JlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADEhAKCHVzZXJfaWRzGAMgAygJIhcKFUFkZEdyb3VwVXNlcnNSZXNwb25zZSJOChZSZW1vdmVHcm91cFVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAxIPCgd1c2VyX2lkGAMgASgJIhkKF1JlbW92ZUdyb3VwVXNlclJlc3BvbnNlIlAKFURlbGV0ZVJlbGF0aW9uUmVxdWVzdBIOCgZvYmplY3QYASABKAkSDwoHc3ViamVjdBgCIAEoCRIQCghyZWxhdGlvbhgEIAEoCUoECAMQBCIYChZEZWxldGVSZWxhdGlvblJlc3BvbnNlIlMKG0xpc3RQcm9qZWN0UmVzb3VyY2VzUmVxdWVzdBIbCgpwcm9qZWN0X2lkGAIgASgJQgf6QgRyAhADEhEKCW5hbWVzcGFjZRgEIAEoCUoECAEQAiJWChxMaXN0UHJvamVjdFJlc291cmNlc1Jlc3BvbnNlEjYKCXJlc291cmNlcxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2UitgYKE1Jlc291cmNlUmVxdWVzdEJvZHkScwoEbmFtZRgBIAEoCUJlkkFeMlxUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UuICBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHByb2plY3QuIDxici8+ICpFeGFtcGxlOiogYG15LXJlc291cmNlYOJBAQISjgEKBXRpdGxlGAIgASgJQn+SQXwyelRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcmVzb3VyY2UuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuEvIBCgluYW1lc3BhY2UYAyABKAlC3gGSQdYBMtMBVGhlIG5hbWVzcGFjZSBvZiB0aGUgcmVzb3VyY2UuIFRoZSByZXNvdXJjZSBuYW1lc3BhY2UgYXJlIGNyZWF0ZWQgd2hlbiBwZXJtaXNzaW9ucyBmb3IgdGhhdCByZXNvdXJjZSBpcyBjcmVhdGVkIGluIEZyb250aWVyLiBJZiBuYW1lc3BhY2UgZG9lc24ndCBleGlzdHMgdGhlIHJlcXVlc3Qgd2lsbCBmYWlsLiA8YnIvPiAqRXhhbXBsZToqIGBjb21wdXRlL2luc3RhbmNlYOJBAQIS7AEKCXByaW5jaXBhbBgGIAEoCULYAZJB1AEy0QFVc2VySUQgb3IgU2VydmljZVVzZXJJRCB0aGF0IHNob3VsZCBiZSBtYXJrZWQgYXMgb3duZXIgb2YgdGhlIHJlc291cmNlLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHdpbGwgYmUgbWFkZSB0aGUgcmVzb3VyY2Ugb3duZXIuIDxici8+ICpFeGFtcGxlOiogYHVzZXI6OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YBIpCghtZXRhZGF0YRgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgEEAVKBAgFEAYipgEKHENyZWF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QSRgoEYm9keRgBIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2VSZXF1ZXN0Qm9keUII+kIFigECEAESEgoKcHJvamVjdF9pZBgCIAEoCRIqCgJpZBgDIAEoCUIekkEbMhlBdXRvZ2VuZXJhdGVkIGlmIHNraXBwZWQuIlYKHUNyZWF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJKChlHZXRQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhsKCnByb2plY3RfaWQYAyABKAlCB/pCBHICEANKBAgCEAMiUwoaR2V0UHJvamVjdFJlc291cmNlUmVzcG9uc2USNQoIcmVzb3VyY2UYASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlInwKHFVwZGF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QSCgoCaWQYASABKAkSPAoEYm9keRgCIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2VSZXF1ZXN0Qm9keRISCgpwcm9qZWN0X2lkGAMgASgJIlYKHVVwZGF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJHChxEZWxldGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEhsKCnByb2plY3RfaWQYAyABKAlCB/pCBHICEAMiHwodRGVsZXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UigwYKHkNoZWNrUmVzb3VyY2VQZXJtaXNzaW9uUmVxdWVzdBJDCglvYmplY3RfaWQYASABKAlCMBgBkkErMilEZXByZWNhdGVkLiBVc2UgYHJlc291cmNlYCBmaWVsZCBpbnN0ZWFkLhJKChBvYmplY3RfbmFtZXNwYWNlGAIgASgJQjAYAZJBKzIpRGVwcmVjYXRlZC4gVXNlIGByZXNvdXJjZWAgZmllbGQgaW5zdGVhZC4SjAEKCnBlcm1pc3Npb24YAyABKAlCeJJBWTJXdGhlIHBlcm1pc3Npb24gbmFtZSB0byBjaGVjay4gPGJyLz4gKkV4YW1wbGU6KiBgZ2V0YCwgYGxpc3RgLCBgY29tcHV0ZS5pbnN0YW5jZS5jcmVhdGVg4kEBAvpCFXITMhFeW0EtWmEtejAtOS5fLV0rJBLAAwoIcmVzb3VyY2UYBCABKAlCrQOSQakDMqYDYG5hbWVzcGFjZTp1dWlkYCBvciBgbmFtZXNwYWNlOm5hbWVgIG9mIHRoZSBvcmcgb3IgcHJvamVjdCwgYW5kIGBuYW1lc3BhY2U6dXJuYCBvZiBhIHJlc291cmNlIHVuZGVyIGEgcHJvamVjdC4gSW4gY2FzZSBvZiBhbiBvcmcvcHJvamVjdCBlaXRoZXIgcHJvdmlkZSB0aGUgY29tcGxldGUgbmFtZXNwYWNlIChhcHAvb3JnYW5pemF0aW9uKSBvciBGcm9udGllciBjYW4gYWxzbyBwYXJzZSBhbGlhc2VzIGZvciB0aGUgc2FtZSBhcyBgb3JnYCBvciBgcHJvamVjdGAuIDxici8+ICpFeGFtcGxlOiogYG9yZ2FuaXphdGlvbjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgIG9yIGBhcHAvcHJvamVjdDpwcm9qZWN0LW5hbWVgIG9yIGBjb21wdXRlL2luc3RhbmNlOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWAiMQofQ2hlY2tSZXNvdXJjZVBlcm1pc3Npb25SZXNwb25zZRIOCgZzdGF0dXMYASABKAgibgobQmF0Y2hDaGVja1Blcm1pc3Npb25SZXF1ZXN0Ek8KBmJvZGllcxgBIAMoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmF0Y2hDaGVja1Blcm1pc3Npb25Cb2R5Qgr6QgeSAQQIARAUItIEChhCYXRjaENoZWNrUGVybWlzc2lvbkJvZHkScwoKcGVybWlzc2lvbhgBIAEoCUJfkkFAMj50aGUgcGVybWlzc2lvbiBuYW1lIHRvIGNoZWNrLiA8YnIvPiAqRXhhbXBsZToqIGBnZXRgIG9yIGBsaXN0YOJBAQL6QhVyEzIRXltBLVphLXowLTkuXy1dKyQSwAMKCHJlc291cmNlGAIgASgJQq0DkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgImoKHEJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2USSgoFcGFpcnMYASADKAsyOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VQYWlyInUKIEJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2VQYWlyEkEKBGJvZHkYASABKAsyMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uQm9keRIOCgZzdGF0dXMYAiABKAgioQMKFU1ldGFTY2hlbWFSZXF1ZXN0Qm9keRLUAQoEbmFtZRgBIAEoCULFAZJBpgEyowFUaGUgbmFtZSBvZiB0aGUgbWV0YXNjaGVtYS4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMu4kEBAvpCFHISMhBeW0EtWmEtejAtOS1fXSskErABCgZzY2hlbWEYAiABKAlCnwGSQZABMo0BVGhlIHNjaGVtYSBvZiB0aGUgbWV0YXNjaGVtYS4gVGhlIHNjaGVtYSBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEu4kEBAvpCBHICEAIiYwoXQ3JlYXRlTWV0YVNjaGVtYVJlcXVlc3QSSAoEYm9keRgBIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJVChhDcmVhdGVNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSIiChRHZXRNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCSJSChVHZXRNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSJvChdVcGRhdGVNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCRJICgRib2R5GAIgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hUmVxdWVzdEJvZHlCCPpCBYoBAhABIlUKGFVwZGF0ZU1ldGFTY2hlbWFSZXNwb25zZRI5CgptZXRhc2NoZW1hGAEgASgLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hIiUKF0RlbGV0ZU1ldGFTY2hlbWFSZXF1ZXN0EgoKAmlkGAEgASgJIhoKGERlbGV0ZU1ldGFTY2hlbWFSZXNwb25zZSIYChZMaXN0TWV0YVNjaGVtYXNSZXF1ZXN0IlUKF0xpc3RNZXRhU2NoZW1hc1Jlc3BvbnNlEjoKC21ldGFzY2hlbWFzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5NZXRhU2NoZW1hItABCiBMaXN0T3JnYW5pemF0aW9uQXVkaXRMb2dzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSDgoGc291cmNlGAUgASgJEg4KBmFjdGlvbhgGIAEoCRIVCg1pZ25vcmVfc3lzdGVtGAcgASgIEi4KCnN0YXJ0X3RpbWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCGVuZF90aW1lGAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJWCiFMaXN0T3JnYW5pemF0aW9uQXVkaXRMb2dzUmVzcG9uc2USMQoEbG9ncxgBIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRMb2ciegoiQ3JlYXRlT3JnYW5pemF0aW9uQXVkaXRMb2dzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSOwoEbG9ncxgCIAMoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRMb2dCCPpCBZIBAggBIiUKI0NyZWF0ZU9yZ2FuaXphdGlvbkF1ZGl0TG9nc1Jlc3BvbnNlIk4KHkdldE9yZ2FuaXphdGlvbkF1ZGl0TG9nUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSEwoCaWQYAiABKAlCB/pCBHICEAMiUwofR2V0T3JnYW5pemF0aW9uQXVkaXRMb2dSZXNwb25zZRIwCgNsb2cYASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0TG9nIhwKGkRlc2NyaWJlUHJlZmVyZW5jZXNSZXF1ZXN0IlkKG0Rlc2NyaWJlUHJlZmVyZW5jZXNSZXNwb25zZRI6CgZ0cmFpdHMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VUcmFpdCKHAQokQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJjCiVDcmVhdGVPcmdhbml6YXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIjkKIkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiYQojTGlzdE9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiggEKH0NyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBIl4KIENyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIjQKHUxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIlwKHkxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSKAAQodQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBIlwKHkNyZWF0ZUdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIyChtMaXN0R3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiWgocTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJ/ChxDcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJbCh1DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIxChpMaXN0VXNlclByZWZlcmVuY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJZChtMaXN0VXNlclByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UicQojQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QSSgoGYm9kaWVzGAIgAygLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlUmVxdWVzdEJvZHlCCPpCBZIBAggBImIKJENyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSIjCiFMaXN0Q3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QiYAoiTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSJICh1CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVxdWVzdBIZCghwcm92aWRlchgBIAEoCUIH+kIEcgIQARIMCgRib2R5GAIgASgMIiAKHkJpbGxpbmdXZWJob29rQ2FsbGJhY2tSZXNwb25zZSKEBAobQ3JlYXRlUHJvc3BlY3RQdWJsaWNSZXF1ZXN0Ej4KBG5hbWUYASABKAlCMJJBFzIVZnVsbCBuYW1lIG9mIHRoZSB1c2Vy+kITchEyDF5bQS1aYS16IF0rJNABARIyCgVlbWFpbBgFIAEoCUIjkkETMhFlbWFpbCBvZiB0aGUgdXNlcuJBAQL6QgZyBBABYAESLAoFcGhvbmUYBiABKAlCHZJBGjIYcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyEoABCghhY3Rpdml0eRgHIAEoCUJukkFOMkxhY3Rpdml0eSBmb3Igd2hpY2ggdXNlciBpcyBzdWJzY3JpYmluZywgZS5nLiBuZXdzbGV0dGVyLCB3YWl0bGlzdCwgYmxvZ3MgZXRj4kEBAvpCFnIUEAEyEF5bQS1aYS16MC05LV9dKyQSbQoGc291cmNlGAkgASgJQl2SQUAyPnNvdXJjZSBvZiB0aGlzIHVzZXIgYWRkaXRpb24gZS5nLiBwbGF0Zm9ybSwgd2Vic2l0ZSwgYWRtaW4gZXRj+kIXchUyEF5bQS1aYS16MC05LV9dKyTQAQESUQoIbWV0YWRhdGEYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QiaSQSMyIWFkZGl0aW9uYWwgaW5mbyBhcyBrZXkgdmFsdWUgcGFpciIeChxDcmVhdGVQcm9zcGVjdFB1YmxpY1Jlc3BvbnNlIhUKE0xpc3RTZXNzaW9uc1JlcXVlc3QiTAoUTGlzdFNlc3Npb25zUmVzcG9uc2USNAoIc2Vzc2lvbnMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlc3Npb24iOAoUUmV2b2tlU2Vzc2lvblJlcXVlc3QSIAoKc2Vzc2lvbl9pZBgBIAEoCUIM4kEBAvpCBXIDsAEBIhcKFVJldm9rZVNlc3Npb25SZXNwb25zZSIYChZQaW5nVXNlclNlc3Npb25SZXF1ZXN0IhkKF1BpbmdVc2VyU2Vzc2lvblJlc3BvbnNlIrEDChhDcmVhdGVBdWRpdFJlY29yZFJlcXVlc3QSQAoFYWN0b3IYASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkQWN0b3JCBOJBAQISGgoFZXZlbnQYAiABKAlCC+JBAQL6QgRyAhADEkYKCHJlc291cmNlGAMgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdWRpdFJlY29yZFJlc291cmNlQgTiQQECEjwKBnRhcmdldBgEIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmRUYXJnZXQSNQoLb2NjdXJyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEhgKBm9yZ19pZBgGIAEoCUII+kIFcgOwAQESDgoGcmVxX2lkGAcgASgJEikKCG1ldGFkYXRhGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIlCg9pZGVtcG90ZW5jeV9rZXkYCSABKAlCDOJBAQL6QgVyA7ABASJZChlDcmVhdGVBdWRpdFJlY29yZFJlc3BvbnNlEjwKDGF1ZGl0X3JlY29yZBgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmQyxpkDCg9Gcm9udGllclNlcnZpY2US6AIKCUxpc3RVc2VycxIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJzUmVxdWVzdBosLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJzUmVzcG9uc2Ui/wGSQeUBCgRVc2VyEhFMaXN0IHB1YmxpYyB1c2VycxrJAVJldHVybnMgdGhlIHVzZXJzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBrZXl3b3JkLCBvcmdhbml6YXRpb24sIGdyb3VwIGFuZCBzdGF0ZS4gQWRkaXRpb25hbGx5IHlvdSBjYW4gaW5jbHVkZSBwYWdlIG51bWJlciBhbmQgcGFnZSBzaXplIGZvciBwYWdpbmF0aW9uLoLT5JMCEBIOL3YxYmV0YTEvdXNlcnMSuwYKCkNyZWF0ZVVzZXISLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVVzZXJSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUmVzcG9uc2UizwWSQa8FCgRVc2VyEgtDcmVhdGUgdXNlchqXBUNyZWF0ZSBhIHVzZXIgd2l0aCB0aGUgZ2l2ZW4gZGV0YWlscy4gQSB1c2VyIGlzIG5vdCBhdHRhY2hlZCB0byBhbiBvcmdhbml6YXRpb24gb3IgYSBncm91cCBieSBkZWZhdWx0LGFuZCBjYW4gYmUgaW52aXRlZCB0byB0aGUgb3JnL2dyb3VwLiBUaGUgbmFtZSBvZiB0aGUgdXNlciBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZS4gSWYgYSB1c2VyIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIG5hbWUgZnJvbSB0aGUgdXNlciBlbWFpbC4gVGhlIHVzZXIgbWV0YWRhdGEgaXMgdmFsaWRhdGVkIGFnYWluc3QgdGhlIHVzZXIgbWV0YXNjaGVtYS4gQnkgZGVmYXVsdCB0aGUgdXNlciBtZXRhc2NoZW1hIGNvbnRhaW5zIGBsYWJlbHNgIGFuZCBgZGVzY3JpcHRpb25zYCBmb3IgdGhlIHVzZXIuIFRoZSBgdGl0bGVgIGZpZWxkIGNhbiBiZSBvcHRpb25hbGx5IGFkZGVkIGZvciBhIHVzZXItZnJpZW5kbHkgbmFtZS4gPGJyLz48YnIvPipFeGFtcGxlOipgeyJlbWFpbCI6ImpvaG4uZG9lQHJheXN0YWNrLm9yZyIsInRpdGxlIjoiSm9obiBEb2UiLG1ldGFkYXRhOnsibGFiZWwiOiB7ImtleTEiOiAidmFsdWUxIn0sICJkZXNjcmlwdGlvbiI6ICJVc2VyIERlc2NyaXB0aW9uIn19YGIAgtPkkwIWIg4vdjFiZXRhMS91c2VyczoEYm9keRLPAQoHR2V0VXNlchIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0VXNlclJlcXVlc3QaKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVzZXJSZXNwb25zZSJtkkFPCgRVc2VyEghHZXQgdXNlcho9R2V0IGEgdXNlciBieSBpZCBzZWFyY2hlZCBvdmVyIGFsbCBvcmdhbml6YXRpb25zIGluIEZyb250aWVyLoLT5JMCFRITL3YxYmV0YTEvdXNlcnMve2lkfRLqAgoOTGlzdFVzZXJHcm91cHMSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyR3JvdXBzUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJHcm91cHNSZXNwb25zZSLyAZJBzAEKBFVzZXISEExpc3QgdXNlciBncm91cHMasQFMaXN0cyBhbGwgdGhlIGdyb3VwcyBhIHVzZXIgYmVsb25ncyB0byBhY3Jvc3MgYWxsIG9yZ2FuaXphdGlvbiBpbiBGcm9udGllci4gVG8gZ2V0IHRoZSBncm91cHMgb2YgYSB1c2VyIGluIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uLCB1c2UgdGhlIG9yZ19pZCBmaWx0ZXIgaW4gdGhlIHF1ZXJ5IHBhcmFtZXRlci6C0+STAhwSGi92MWJldGExL3VzZXJzL3tpZH0vZ3JvdXBzEscBChVMaXN0Q3VycmVudFVzZXJHcm91cHMSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1JlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1Jlc3BvbnNlIjuSQRYKBFVzZXISDkxpc3QgbXkgZ3JvdXBzgtPkkwIcEhovdjFiZXRhMS91c2Vycy9zZWxmL2dyb3VwcxKtAQoOR2V0Q3VycmVudFVzZXISMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRVc2VyUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0Q3VycmVudFVzZXJSZXNwb25zZSI2kkEYCgRVc2VyEhBHZXQgY3VycmVudCB1c2VygtPkkwIVEhMvdjFiZXRhMS91c2Vycy9zZWxmEqIBCgpVcGRhdGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlVXNlclJlc3BvbnNlIjeSQRMKBFVzZXISC1VwZGF0ZSB1c2VygtPkkwIbGhMvdjFiZXRhMS91c2Vycy97aWR9OgRib2R5Er8BChFVcGRhdGVDdXJyZW50VXNlchIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQ3VycmVudFVzZXJSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVDdXJyZW50VXNlclJlc3BvbnNlIj+SQRsKBFVzZXISE1VwZGF0ZSBjdXJyZW50IHVzZXKC0+STAhsaEy92MWJldGExL3VzZXJzL3NlbGY6BGJvZHkSkQIKCkVuYWJsZVVzZXISLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZVVzZXJSZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVVc2VyUmVzcG9uc2UipQGSQX0KBFVzZXISC0VuYWJsZSB1c2VyGmhTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdXNlciBhcyBlbmFibGVkLiBUaGUgdXNlciB3aWxsIGJlIGFibGUgdG8gbG9nIGluIGFuZCBhY2Nlc3MgdGhlIEZyb250aWVyIGluc3RhbmNlLoLT5JMCHyIaL3YxYmV0YTEvdXNlcnMve2lkfS9lbmFibGU6ASoSkAMKC0Rpc2FibGVVc2VyEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlVXNlclJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVVc2VyUmVzcG9uc2UioQKSQfcBCgRVc2VyEgxEaXNhYmxlIHVzZXIa4AFTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgdXNlciBhcyBkaWFibGVkLlRoZSB1c2VyJ3MgbWVtYmVyc2hpcCB0byBncm91cHMgYW5kIG9yZ2FuaXphdGlvbnMgd2lsbCBzdGlsbCBleGlzdCBhbG9uZyB3aXRoIGFsbCBpdCdzIHJvbGVzIGZvciBhY2Nlc3MgY29udHJvbCwgYnV0IHRoZSB1c2VyIHdpbGwgbm90IGJlIGFibGUgdG8gbG9nIGluIGFuZCBhY2Nlc3MgdGhlIEZyb250aWVyIGluc3RhbmNlLoLT5JMCICIbL3YxYmV0YTEvdXNlcnMve2lkfS9kaXNhYmxlOgEqEvcBCgpEZWxldGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlVXNlclJlc3BvbnNlIosBkkFtCgRVc2VyEgtEZWxldGUgdXNlchpYRGVsZXRlIGFuIHVzZXIgcGVybWFuZW50bHkgZm9yZXZlciBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMgKG9yZ2FuaXphdGlvbnMsIGdyb3VwcywgZXRjKYLT5JMCFSoTL3YxYmV0YTEvdXNlcnMve2lkfRL/BAoXTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXISOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zQnlVc2VyUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXJSZXNwb25zZSLsA5JBvwMKBFVzZXISFkdldCB1c2VyIG9yZ2FuaXphdGlvbnMangNUaGlzIEFQSSByZXR1cm5zIHR3byBsaXN0IG9mIG9yZ2FuaXphdGlvbnMgZm9yIHRoZSB1c2VyLiBpKSBUaGUgbGlzdCBvZiBvcmdzIHdoaWNoIHRoZSBjdXJyZW50IHVzZXIgaXMgYWxyZWFkeSBhIHBhcnQgb2YgaWkpIFRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbnMgdGhlIHVzZXIgY2FuIGpvaW4gZGlyZWN0bHkgKGJhc2VkIG9uIGRvbWFpbiB3aGl0ZWxpc3RlZCBhbmQgdmVyaWZpZWQgYnkgdGhlIG9yZykuIFRoaXMgbGlzdCB3aWxsIGFsc28gY29udGFpbiBvcmdzIG9mIHdoaWNoIHVzZXIgaXMgYWxyZWFkeSBhIHBhcnQgb2YuIE5vdGU6IHRoZSBkb21haW4gbmVlZHMgdG8gYmUgdmVyaWZpZWQgYnkgdGhlIG9yZyBiZWZvcmUgdGhlIGl0IGlzIHJldHVybmVkIGFzIG9uZSBvZiB0aGUgam9pbmFibGUgb3JncyBieSBkb21haW6C0+STAiMSIS92MWJldGExL3VzZXJzL3tpZH0vb3JnYW5pemF0aW9ucxKkBQoeTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyEkAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0J5Q3VycmVudFVzZXJSZXF1ZXN0GkEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0J5Q3VycmVudFVzZXJSZXNwb25zZSL8A5JBzwMKBFVzZXISFEdldCBteSBvcmdhbml6YXRpb25zGrADVGhpcyBBUEkgcmV0dXJucyB0d28gbGlzdCBvZiBvcmdhbml6YXRpb25zIGZvciB0aGUgY3VycmVudCBsb2dnZWQgaW4gdXNlci4gaSkgVGhlIGxpc3Qgb2Ygb3JncyB3aGljaCB0aGUgY3VycmVudCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mIGlpKSBUaGUgbGlzdCBvZiBvcmdhbml6YXRpb25zIHRoZSB1c2VyIGNhbiBqb2luIGRpcmVjdGx5IChiYXNlZCBvbiBkb21haW4gd2hpdGVsaXN0ZWQgYW5kIHZlcmlmaWVkIGJ5IHRoZSBvcmcpLiBUaGlzIGxpc3Qgd2lsbCBhbHNvIGNvbnRhaW4gb3JncyBvZiB3aGljaCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mLiBOb3RlOiB0aGUgZG9tYWluIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJ5IHRoZSBvcmcgYmVmb3JlIHRoZSBpdCBpcyByZXR1cm5lZCBhcyBvbmUgb2YgdGhlIGpvaW5hYmxlIG9yZ3MgYnkgZG9tYWlugtPkkwIjEiEvdjFiZXRhMS91c2Vycy9zZWxmL29yZ2FuaXphdGlvbnMS7AEKEkxpc3RQcm9qZWN0c0J5VXNlchI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlVc2VyUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlVc2VyUmVzcG9uc2UiaZJBQgoEVXNlchIRR2V0IHVzZXIgcHJvamVjdHMaJ0dldCBhbGwgdGhlIHByb2plY3RzIGEgdXNlciBiZWxvbmdzIHRvLoLT5JMCHhIcL3YxYmV0YTEvdXNlcnMve2lkfS9wcm9qZWN0cxKEAgoZTGlzdFByb2plY3RzQnlDdXJyZW50VXNlchI7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlcXVlc3QaPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXJSZXNwb25zZSJskkFFCgRVc2VyEg9HZXQgbXkgcHJvamVjdHMaLEdldCBhbGwgcHJvamVjdHMgdGhlIGN1cnJlbnQgdXNlciBiZWxvbmdzIHRvgtPkkwIeEhwvdjFiZXRhMS91c2Vycy9zZWxmL3Byb2plY3RzEvcBChNMaXN0VXNlckludml0YXRpb25zEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlckludml0YXRpb25zUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJJbnZpdGF0aW9uc1Jlc3BvbnNlInGSQUcKBFVzZXISFUxpc3QgdXNlciBpbnZpdGF0aW9ucxooTGlzdCBhbGwgdGhlIGludml0YXRpb25zIHNlbnQgdG8gYSB1c2VyLoLT5JMCIRIfL3YxYmV0YTEvdXNlcnMve2lkfS9pbnZpdGF0aW9ucxKSAgoaTGlzdEN1cnJlbnRVc2VySW52aXRhdGlvbnMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEN1cnJlbnRVc2VySW52aXRhdGlvbnNSZXNwb25zZSJ3kkFNCgRVc2VyEhVMaXN0IHVzZXIgaW52aXRhdGlvbnMaLkxpc3QgYWxsIHRoZSBpbnZpdGF0aW9ucyBzZW50IHRvIGN1cnJlbnQgdXNlci6C0+STAiESHy92MWJldGExL3VzZXJzL3NlbGYvaW52aXRhdGlvbnMSqAIKEExpc3RTZXJ2aWNlVXNlcnMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlcnNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJzUmVzcG9uc2UiqgGSQYkBCgtTZXJ2aWNlVXNlchIWTGlzdCBvcmcgc2VydmljZSB1c2VycxpiUmV0dXJucyB0aGUgc2VydmljZSB1c2VyIG9mIGFuIG9yZ2FuaXphdGlvbiBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyIGJ5IGl0J3Mgc3RhdGWC0+STAhcSFS92MWJldGExL3NlcnZpY2V1c2VycxL0AQoRQ3JlYXRlU2VydmljZVVzZXISMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJSZXNwb25zZSJ0kkE6CgtTZXJ2aWNlVXNlchITQ3JlYXRlIHNlcnZpY2UgdXNlchoWQ3JlYXRlIGEgc2VydmljZSB1c2VyLoLT5JMCMSIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnM6ASoS+AEKDkdldFNlcnZpY2VVc2VyEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTZXJ2aWNlVXNlclJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFNlcnZpY2VVc2VyUmVzcG9uc2UigAGSQUQKC1NlcnZpY2VVc2VyEhBHZXQgc2VydmljZSB1c2VyGiNHZXQgc2VydmljZSB1c2VyIGRldGFpbHMgYnkgaXRzIGlkLoLT5JMCMxIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfRK+AgoRRGVsZXRlU2VydmljZVVzZXISMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJSZXNwb25zZSK9AZJBgAEKC1NlcnZpY2VVc2VyEhNEZWxldGUgc2VydmljZSB1c2VyGlxEZWxldGUgYSBzZXJ2aWNlIHVzZXIgcGVybWFuZW50bHkgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zIChrZXlzLCBvcmdhbml6YXRpb25zLCByb2xlcywgZXRjKYLT5JMCMyoxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfRKYAwoUQ3JlYXRlU2VydmljZVVzZXJKV0sSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJKV0tSZXNwb25zZSKOApJByQEKC1NlcnZpY2VVc2VyEitDcmVhdGUgc2VydmljZSB1c2VyIHB1YmxpYy9wcml2YXRlIGtleSBwYWlyGowBR2VuZXJhdGUgYSBzZXJ2aWNlIHVzZXIga2V5IGFuZCByZXR1cm4gaXQsIHRoZSBwcml2YXRlIGtleSBwYXJ0IG9mIHRoZSByZXNwb25zZSB3aWxsIG5vdCBiZSBwZXJzaXN0ZWQgYW5kIHNob3VsZCBiZSBrZXB0IHNlY3VyZWx5IGJ5IGNsaWVudC6C0+STAjsiNi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0va2V5czoBKhKvAgoTTGlzdFNlcnZpY2VVc2VySldLcxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VySldLc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlckpXS3NSZXNwb25zZSKoAZJBZwoLU2VydmljZVVzZXISFkxpc3Qgc2VydmljZSB1c2VyIGtleXMaQExpc3QgYWxsIHRoZSBrZXlzIG9mIGEgc2VydmljZSB1c2VyIHdpdGggaXRzIGRldGFpbHMgZXhjZXB0IGp3ay6C0+STAjgSNi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0va2V5cxKWAgoRR2V0U2VydmljZVVzZXJKV0sSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFNlcnZpY2VVc2VySldLUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U2VydmljZVVzZXJKV0tSZXNwb25zZSKVAZJBSwoLU2VydmljZVVzZXISFEdldCBzZXJ2aWNlIHVzZXIga2V5GiZHZXQgYSBzZXJ2aWNlIHVzZXIgcHVibGljIFJTQSBKV0sgc2V0LoLT5JMCQRI/L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9rZXlzL3trZXlfaWR9EqICChREZWxldGVTZXJ2aWNlVXNlckpXSxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJKV0tSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlIpgBkkFOCgtTZXJ2aWNlVXNlchIXRGVsZXRlIHNlcnZpY2UgdXNlciBrZXkaJkRlbGV0ZSBhIHNlcnZpY2UgdXNlciBrZXkgcGVybWFuZW50bHkugtPkkwJBKj8vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L2tleXMve2tleV9pZH0SpAMKG0NyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbBI9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVxdWVzdBo+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVzcG9uc2UihQKSQb0BCgtTZXJ2aWNlVXNlchImQ3JlYXRlIHNlcnZpY2UgdXNlciBjbGllbnQgY3JlZGVudGlhbHMahQFHZW5lcmF0ZSBhIHNlcnZpY2UgdXNlciBjcmVkZW50aWFsIGFuZCByZXR1cm4gaXQuIFRoZSBjcmVkZW50aWFsIHZhbHVlIHdpbGwgbm90IGJlIHBlcnNpc3RlZCBhbmQgc2hvdWxkIGJlIHNlY3VyZWx5IHN0b3JlZCBieSBjbGllbnQugtPkkwI+IjkvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3NlY3JldHM6ASoSuQIKGkxpc3RTZXJ2aWNlVXNlckNyZWRlbnRpYWxzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlckNyZWRlbnRpYWxzUmVzcG9uc2UinQGSQVkKC1NlcnZpY2VVc2VyEh1MaXN0IHNlcnZpY2UgdXNlciBjcmVkZW50aWFscxorTGlzdCBhbGwgdGhlIGNyZWRlbnRpYWxzIG9mIGEgc2VydmljZSB1c2VyLoLT5JMCOxI5L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9zZWNyZXRzEsACChtEZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWwSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlc3BvbnNlIqEBkkFRCgtTZXJ2aWNlVXNlchIfRGVsZXRlIHNlcnZpY2UgdXNlciBjcmVkZW50aWFscxohRGVsZXRlIGEgc2VydmljZSB1c2VyIGNyZWRlbnRpYWwugtPkkwJHKkUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3NlY3JldHMve3NlY3JldF9pZH0S/AIKFkNyZWF0ZVNlcnZpY2VVc2VyVG9rZW4SOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyVG9rZW5SZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVzcG9uc2Ui7AGSQaUBCgtTZXJ2aWNlVXNlchIZQ3JlYXRlIHNlcnZpY2UgdXNlciB0b2tlbhp7R2VuZXJhdGUgYSBzZXJ2aWNlIHVzZXIgdG9rZW4gYW5kIHJldHVybiBpdC4gVGhlIHRva2VuIHZhbHVlIHdpbGwgbm90IGJlIHBlcnNpc3RlZCBhbmQgc2hvdWxkIGJlIHNlY3VyZWx5IHN0b3JlZCBieSBjbGllbnQugtPkkwI9IjgvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3Rva2VuczoBKhKfAgoVTGlzdFNlcnZpY2VVc2VyVG9rZW5zEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJUb2tlbnNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJUb2tlbnNSZXNwb25zZSKSAZJBTwoLU2VydmljZVVzZXISGExpc3Qgc2VydmljZSB1c2VyIHRva2VucxomTGlzdCBhbGwgdGhlIHRva2VucyBvZiBhIHNlcnZpY2UgdXNlci6C0+STAjoSOC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vdG9rZW5zEqQCChZEZWxldGVTZXJ2aWNlVXNlclRva2VuEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlclRva2VuUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIpQBkkFGCgtTZXJ2aWNlVXNlchIZRGVsZXRlIHNlcnZpY2UgdXNlciB0b2tlbhocRGVsZXRlIGEgc2VydmljZSB1c2VyIHRva2VuLoLT5JMCRSpDL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS90b2tlbnMve3Rva2VuX2lkfRKwAgoXTGlzdFNlcnZpY2VVc2VyUHJvamVjdHMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyUHJvamVjdHNSZXNwb25zZSKdAZJBWAoLU2VydmljZVVzZXISGkxpc3Qgc2VydmljZSBzc2VyIHByb2plY3RzGi1MaXN0IGFsbCBwcm9qZWN0cyB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG+C0+STAjwSOi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vcHJvamVjdHMS5AIKFkxpc3RPcmdhbml6YXRpb25Hcm91cHMSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Hcm91cHNSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uR3JvdXBzUmVzcG9uc2Ui1AGSQaIBCgVHcm91cBIYTGlzdCBvcmdhbml6YXRpb24gZ3JvdXBzGn9HZXQgYWxsIGdyb3VwcyB0aGF0IGJlbG9uZyB0byBhbiBvcmdhbml6YXRpb24uIFRoZSByZXN1bHRzIGNhbiBiZSBmaWx0ZXJlZCBieSBzdGF0ZSB3aGljaCBjYW4gYmUgZWl0aGVyIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQugtPkkwIoEiYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3VwcxKdAwoLQ3JlYXRlR3JvdXASLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUdyb3VwUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlR3JvdXBSZXNwb25zZSKuApJB9gEKBUdyb3VwEgxDcmVhdGUgZ3JvdXAa3gFDcmVhdGUgYSBuZXcgZ3JvdXAgaW4gYW4gb3JnYW5pemF0aW9uIHdoaWNoIHNlcnZlcyBhcyBhIGNvbnRhaW5lciBmb3IgdXNlcnMuIFRoZSBncm91cCBjYW4gYmUgYXNzaWduZWQgcm9sZXMgYW5kIHBlcm1pc3Npb25zIGFuZCBjYW4gYmUgdXNlZCB0byBtYW5hZ2UgYWNjZXNzIHRvIHJlc291cmNlcy4gQWxzbyBhIGdyb3VwIGNhbiBhbHNvIGJlIGFzc2lnbmVkIHRvIG90aGVyIGdyb3Vwcy6C0+STAi4iJi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzOgRib2R5Eq0BCghHZXRHcm91cBIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0R3JvdXBSZXF1ZXN0GisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRHcm91cFJlc3BvbnNlIkiSQRIKBUdyb3VwEglHZXQgZ3JvdXCC0+STAi0SKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0SvwEKC1VwZGF0ZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUdyb3VwUmVzcG9uc2UiUZJBFQoFR3JvdXASDFVwZGF0ZSBncm91cILT5JMCMxorL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfToEYm9keRL+AQoOTGlzdEdyb3VwVXNlcnMSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFVzZXJzUmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwVXNlcnNSZXNwb25zZSKGAZJBSgoFR3JvdXASEExpc3QgZ3JvdXAgdXNlcnMaL1JldHVybnMgYSBsaXN0IG9mIHVzZXJzIHRoYXQgYmVsb25nIHRvIGEgZ3JvdXAugtPkkwIzEjEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9L3VzZXJzEt0CCg1BZGRHcm91cFVzZXJzEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRHcm91cFVzZXJzUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkR3JvdXBVc2Vyc1Jlc3BvbnNlIugBkkGoAQoFR3JvdXASDkFkZCBncm91cCB1c2VyGo4BQWRkcyBhIHByaW5jaXBsZSh1c2VyIGFuZCBzZXJ2aWNlLXVzZXJzKSB0byBhIGdyb3VwLCBleGlzdGluZyB1c2VycyBpbiB0aGUgZ3JvdXAgd2lsbCBiZSBpZ25vcmVkLiBBIGdyb3VwIGNhbid0IGhhdmUgbmVzdGVkIGdyb3VwcyBhcyBtZW1iZXJzLoLT5JMCNiIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS91c2VyczoBKhLvAgoPUmVtb3ZlR3JvdXBVc2VyEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVHcm91cFVzZXJSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVHcm91cFVzZXJSZXNwb25zZSL0AZJBrQEKBUdyb3VwEhFSZW1vdmUgZ3JvdXAgdXNlchqQAVJlbW92ZXMgYSBwcmluY2lwbGUodXNlciBhbmQgc2VydmljZS11c2VycykgZnJvbSBhIGdyb3VwLiBJZiB0aGUgdXNlciBpcyBub3QgaW4gdGhlIGdyb3VwLCB0aGUgcmVxdWVzdCB3aWxsIHN1Y2NlZWQgYnV0IG5vIGNoYW5nZXMgd2lsbCBiZSBtYWRlLoLT5JMCPSo7L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS91c2Vycy97dXNlcl9pZH0SwwIKC0VuYWJsZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZUdyb3VwUmVzcG9uc2Ui1AGSQZMBCgVHcm91cBIMRW5hYmxlIGdyb3VwGnxTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgZ3JvdXAgYXMgZW5hYmxlZC4gVGhlIGBlbmFibGVkYCBmbGFnIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBncm91cCBjYW4gYmUgdXNlZCBmb3IgYWNjZXNzIGNvbnRyb2wugtPkkwI3IjIvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9L2VuYWJsZToBKhLUAwoMRGlzYWJsZUdyb3VwEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlR3JvdXBSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlR3JvdXBSZXNwb25zZSLiApJBoAIKBUdyb3VwEg1EaXNhYmxlIGdyb3VwGocCU2V0cyB0aGUgc3RhdGUgb2YgdGhlIGdyb3VwIGFzIGRpc2FibGVkLiBUaGUgZ3JvdXAgd2lsbCBub3QgYmUgYXZhaWxhYmxlIGZvciBhY2Nlc3MgY29udHJvbCBhbmQgdGhlIGV4aXN0aW5nIHVzZXJzIGluIHRoZSBncm91cCB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyBhbnkgcmVzb3VyY2VzIHRoYXQgYXJlIGFzc2lnbmVkIHRvIHRoZSBncm91cC4gTm8gb3RoZXIgdXNlcnMgY2FuIGJlIGFkZGVkIHRvIHRoZSBncm91cCB3aGlsZSBpdCBpcyBkaXNhYmxlZC6C0+STAjgiMy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0vZGlzYWJsZToBKhL9AQoLRGVsZXRlR3JvdXASLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZUdyb3VwUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlR3JvdXBSZXNwb25zZSKOAZJBWAoFR3JvdXASDERlbGV0ZSBncm91cBpBRGVsZXRlIGFuIG9yZ2FuaXphdGlvbiBncm91cCBwZXJtYW5lbnRseSBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnOC0+STAi0qKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0SkwIKCUxpc3RSb2xlcxIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJvbGVzUmVxdWVzdBosLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFJvbGVzUmVzcG9uc2UiqgGSQZABCgRSb2xlEhNMaXN0IHBsYXRmb3JtIHJvbGVzGnNSZXR1cm5zIGEgbGlzdCBvZiBwbGF0Zm9ybSB3aWRlIHJvbGVzIGF2YWlsYWJsZSBpbiBlbml0cmUgRnJvbnRpZXIgaW5zdGFuY2UgYWxvbmcgd2l0aCB0aGVpciBhc3NvY2lhdGVkIHBlcm1pc3Npb25zgtPkkwIQEg4vdjFiZXRhMS9yb2xlcxK8AgoVTGlzdE9yZ2FuaXphdGlvblJvbGVzEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUm9sZXNSZXNwb25zZSKvAZJBfwoEUm9sZRIXTGlzdCBvcmdhbml6YXRpb24gcm9sZXMaXlJldHVybnMgYSBsaXN0IG9mIGN1c3RvbSByb2xlcyBjcmVhdGVkIHVuZGVyIGFuIG9yZ2FuaXphdGlvbiB3aXRoIHRoZWlyIGFzc29jaWF0ZWQgcGVybWlzc2lvbnOC0+STAicSJS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMS9wIKFkNyZWF0ZU9yZ2FuaXphdGlvblJvbGUSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2Ui5wGSQbABCgRSb2xlEhhDcmVhdGUgb3JnYW5pemF0aW9uIHJvbGUajQFDcmVhdGUgYSBjdXN0b20gcm9sZSB1bmRlciBhbiBvcmdhbml6YXRpb24uIFRoaXMgY3VzdG9tIHJvbGUgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBmb3IgYXNzaWdubWVudCB0byB0aGUgcHJpbmNpcGxlcyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi6C0+STAi0iJS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXM6BGJvZHkSrAIKE0dldE9yZ2FuaXphdGlvblJvbGUSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2UipQGSQXAKBFJvbGUSFUdldCBvcmdhbml6YXRpb24gcm9sZRpRUmV0dXJucyBhIGN1c3RvbSByb2xlIHVuZGVyIGFuIG9yZ2FuaXphdGlvbiBhbG9uZyB3aXRoIGl0cyBhc3NvY2lhdGVkIHBlcm1pc3Npb25zgtPkkwIsEiovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzL3tpZH0S/AIKFlVwZGF0ZU9yZ2FuaXphdGlvblJvbGUSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2Ui7AGSQbABCgRSb2xlEhhVcGRhdGUgb3JnYW5pemF0aW9uIHJvbGUajQFVcGRhdGUgYSBjdXN0b20gcm9sZSB1bmRlciBhbiBvcmdhbml6YXRpb24uIFRoaXMgY3VzdG9tIHJvbGUgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZSBmb3IgYXNzaWdubWVudCB0byB0aGUgcHJpbmNpcGxlcyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi6C0+STAjIaKi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve2lkfToEYm9keRK3AgoWRGVsZXRlT3JnYW5pemF0aW9uUm9sZRI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZSKnAZJBcgoEUm9sZRIYRGVsZXRlIG9yZ2FuaXphdGlvbiByb2xlGlBEZWxldGUgYSBjdXN0b20gcm9sZSBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMgdW5kZXIgYW4gb3JnYW5pemF0aW9uIHBlcm1hbmVudGx5LoLT5JMCLCoqL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlcy97aWR9EpoCChFMaXN0T3JnYW5pemF0aW9ucxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlIpkBkkF4CgxPcmdhbml6YXRpb24SEkxpc3Qgb3JnYW5pemF0aW9ucxpUUmV0dXJucyBhIGxpc3Qgb2Ygb3JnYW5pemF0aW9ucy4gSXQgY2FuIGJlIGZpbHRlcmVkIGJ5IHVzZXJJRCBvciBvcmdhbml6YXRpb24gc3RhdGUugtPkkwIYEhYvdjFiZXRhMS9vcmdhbml6YXRpb25zEs0BChJDcmVhdGVPcmdhbml6YXRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIkqSQSMKDE9yZ2FuaXphdGlvbhITQ3JlYXRlIG9yZ2FuaXphdGlvboLT5JMCHiIWL3YxYmV0YTEvb3JnYW5pemF0aW9uczoEYm9keRLgAQoPR2V0T3JnYW5pemF0aW9uEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25SZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25SZXNwb25zZSJmkkFACgxPcmdhbml6YXRpb24SEEdldCBvcmdhbml6YXRpb24aHkdldCBvcmdhbml6YXRpb24gYnkgSUQgb3IgbmFtZYLT5JMCHRIbL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9Eu0BChJVcGRhdGVPcmdhbml6YXRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlImqSQT4KDE9yZ2FuaXphdGlvbhITVXBkYXRlIG9yZ2FuaXphdGlvbhoZVXBkYXRlIG9yZ2FuaXphdGlvbiBieSBJRILT5JMCIxobL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9OgRib2R5Ep8CChhMaXN0T3JnYW5pemF0aW9uUHJvamVjdHMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Qcm9qZWN0c1JlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Qcm9qZWN0c1Jlc3BvbnNlIokBkkFaCgxPcmdhbml6YXRpb24SGUdldCBvcmdhbml6YXRpb24gcHJvamVjdHMaL0dldCBhbGwgcHJvamVjdHMgdGhhdCBiZWxvbmcgdG8gYW4gb3JnYW5pemF0aW9ugtPkkwImEiQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vcHJvamVjdHMSjgIKFkxpc3RPcmdhbml6YXRpb25BZG1pbnMSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25BZG1pbnNSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVzcG9uc2Uif5JBUgoMT3JnYW5pemF0aW9uEhhMaXN0IG9yZ2FuaXphdGlvbiBhZG1pbnMaKFJldHVybnMgYSBsaXN0IGFkbWlucyBvZiBhbiBvcmdhbml6YXRpb26C0+STAiQSIi92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9hZG1pbnMS3wEKFUxpc3RPcmdhbml6YXRpb25Vc2VycxI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiU5JBJwoMT3JnYW5pemF0aW9uEhdMaXN0IG9yZ2FuaXphdGlvbiB1c2Vyc4LT5JMCIxIhL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzEu0CChRBZGRPcmdhbml6YXRpb25Vc2VycxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkT3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BZGRPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlIuMBkkGzAQoMT3JnYW5pemF0aW9uEhVBZGQgb3JnYW5pemF0aW9uIHVzZXIaiwFBZGQgYSB1c2VyIHRvIGFuIG9yZ2FuaXphdGlvbi4gQSB1c2VyIG11c3QgZXhpc3RzIGluIEZyb250aWVyIGJlZm9yZSBhZGRpbmcgaXQgdG8gYW4gb3JnLiBUaGlzIHJlcXVlc3Qgd2lsbCBmYWlsIGlmIHRoZSB1c2VyIGRvZXNuJ3QgZXhpc3RzgtPkkwImIiEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnM6ASoSkgIKFlJlbW92ZU9yZ2FuaXphdGlvblVzZXISOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbW92ZU9yZ2FuaXphdGlvblVzZXJSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVzcG9uc2UiggGSQUwKDE9yZ2FuaXphdGlvbhIYUmVtb3ZlIG9yZ2FuaXphdGlvbiB1c2VyGiJSZW1vdmUgYSB1c2VyIGZyb20gYW4gb3JnYW5pemF0aW9ugtPkkwItKisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vdXNlcnMve3VzZXJfaWR9EpYCChJHZXRPcmdhbml6YXRpb25LeWMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkt5Y1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkt5Y1Jlc3BvbnNlIpIBkkFkCg9Pcmdhbml6YXRpb25LeWMSH0dldCBLWUMgaW5mbyBvZiBhbiBvcmdhbml6YXRpb24aMEdldCBLWUMgaW5mbyBvZiBhbiBvcmdhbml6YXRpb24gdXNpbmcgSUQgb3IgbmFtZYLT5JMCJRIjL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9reWMSgwIKHExpc3RPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnMSPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25TZXJ2aWNlVXNlcnNSZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVzcG9uc2UiYpJBLwoMT3JnYW5pemF0aW9uEh9MaXN0IG9yZ2FuaXphdGlvbiBzZXJ2aWNlIHVzZXJzgtPkkwIqEigvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vc2VydmljZXVzZXJzErkCChtMaXN0T3JnYW5pemF0aW9uSW52aXRhdGlvbnMSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9uc1JlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9uc1Jlc3BvbnNlIpoBkkFkCgxPcmdhbml6YXRpb24SGExpc3QgcGVuZGluZyBpbnZpdGF0aW9ucxo6UmV0dXJucyBhbGwgcGVuZGluZyBpbnZpdGF0aW9ucyBxdWV1ZWQgZm9yIGFuIG9yZ2FuaXphdGlvboLT5JMCLRIrL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9pbnZpdGF0aW9ucxL2AgocQ3JlYXRlT3JnYW5pemF0aW9uSW52aXRhdGlvbhI+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QaPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSLUAZJBmgEKDE9yZ2FuaXphdGlvbhILSW52aXRlIHVzZXIafUludml0ZSB1c2VycyB0byBhbiBvcmdhbml6YXRpb24sIGlmIHVzZXIgaXMgbm90IHJlZ2lzdGVyZWQgb24gdGhlIHBsYXRmb3JtLCBpdCB3aWxsIGJlIG5vdGlmaWVkLiBJbnZpdGF0aW9ucyBleHBpcmUgaW4gNyBkYXlzgtPkkwIwIisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zOgEqErMCChlHZXRPcmdhbml6YXRpb25JbnZpdGF0aW9uEjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVxdWVzdBo8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlc3BvbnNlIpoBkkFfCgxPcmdhbml6YXRpb24SFkdldCBwZW5kaW5nIGludml0YXRpb24aN1JldHVybnMgYSBwZW5kaW5nIGludml0YXRpb24gcXVldWVkIGZvciBhbiBvcmdhbml6YXRpb26C0+STAjISMC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vaW52aXRhdGlvbnMve2lkfRKZAwocQWNjZXB0T3JnYW5pemF0aW9uSW52aXRhdGlvbhI+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWNjZXB0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QaPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSL3AZJBsQEKDE9yZ2FuaXphdGlvbhIZQWNjZXB0IHBlbmRpbmcgaW52aXRhdGlvbhqFAUFjY2VwdCBwZW5kaW5nIGludml0YXRpb24gcXVldWVkIGZvciBhbiBvcmdhbml6YXRpb24uIFRoZSB1c2VyIHdpbGwgYmUgYWRkZWQgdG8gdGhlIG9yZ2FuaXphdGlvbiBhbmQgZ3JvdXBzIGRlZmluZWQgaW4gdGhlIGludml0YXRpb26C0+STAjwiNy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vaW52aXRhdGlvbnMve2lkfS9hY2NlcHQ6ASoSvgIKHERlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb24SPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2UinAGSQWEKDE9yZ2FuaXphdGlvbhIZRGVsZXRlIHBlbmRpbmcgaW52aXRhdGlvbho2RGVsZXRlIGEgcGVuZGluZyBpbnZpdGF0aW9uIHF1ZXVlZCBmb3IgYW4gb3JnYW5pemF0aW9ugtPkkwIyKjAvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zL3tpZH0S2AMKF0xpc3RPcmdhbml6YXRpb25Eb21haW5zEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Eb21haW5zUmVzcG9uc2UixQKSQZICCgxPcmdhbml6YXRpb24SEExpc3Qgb3JnIGRvbWFpbnMa7wFSZXR1cm5zIGFsbCBkb21haW5zIHdoaXRlbGlzdGVkIGZvciBhbiBvcmdhbml6YXRpb24gKGJvdGggcGVuZGluZyBhbmQgdmVyaWZpZWQgaWYgbm8gZmlsdGVycyBhcmUgcHJvdmlkZWQgZm9yIHRoZSBzdGF0ZSkuIFRoZSB2ZXJpZmllZCBkb21haW5zIGFsbG93IHVzZXJzIGVtYWlsIHdpdGggdGhlIG9yZydzIHdoaXRlbGlzdGVkIGRvbWFpbiB0byBqb2luIHRoZSBvcmdhbml6YXRpb24gd2l0aG91dCBpbnZpdGF0aW9uLoLT5JMCKRInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zEv4EChhDcmVhdGVPcmdhbml6YXRpb25Eb21haW4SOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlIugDkkGyAwoMT3JnYW5pemF0aW9uEhFDcmVhdGUgb3JnIGRvbWFpbhqOA0FkZCBhIGRvbWFpbiB0byBhbiBvcmdhbml6YXRpb24gd2hpY2ggaWYgdmVyaWZpZWQgYWxsb3dzIGFsbCB1c2VycyBvZiB0aGUgc2FtZSBkb21haW4gdG8gYmUgc2lnbmVkIHVwIHRvIHRoZSBvcmdhbml6YXRpb24gd2l0aG91dCBpbnZpdGF0aW9uLiBUaGlzIEFQSSBnZW5lcmF0ZXMgYSB2ZXJpZmljYXRpb24gdG9rZW4gZm9yIGEgZG9tYWluIHdoaWNoIG11c3QgYmUgYWRkZWQgdG8geW91ciBkb21haW4ncyBETlMgcHJvdmlkZXIgYXMgYSBUWFQgcmVjb3JkIHNob3VsZCBiZSB2ZXJpZmllZCB3aXRoIEZyb250aWVyIFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpbiBBUEkgYmVmb3JlIGl0IGNhbiBiZSB1c2VkIGFzIGFuIE9yZ2FuaXphdGlvbidzIHRydXN0ZWQgZG9tYWluIHRvIHNpZ24gdXAgdXNlcnMugtPkkwIsIicvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnM6ASoStwIKGERlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpbhI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2UioQGSQWoKDE9yZ2FuaXphdGlvbhIRRGVsZXRlIG9yZyBkb21haW4aR1JlbW92ZSBhIGRvbWFpbiBmcm9tIHRoZSBsaXN0IG9mIGFuIG9yZ2FuaXphdGlvbidzIHRydXN0ZWQgZG9tYWlucyBsaXN0gtPkkwIuKiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnMve2lkfRLiAgoVR2V0T3JnYW5pemF0aW9uRG9tYWluEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSLVAZJBnQEKDE9yZ2FuaXphdGlvbhIOR2V0IG9yZyBkb21haW4afUdldCBhIGRvbWFpbiBmcm9tIHRoZSBsaXN0IG9mIGFuIG9yZ2FuaXphdGlvbidzIHdoaXRlbGlzdGVkIGRvbWFpbnMuIFJldHVybnMgYm90aCB2ZXJpZmllZCBhbmQgdW52ZXJpZmllZCBkb21haW5zIGJ5IHRoZWlyIElEgtPkkwIuEiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnMve2lkfRKlBAoYVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5WZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSKPA5JBzQIKDE9yZ2FuaXphdGlvbhIRVmVyaWZ5IG9yZyBkb21haW4aqQJWZXJpZnkgYSBkb21haW4gZm9yIGFuIG9yZ2FuaXphdGlvbiB3aXRoIGEgdmVyaWZpY2F0aW9uIHRva2VuIGdlbmVyYXRlZCBieSBGcm9udGllciBHZW5lcmF0ZURvbWFpblZlcmlmaWNhdGlvblRva2VuIEFQSS4gVGhlIHRva2VuIG11c3QgYmUgYWRkZWQgdG8geW91ciBkb21haW4ncyBETlMgcHJvdmlkZXIgYXMgYSBUWFQgcmVjb3JkIGJlZm9yZSBpdCBjYW4gYmUgdmVyaWZpZWQuIFRoaXMgQVBJIHJldHVybnMgdGhlIHN0YXRlIG9mIHRoZSBkb21haW4gKHBlbmRpbmcvdmVyaWZpZWQpIGFmdGVyIHZlcmlmaWNhdGlvbi6C0+STAjgiMy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZG9tYWlucy97aWR9L3ZlcmlmeToBKhKSAwoQSm9pbk9yZ2FuaXphdGlvbhIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSm9pbk9yZ2FuaXphdGlvblJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkpvaW5Pcmdhbml6YXRpb25SZXNwb25zZSKUApJB4QEKDE9yZ2FuaXphdGlvbhIRSm9pbiBvcmdhbml6YXRpb24avQFBbGxvd3MgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIgdG8gam9pbiB0aGUgT3JnIGlmIG9uZSBpcyBub3QgYSBwYXJ0IG9mIGl0LiBUaGUgdXNlciB3aWxsIG9ubHkgYmUgYWJsZSB0byBqb2luIHdoZW4gdGhlIHVzZXIgZW1haWwncyBkb21haW4gbWF0Y2hlcyB0aGUgb3JnYW5pemF0aW9uJ3Mgd2hpdGVsaXN0ZWQgZG9tYWlucy6C0+STAikiJC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vam9pbjoBKhLZAgoSRW5hYmxlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVPcmdhbml6YXRpb25SZXNwb25zZSLVAZJBpAEKDE9yZ2FuaXphdGlvbhITRW5hYmxlIG9yZ2FuaXphdGlvbhp/U2V0cyB0aGUgc3RhdGUgb2YgdGhlIG9yZ2FuaXphdGlvbiBhcyBlbmFibGVkLiBUaGUgZXhpc3RpbmcgdXNlcnMgaW4gdGhlIG9yZyB3aWxsIGJlIGFibGUgdG8gYWNjZXNzIGFueSBvcmdhbml6YXRpb24gcmVzb3VyY2VzLoLT5JMCJyIiL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L2VuYWJsZToBKhLkAgoTRGlzYWJsZU9yZ2FuaXphdGlvbhI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZU9yZ2FuaXphdGlvblJlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVPcmdhbml6YXRpb25SZXNwb25zZSLdAZJBqwEKDE9yZ2FuaXphdGlvbhIURGlzYWJsZSBvcmdhbml6YXRpb24ahAFTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgb3JnYW5pemF0aW9uIGFzIGRpc2FibGVkLiBUaGUgZXhpc3RpbmcgdXNlcnMgaW4gdGhlIG9yZyB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyBhbnkgb3JnYW5pemF0aW9uIHJlc291cmNlcy6C0+STAigiIy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9kaXNhYmxlOgEqEsYCChJEZWxldGVPcmdhbml6YXRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJlc3BvbnNlIsIBkkGbAQoMT3JnYW5pemF0aW9uEhNEZWxldGUgb3JnYW5pemF0aW9uGnZEZWxldGUgYW4gb3JnYW5pemF0aW9uIGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucyBwZXJtYW5lbnRseS4gVGhlIG9yZ2FuaXphdGlvbiB1c2VycyB3aWxsIG5vdCBiZSBkZWxldGVkIGZyb20gRnJvbnRpZXIugtPkkwIdKhsvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0SrwEKDUNyZWF0ZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9qZWN0UmVzcG9uc2UiO5JBGQoHUHJvamVjdBIOQ3JlYXRlIHByb2plY3SC0+STAhkiES92MWJldGExL3Byb2plY3RzOgRib2R5ErsBCgpHZXRQcm9qZWN0EiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9qZWN0UmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlc3BvbnNlIlCSQS8KB1Byb2plY3QSC0dldCBwcm9qZWN0GhdSZXR1cm5zIGEgcHJvamVjdCBieSBJRILT5JMCGBIWL3YxYmV0YTEvcHJvamVjdHMve2lkfRLNAQoNVXBkYXRlUHJvamVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvamVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXNwb25zZSJZkkEyCgdQcm9qZWN0Eg5VcGRhdGUgcHJvamVjdBoXVXBkYXRlcyBhIHByb2plY3QgYnkgSUSC0+STAh4aFi92MWJldGExL3Byb2plY3RzL3tpZH06BGJvZHkS8wEKEUxpc3RQcm9qZWN0QWRtaW5zEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEFkbWluc1JlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0QWRtaW5zUmVzcG9uc2Uic5JBSwoHUHJvamVjdBITTGlzdCBwcm9qZWN0IGFkbWlucxorUmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgYWRtaW5zIG9mIGEgcHJvamVjdILT5JMCHxIdL3YxYmV0YTEvcHJvamVjdHMve2lkfS9hZG1pbnMSmAIKEExpc3RQcm9qZWN0VXNlcnMSMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0VXNlcnNSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFVzZXJzUmVzcG9uc2UimgGSQXMKB1Byb2plY3QSEkxpc3QgcHJvamVjdCB1c2VycxpUUmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgdXNlcnMgb2YgYSBwcm9qZWN0LiBGaWx0ZXIgYnkgdXNlciBwZXJtaXNzaW9ucyBpcyBzdXBwb3J0ZWQugtPkkwIeEhwvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3VzZXJzEpECChdMaXN0UHJvamVjdFNlcnZpY2VVc2VycxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlIn+SQVEKB1Byb2plY3QSGUxpc3QgcHJvamVjdCBzZXJ2aWNldXNlcnMaK1JldHVybnMgYSBjb2xsZWN0aW9uIG9mIHVzZXJzIG9mIGEgcHJvamVjdC6C0+STAiUSIy92MWJldGExL3Byb2plY3RzL3tpZH0vc2VydmljZXVzZXJzEvQBChFMaXN0UHJvamVjdEdyb3VwcxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RHcm91cHNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEdyb3Vwc1Jlc3BvbnNlInSSQUwKB1Byb2plY3QSE0xpc3QgcHJvamVjdCBncm91cHMaLFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGdyb3VwcyBvZiBhIHByb2plY3QugtPkkwIfEh0vdjFiZXRhMS9wcm9qZWN0cy97aWR9L2dyb3VwcxK4AQoNRW5hYmxlUHJvamVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlUHJvamVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZVByb2plY3RSZXNwb25zZSJEkkEZCgdQcm9qZWN0Eg5FbmFibGUgcHJvamVjdILT5JMCIiIdL3YxYmV0YTEvcHJvamVjdHMve2lkfS9lbmFibGU6ASoSvQEKDkRpc2FibGVQcm9qZWN0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlUHJvamVjdFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVQcm9qZWN0UmVzcG9uc2UiRpJBGgoHUHJvamVjdBIPRGlzYWJsZSBwcm9qZWN0gtPkkwIjIh4vdjFiZXRhMS9wcm9qZWN0cy97aWR9L2Rpc2FibGU6ASoS4gEKDURlbGV0ZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVzcG9uc2UibpJBTQoHUHJvamVjdBIORGVsZXRlIFByb2plY3QaMkRlbGV0ZSBhIHByb2plY3QgYWxsIG9mIGl0cyByZWxhdGlvbnMgcGVybWFuZW50bHkugtPkkwIYKhYvdjFiZXRhMS9wcm9qZWN0cy97aWR9Er0BCgxDcmVhdGVQb2xpY3kSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeVJlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeVJlc3BvbnNlIkySQSoKBlBvbGljeRINQ3JlYXRlIHBvbGljeRoRQ3JlYXRlcyBhIHBvbGljeSCC0+STAhkiES92MWJldGExL3BvbGljaWVzOgRib2R5ErUBCglHZXRQb2xpY3kSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBvbGljeVJlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBvbGljeVJlc3BvbnNlIk2SQSwKBlBvbGljeRIKR2V0IHBvbGljeRoWUmV0dXJucyBhIHBvbGljeSBieSBJRILT5JMCGBIWL3YxYmV0YTEvcG9saWNpZXMve2lkfRK5AgoMTGlzdFBvbGljaWVzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UG9saWNpZXNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UG9saWNpZXNSZXNwb25zZSLHAZJBqgEKBlBvbGljeRIRTGlzdCBhbGwgcG9saWNpZXMajAFMaXN0cyBhbGwgdGhlIHBvbGljaWVzIGZyb20gYWxsIHRoZSBvcmdhbml6YXRpb25zIGluIGEgRnJvbnRpZXIgaW5zdGFuY2UuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSBvcmdhbml6YXRpb24sIHByb2plY3QsIHVzZXIsIHJvbGUgYW5kIGdyb3VwLoLT5JMCExIRL3YxYmV0YTEvcG9saWNpZXMSxwEKDFVwZGF0ZVBvbGljeRIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUG9saWN5UmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUG9saWN5UmVzcG9uc2UiVpJBLwoGUG9saWN5Eg1VcGRhdGUgcG9saWN5GhZVcGRhdGVzIGEgcG9saWN5IGJ5IElEgtPkkwIeGhYvdjFiZXRhMS9wb2xpY2llcy97aWR9OgRib2R5EtwBCgxEZWxldGVQb2xpY3kSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBvbGljeVJlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVBvbGljeVJlc3BvbnNlImuSQUoKBlBvbGljeRINRGVsZXRlIFBvbGljeRoxRGVsZXRlIGEgcG9saWN5IGFsbCBvZiBpdHMgcmVsYXRpb25zIHBlcm1hbmVudGx5LoLT5JMCGCoWL3YxYmV0YTEvcG9saWNpZXMve2lkfRKJAgoWQ3JlYXRlUG9saWN5Rm9yUHJvamVjdBI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUG9saWN5Rm9yUHJvamVjdFJlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RSZXNwb25zZSJ6kkFCCgZQb2xpY3kSGUNyZWF0ZSBQb2xpY3kgZm9yIFByb2plY3QaHUNyZWF0ZSBhIHBvbGljeSBmb3IgYSBwcm9qZWN0gtPkkwIvIicvdjFiZXRhMS9wb2xpY2llcy9wcm9qZWN0cy97cHJvamVjdF9pZH06BGJvZHkStQEKDkNyZWF0ZVJlbGF0aW9uEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSZWxhdGlvblJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVJlbGF0aW9uUmVzcG9uc2UiPpJBGwoIUmVsYXRpb24SD0NyZWF0ZSByZWxhdGlvboLT5JMCGiISL3YxYmV0YTEvcmVsYXRpb25zOgRib2R5EsIBCgtHZXRSZWxhdGlvbhItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UmVsYXRpb25SZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRSZWxhdGlvblJlc3BvbnNlIlSSQTIKCFJlbGF0aW9uEgxHZXQgcmVsYXRpb24aGFJldHVybnMgYSByZWxhdGlvbiBieSBJRILT5JMCGRIXL3YxYmV0YTEvcmVsYXRpb25zL3tpZH0SkAIKDkRlbGV0ZVJlbGF0aW9uEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVSZWxhdGlvblJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVJlbGF0aW9uUmVzcG9uc2UimAGSQU4KCFJlbGF0aW9uEg9EZWxldGUgcmVsYXRpb24aMVJlbW92ZSBhIHN1YmplY3QgaGF2aW5nIGEgcmVsYXRpb24gZnJvbSBhbiBvYmplY3SC0+STAkEqPy92MWJldGExL3JlbGF0aW9ucy97cmVsYXRpb259L29iamVjdC97b2JqZWN0fS9zdWJqZWN0L3tzdWJqZWN0fRK6AQoPTGlzdFBlcm1pc3Npb25zEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGVybWlzc2lvbnNSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGVybWlzc2lvbnNSZXNwb25zZSJAkkEhCgpQZXJtaXNzaW9uEhNHZXQgYWxsIHBlcm1pc3Npb25zgtPkkwIWEhQvdjFiZXRhMS9wZXJtaXNzaW9ucxLQAQoNR2V0UGVybWlzc2lvbhIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UGVybWlzc2lvblJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBlcm1pc3Npb25SZXNwb25zZSJckkE4CgpQZXJtaXNzaW9uEg5HZXQgcGVybWlzc2lvbhoaUmV0dXJucyBhIHBlcm1pc3Npb24gYnkgSUSC0+STAhsSGS92MWJldGExL3Blcm1pc3Npb25zL3tpZH0S7wEKDkxpc3ROYW1lc3BhY2VzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TmFtZXNwYWNlc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3ROYW1lc3BhY2VzUmVzcG9uc2UieJJBWgoJTmFtZXNwYWNlEhJHZXQgYWxsIG5hbWVzcGFjZXMaOVJldHVybnMgdGhlIGxpc3Qgb2YgYWxsIG5hbWVzcGFjZXMgaW4gYSBGcm9udGllciBpbnN0YW5jZYLT5JMCFRITL3YxYmV0YTEvbmFtZXNwYWNlcxLJAQoMR2V0TmFtZXNwYWNlEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXROYW1lc3BhY2VSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXROYW1lc3BhY2VSZXNwb25zZSJYkkE1CglOYW1lc3BhY2USDUdldCBuYW1lc3BhY2UaGVJldHVybnMgYSBuYW1lc3BhY2UgYnkgSUSC0+STAhoSGC92MWJldGExL25hbWVzcGFjZXMve2lkfRLZAQoUTGlzdFByb2plY3RSZXNvdXJjZXMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0UmVzb3VyY2VzUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RSZXNvdXJjZXNSZXNwb25zZSJQkkEdCghSZXNvdXJjZRIRR2V0IGFsbCByZXNvdXJjZXOC0+STAioSKC92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXMSgQIKFUNyZWF0ZVByb2plY3RSZXNvdXJjZRI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFJlc291cmNlUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UidZJBPAoIUmVzb3VyY2USD0NyZWF0ZSByZXNvdXJjZRofQ3JlYXRlcyBhIHJlc291cmNlIGluIGEgcHJvamVjdILT5JMCMCIoL3YxYmV0YTEvcHJvamVjdHMve3Byb2plY3RfaWR9L3Jlc291cmNlczoEYm9keRL1AQoSR2V0UHJvamVjdFJlc291cmNlEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9qZWN0UmVzb3VyY2VSZXNwb25zZSJykkE6CghSZXNvdXJjZRIMR2V0IHJlc291cmNlGiBSZXR1cm5zIGEgcHJvamVjdCByZXNvdXJjZSBieSBJRILT5JMCLxItL3YxYmV0YTEvcHJvamVjdHMve3Byb2plY3RfaWR9L3Jlc291cmNlcy97aWR9EoYCChVVcGRhdGVQcm9qZWN0UmVzb3VyY2USNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlInqSQTwKCFJlc291cmNlEg9VcGRhdGUgcmVzb3VyY2UaH1VwZGF0ZXMgYSByZXNvdXJjZSBpbiBhIHByb2plY3SC0+STAjUaLS92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXMve2lkfToEYm9keRKPAgoVRGVsZXRlUHJvamVjdFJlc291cmNlEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVzb3VyY2VSZXNwb25zZSKCAZJBSgoIUmVzb3VyY2USD0RlbGV0ZSByZXNvdXJjZRotRGVsZXRlcyBhIHJlc291cmNlIGZyb20gYSBwcm9qZWN0IHBlcm1hbmVudGx5gtPkkwIvKi0vdjFiZXRhMS9wcm9qZWN0cy97cHJvamVjdF9pZH0vcmVzb3VyY2VzL3tpZH0S+wMKF0NoZWNrUmVzb3VyY2VQZXJtaXNzaW9uEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja1Jlc291cmNlUGVybWlzc2lvblJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2Ui6AKSQcsCCgVBdXRoehIFQ2hlY2saugJSZXR1cm5zIHRydWUgaWYgYSBwcmluY2lwYWwgaGFzIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBhIHJlc291cmNlIGFuZCBmYWxzZSBvdGhlcndpc2UuPGJyLz4gTm90ZSB0aGUgcHJpbmNpcGFsIGNhbiBiZSBhIHVzZXIgb3IgYSBzZXJ2aWNlIGFjY291bnQuIEZyb250aWVyIHdpbGwgZXh0cmFjdCBwcmluY2lwYWwgZnJvbSB0aGUgY3VycmVudCBsb2dnZWQgaW4gc2Vzc2lvbiBjb29raWUgKGlmIGFueSksIG9yIHRoZSBjbGllbnQgaWQgYW5kIHNlY3JldCAoaW4gY2FzZSBvZiBzZXJ2aWNlIHVzZXJzKSBvciB0aGUgYWNjZXNzIHRva2VuLoLT5JMCEyIOL3YxYmV0YTEvY2hlY2s6ASoSswQKFEJhdGNoQ2hlY2tQZXJtaXNzaW9uEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CYXRjaENoZWNrUGVybWlzc2lvblJlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uUmVzcG9uc2UiqQOSQYcDCgVBdXRoehILQmF0Y2ggY2hlY2sa8AJSZXR1cm5zIHRydWUgaWYgYSBwcmluY2lwYWwgaGFzIHJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIGFjY2VzcyBhIHJlc291cmNlIGFuZCBmYWxzZSBvdGhlcndpc2UuPGJyLz4gTm90ZSB0aGUgcHJpbmNpcGFsIGNhbiBiZSBhIHVzZXIgb3IgYSBzZXJ2aWNlIGFjY291bnQsIGFuZCBGcm9udGllciB3aWxsIHRoZSBjcmVkZW50aWFscyBmcm9tIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiBwcmluY2lwYWwgZnJvbSB0aGUgc2Vzc2lvbiBjb29raWUgKGlmIGFueSksIG9yIHRoZSBjbGllbnQgaWQgYW5kIHNlY3JldCAoaW4gY2FzZSBvZiBzZXJ2aWNlIHVzZXJzKSBvciB0aGUgYWNjZXNzIHRva2VuIChpbiBjYXNlIG9mIGh1bWFuIHVzZXIgYWNjb3VudHMpLoLT5JMCGCITL3YxYmV0YTEvYmF0Y2hjaGVjazoBKhK1AQoHR2V0SldLcxIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0SldLc1JlcXVlc3QaKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEpXS3NSZXNwb25zZSJTkkEcCgVBdXRoehITR2V0IHdlbGwga25vd24gSldLc4LT5JMCLhISL3YxYmV0YTEvYXV0aC9qd2tzWhgSFi8ud2VsbC1rbm93bi9qd2tzLmpzb24ScQoMTGlzdFNlc3Npb25zEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2Vzc2lvbnNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2Vzc2lvbnNSZXNwb25zZSIAEnQKDVJldm9rZVNlc3Npb24SLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJldm9rZVNlc3Npb25SZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZva2VTZXNzaW9uUmVzcG9uc2UiABJ6Cg9QaW5nVXNlclNlc3Npb24SMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBpbmdVc2VyU2Vzc2lvblJlcXVlc3QaMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBpbmdVc2VyU2Vzc2lvblJlc3BvbnNlIgAStwIKEkxpc3RBdXRoU3RyYXRlZ2llcxI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEF1dGhTdHJhdGVnaWVzUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEF1dGhTdHJhdGVnaWVzUmVzcG9uc2UiswGSQZoBCgVBdXRobhIeTGlzdCBhdXRoZW50aWNhdGlvbiBzdHJhdGVnaWVzGnFSZXR1cm5zIGEgbGlzdCBvZiBpZGVudGl0eSBwcm92aWRlcnMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBsZXZlbCBpbiBGcm9udGllci4gZS5nIEdvb2dsZSwgQXp1cmVBRCwgR2l0aHViIGV0Y4LT5JMCDxINL3YxYmV0YTEvYXV0aBLpBAoMQXV0aGVudGljYXRlEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoZW50aWNhdGVSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoZW50aWNhdGVSZXNwb25zZSL3A5JBmAMKBUF1dGhuEhxBdXRoZW50aWNhdGUgd2l0aCBhIHN0cmF0ZWd5GvACQXV0aGVudGljYXRlIGEgdXNlciB3aXRoIGEgc3RyYXRlZ3kuIEJ5IGRlZmF1bHQsIGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24gbm8gb3BlcmF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIHRvIGFwcGx5IHJlZGlyZWN0aW9uIGluIGNhc2Ugb2YgYnJvd3NlcnMsIHByb3ZpZGUgYSB1cmwgaW4gdGhlIGF1dGhlbnRpY2F0ZSByZXF1ZXN0IGJvZHkgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHJlZGlyZWN0aW9uIGFmdGVyIGF1dGhlbnRpY2F0aW9uLiBBbHNvIHNldCByZWRpcmVjdCBhcyB0cnVlIGZvciByZWRpcmVjdGluZyB0aGUgdXNlciByZXF1ZXN0IHRvIHRoZSByZWRpcmVjdF91cmwgYWZ0ZXIgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi6C0+STAlUSJi92MWJldGExL2F1dGgvcmVnaXN0ZXIve3N0cmF0ZWd5X25hbWV9WisiJi92MWJldGExL2F1dGgvcmVnaXN0ZXIve3N0cmF0ZWd5X25hbWV9OgEqEr0ECgxBdXRoQ2FsbGJhY2sSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhDYWxsYmFja1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhDYWxsYmFja1Jlc3BvbnNlIssDkkGMAwoFQXV0aG4SGENhbGxiYWNrIGZyb20gYSBzdHJhdGVneRroAkNhbGxiYWNrIGZyb20gYSBzdHJhdGVneS4gVGhpcyBpcyB0aGUgZW5kcG9pbnQgd2hlcmUgdGhlIHN0cmF0ZWd5IHdpbGwgcmVkaXJlY3QgdGhlIHVzZXIgYWZ0ZXIgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4gVGhpcyBlbmRwb2ludCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBjb2RlIGFuZCBzdGF0ZSBxdWVyeSBwYXJhbWV0ZXJzLiBUaGUgY29kZSB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSBhY2Nlc3MgdG9rZW4gZnJvbSB0aGUgc3RyYXRlZ3kgYW5kIHRoZSBzdGF0ZSB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSByZXR1cm5fdG8gdXJsIGZyb20gdGhlIHNlc3Npb24gYW5kIHJlZGlyZWN0IHRoZSB1c2VyIHRvIHRoYXQgdXJsLoLT5JMCNRIWL3YxYmV0YTEvYXV0aC9jYWxsYmFja1obIhYvdjFiZXRhMS9hdXRoL2NhbGxiYWNrOgEqEsIDCglBdXRoVG9rZW4SKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhUb2tlblJlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhUb2tlblJlc3BvbnNlItkCkkG3AgoFQXV0aG4SKkdlbmVyYXRlIGFjY2VzcyB0b2tlbiBieSBnaXZlbiBjcmVkZW50aWFscxqBAkFjY2VzcyB0b2tlbiBjYW4gYmUgZ2VuZXJhdGVkIGJ5IHByb3ZpZGluZyB0aGUgY3JlZGVudGlhbHMgaW4gdGhlIHJlcXVlc3QgYm9keS9oZWFkZXIuIFRoZSBjcmVkZW50aWFscyBjYW4gYmUgY2xpZW50IGlkIGFuZCBzZWNyZXQgb3Igc2VydmljZSBhY2NvdW50IGdlbmVyYXRlZCBrZXkgand0LiBVc2UgdGhlIGdlbmVyYXRlZCBhY2Nlc3MgdG9rZW4gaW4gQXV0aG9yaXphdGlvbiBoZWFkZXIgdG8gYWNjZXNzIHRoZSBmcm9udGllciByZXNvdXJjZXMugtPkkwIYIhMvdjFiZXRhMS9hdXRoL3Rva2VuOgEqEsEBCgpBdXRoTG9nb3V0EiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoTG9nb3V0UmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aExvZ291dFJlc3BvbnNlIlaSQR8KBUF1dGhuEhZMb2dvdXQgZnJvbSBhIHN0cmF0ZWd5gtPkkwIuEhQvdjFiZXRhMS9hdXRoL2xvZ291dFoWKhQvdjFiZXRhMS9hdXRoL2xvZ291dBKuAgoPTGlzdE1ldGFTY2hlbWFzEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TWV0YVNjaGVtYXNSZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TWV0YVNjaGVtYXNSZXNwb25zZSKzAZJBkgEKCk1ldGFTY2hlbWESEExpc3QgbWV0YXNjaGVtYXMaclJldHVybnMgYSBsaXN0IG9mIGFsbCBtZXRhc2NoZW1hcyBjb25maWd1cmVkIG9uIGFuIGluc3RhbmNlIGxldmVsIGluIEZyb250aWVyLiBlLmcgdXNlciwgcHJvamVjdCwgb3JnYW5pemF0aW9uIGV0Y4LT5JMCFxIVL3YxYmV0YTEvbWV0YS9zY2hlbWFzEp8FChBDcmVhdGVNZXRhU2NoZW1hEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVNZXRhU2NoZW1hUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlTWV0YVNjaGVtYVJlc3BvbnNlIqEEkkH6AwoKTWV0YVNjaGVtYRIRQ3JlYXRlIG1ldGFzY2hlbWEa2ANDcmVhdGUgYSBuZXcgbWV0YWRhdGEgc2NoZW1hLiBUaGUgbWV0YXNjaGVtYSAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGVudGlyZSBGcm9udGllciBpbnN0YW5jZSBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIG1ldGFzY2hlbWEgKipzY2hlbWEqKiBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEuIDxici8+KkV4YW1wbGU6KiBge25hbWU6InVzZXIiLHNjaGVtYTp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImxhYmVsIjp7InR5cGUiOiJvYmplY3QiLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn19LCJkZXNjcmlwdGlvbiI6eyJ0eXBlIjoic3RyaW5nIn19fX1ggtPkkwIdIhUvdjFiZXRhMS9tZXRhL3NjaGVtYXM6BGJvZHkS0wEKDUdldE1ldGFTY2hlbWESLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE1ldGFTY2hlbWFSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRNZXRhU2NoZW1hUmVzcG9uc2UiX5JBOgoKTWV0YVNjaGVtYRIOR2V0IG1ldGFzY2hlbWEaHEdldCBhIG1ldGFkYXRhIHNjaGVtYSBieSBJRC6C0+STAhwSGi92MWJldGExL21ldGEvc2NoZW1hcy97aWR9EsEEChBVcGRhdGVNZXRhU2NoZW1hEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVNZXRhU2NoZW1hUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlTWV0YVNjaGVtYVJlc3BvbnNlIsMDkkGXAwoKTWV0YVNjaGVtYRIRVXBkYXRlIG1ldGFzY2hlbWEa9QJVcGRhdGUgYSBtZXRhZGF0YSBzY2hlbWEuIE9ubHkgYHNjaGVtYWAgZmllbGQgb2YgYSBtZXRhc2NoZW1hIGNhbiBiZSB1cGRhdGVkLiBUaGUgbWV0YXNjaGVtYSBgc2NoZW1hYCBtdXN0IGJlIGEgdmFsaWQgSlNPTiBzY2hlbWEuUGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vanNvbi1zY2hlbWEub3JnLyB0byBrbm93IG1vcmUgYWJvdXQganNvbiBzY2hlbWEuIDxici8+KkV4YW1wbGU6KiBge25hbWU6InVzZXIiLHNjaGVtYTp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImxhYmVsIjp7InR5cGUiOiJvYmplY3QiLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn19LCJkZXNjcmlwdGlvbiI6eyJ0eXBlIjoic3RyaW5nIn19fX1ggtPkkwIiGhovdjFiZXRhMS9tZXRhL3NjaGVtYXMve2lkfToEYm9keRLjBAoQRGVsZXRlTWV0YVNjaGVtYRIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlTWV0YVNjaGVtYVJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU1ldGFTY2hlbWFSZXNwb25zZSLlA5JBvwMKCk1ldGFTY2hlbWESEURlbGV0ZSBtZXRhc2NoZW1hGp0DRGVsZXRlIGEgbWV0YWRhdGEgc2NoZW1hIHBlcm1hbmVudGx5LiBPbmNlIGRlbGV0ZWQgdGhlIG1ldGFzY2hlbWEgd29uJ3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbWV0YWRhdGEuIEZvciBleGFtcGxlLCBpZiBhIG1ldGFzY2hlbWEod2l0aCBgbGFiZWxgIGFuZCBgZGVzY3JpcHRpb25gIGZpZWxkcykgaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUgbWV0YWRhdGEgb2YgYSB1c2VyLCB0aGVuIGRlbGV0aW5nIHRoZSBtZXRhc2NoZW1hIHdpbGwgbm90IHZhbGlkYXRlIHRoZSBtZXRhZGF0YSBvZiB0aGUgdXNlciBhbmQgbWV0YWRhdGEgZmllbGQgY2FuIGNvbnRhaW4gYW55IGtleS12YWx1ZSBwYWlyKGFuZCBzYXkgYW5vdGhlciBmaWVsZCBjYWxsZWQgYGZvb2AgY2FuIGJlIGluc2VydGVkIGluIGEgdXNlcidzIG1ldGFkYXRhKS6C0+STAhwqGi92MWJldGExL21ldGEvc2NoZW1hcy97aWR9EuACChlMaXN0T3JnYW5pemF0aW9uQXVkaXRMb2dzEjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uQXVkaXRMb2dzUmVxdWVzdBo8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkF1ZGl0TG9nc1Jlc3BvbnNlIscBiAIBkkGPAQoIQXVkaXRMb2cSD0xpc3QgYXVkaXQgbG9ncxpwUmV0dXJucyBhIGxpc3Qgb2YgYXVkaXQgbG9ncyBvZiBhbiBvcmdhbml6YXRpb24gaW4gRnJvbnRpZXIuIERFUFJFQ0FURUQ6IFVzZSBhZG1pbiBMaXN0QXVkaXRSZWNvcmRzIEFQSSBpbnN0ZWFkLlgBgtPkkwIrEikvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2F1ZGl0bG9ncxLVAgobQ3JlYXRlT3JnYW5pemF0aW9uQXVkaXRMb2dzEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25BdWRpdExvZ3NSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25BdWRpdExvZ3NSZXNwb25zZSK2AYgCAZJBfAoIQXVkaXRMb2cSEENyZWF0ZSBhdWRpdCBsb2caXENyZWF0ZSBuZXcgYXVkaXQgbG9ncyBpbiBhIGJhdGNoLiBERVBSRUNBVEVEOiBVc2UgTGlzdEF1ZGl0UmVjb3JkcyBBUEkgaW5zdGVhZCB3aXRoIGZpbHRlcnMuWAGC0+STAi4iKS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYXVkaXRsb2dzOgEqErUCChdHZXRPcmdhbml6YXRpb25BdWRpdExvZxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uQXVkaXRMb2dSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25BdWRpdExvZ1Jlc3BvbnNlIqIBiAIBkkFmCghBdWRpdExvZxINR2V0IGF1ZGl0IGxvZxpJR2V0IGFuIGF1ZGl0IGxvZyBieSBJRC4gREVQUkVDQVRFRDogVXNlIGFkbWluIEdldEF1ZGl0UmVjb3JkIEFQSSBpbnN0ZWFkLlgBgtPkkwIwEi4vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2F1ZGl0bG9ncy97aWR9EokCChNEZXNjcmliZVByZWZlcmVuY2VzEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZXNjcmliZVByZWZlcmVuY2VzUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVzY3JpYmVQcmVmZXJlbmNlc1Jlc3BvbnNlIoIBkkFcCgpQcmVmZXJlbmNlEhREZXNjcmliZSBwcmVmZXJlbmNlcxo4UmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByZWZlcmVuY2VzIHN1cHBvcnRlZCBieSBGcm9udGllci6C0+STAh0SGy92MWJldGExL3ByZWZlcmVuY2VzL3RyYWl0cxLEAwodQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXMSPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVxdWVzdBpALnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXNwb25zZSKfApJB6QEKClByZWZlcmVuY2USH0NyZWF0ZSBvcmdhbml6YXRpb24gcHJlZmVyZW5jZXMauQFDcmVhdGUgYSBuZXcgb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzLiBUaGUgb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCLCInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3ByZWZlcmVuY2VzOgEqEqUCChtMaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXMSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlIoYBkkFUCgpQcmVmZXJlbmNlEh1MaXN0IG9yZ2FuaXphdGlvbiBwcmVmZXJlbmNlcxonTGlzdCBhbiBvcmdhbml6YXRpb24gcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIpEicvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vcHJlZmVyZW5jZXMSnAMKGENyZWF0ZVByb2plY3RQcmVmZXJlbmNlcxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFByZWZlcmVuY2VzUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFByZWZlcmVuY2VzUmVzcG9uc2UihgKSQdUBCgpQcmVmZXJlbmNlEhpDcmVhdGUgcHJvamVjdCBwcmVmZXJlbmNlcxqqAUNyZWF0ZSBhIG5ldyBwcm9qZWN0IHByZWZlcmVuY2VzLiBUaGUgcHJvamVjdCBwcmVmZXJlbmNlcyAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHByb2plY3QgYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwInIiIvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3ByZWZlcmVuY2VzOgEqEoUCChZMaXN0UHJvamVjdFByZWZlcmVuY2VzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFByZWZlcmVuY2VzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlInaSQUkKClByZWZlcmVuY2USGExpc3QgcHJvamVjdCBwcmVmZXJlbmNlcxohTGlzdCBhIHByb2plY3QgcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIkEiIvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3ByZWZlcmVuY2VzEowDChZDcmVhdGVHcm91cFByZWZlcmVuY2VzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVHcm91cFByZWZlcmVuY2VzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1Jlc3BvbnNlIvwBkkHNAQoKUHJlZmVyZW5jZRIYQ3JlYXRlIGdyb3VwIHByZWZlcmVuY2VzGqQBQ3JlYXRlIGEgbmV3IGdyb3VwIHByZWZlcmVuY2VzLiBUaGUgZ3JvdXAgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBncm91cCBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiUiIC92MWJldGExL2dyb3Vwcy97aWR9L3ByZWZlcmVuY2VzOgEqEvkBChRMaXN0R3JvdXBQcmVmZXJlbmNlcxI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBQcmVmZXJlbmNlc1Jlc3BvbnNlInCSQUUKClByZWZlcmVuY2USFkxpc3QgZ3JvdXAgcHJlZmVyZW5jZXMaH0xpc3QgYSBncm91cCBwcmVmZXJlbmNlcyBieSBJRC6C0+STAiISIC92MWJldGExL2dyb3Vwcy97aWR9L3ByZWZlcmVuY2VzEoQDChVDcmVhdGVVc2VyUHJlZmVyZW5jZXMSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlIvcBkkHJAQoKUHJlZmVyZW5jZRIXQ3JlYXRlIHVzZXIgcHJlZmVyZW5jZXMaoQFDcmVhdGUgYSBuZXcgdXNlciBwcmVmZXJlbmNlcy4gVGhlIHVzZXIgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSB1c2VyIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCJCIfL3YxYmV0YTEvdXNlcnMve2lkfS9wcmVmZXJlbmNlczoBKhLzAQoTTGlzdFVzZXJQcmVmZXJlbmNlcxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSJtkkFDCgpQcmVmZXJlbmNlEhVMaXN0IHVzZXIgcHJlZmVyZW5jZXMaHkxpc3QgYSB1c2VyIHByZWZlcmVuY2VzIGJ5IElELoLT5JMCIRIfL3YxYmV0YTEvdXNlcnMve2lkfS9wcmVmZXJlbmNlcxKhAwocQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlcxI+LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQ3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaPy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSL/AZJB0QEKClByZWZlcmVuY2USH0NyZWF0ZSBjdXJyZW50IHVzZXIgcHJlZmVyZW5jZXMaoQFDcmVhdGUgYSBuZXcgdXNlciBwcmVmZXJlbmNlcy4gVGhlIHVzZXIgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSB1c2VyIGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCJCIfL3YxYmV0YTEvdXNlcnMvc2VsZi9wcmVmZXJlbmNlczoBKhKQAgoaTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXMSPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzUmVxdWVzdBo9LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSJ1kkFLCgpQcmVmZXJlbmNlEh1MaXN0IGN1cnJlbnQgdXNlciBwcmVmZXJlbmNlcxoeTGlzdCBhIHVzZXIgcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIhEh8vdjFiZXRhMS91c2Vycy9zZWxmL3ByZWZlcmVuY2VzEpMCChRDcmVhdGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlIokBkkFUCgdCaWxsaW5nEhZDcmVhdGUgYmlsbGluZyBhY2NvdW50GjFDcmVhdGUgYSBuZXcgYmlsbGluZyBhY2NvdW50IGZvciBhbiBvcmdhbml6YXRpb24ugtPkkwIsIicvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmc6ASoS8wEKEUdldEJpbGxpbmdBY2NvdW50EjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEJpbGxpbmdBY2NvdW50UmVzcG9uc2Uic5JBPAoHQmlsbGluZxITR2V0IGJpbGxpbmcgYWNjb3VudBocR2V0IGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCLhIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0ShQIKFFVwZGF0ZUJpbGxpbmdBY2NvdW50EjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudFJlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UifJJBQgoHQmlsbGluZxIWVXBkYXRlIGJpbGxpbmcgYWNjb3VudBofVXBkYXRlIGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCMRosL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH06ASoSwQIKFlJlZ2lzdGVyQmlsbGluZ0FjY291bnQSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlZ2lzdGVyQmlsbGluZ0FjY291bnRSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWdpc3RlckJpbGxpbmdBY2NvdW50UmVzcG9uc2UisQGSQW4KB0JpbGxpbmcSJFJlZ2lzdGVyIGJpbGxpbmcgYWNjb3VudCB0byBwcm92aWRlcho9UmVnaXN0ZXIgYSBiaWxsaW5nIGFjY291bnQgdG8gYSBwcm92aWRlciBpZiBpdCdzIG5vdCBhbHJlYWR5LoLT5JMCOiI1L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vcmVnaXN0ZXI6ASoSgwIKE0xpc3RCaWxsaW5nQWNjb3VudHMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RCaWxsaW5nQWNjb3VudHNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QmlsbGluZ0FjY291bnRzUmVzcG9uc2UifZJBSwoHQmlsbGluZxIVTGlzdCBiaWxsaW5nIGFjY291bnRzGilMaXN0IGJpbGxpbmcgYWNjb3VudHMgb2YgYW4gb3JnYW5pemF0aW9uLoLT5JMCKRInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nEoICChREZWxldGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlInmSQUIKB0JpbGxpbmcSFkRlbGV0ZSBiaWxsaW5nIGFjY291bnQaH0RlbGV0ZSBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC6C0+STAi4qLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9Eo0CChRFbmFibGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlIoMBkkFCCgdCaWxsaW5nEhZFbmFibGUgYmlsbGluZyBhY2NvdW50Gh9FbmFibGUgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQugtPkkwI4IjMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9lbmFibGU6ASoS6QIKFURpc2FibGVCaWxsaW5nQWNjb3VudBI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVzcG9uc2Ui3AGSQZkBCgdCaWxsaW5nEhdEaXNhYmxlIGJpbGxpbmcgYWNjb3VudBp1RGlzYWJsZSBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC4gRGlzYWJsaW5nIGEgYmlsbGluZyBhY2NvdW50IGRvZXNuJ3QgYXV0b21hdGljYWxseSBkaXNhYmxlIGl0J3MgYWN0aXZlIHN1YnNjcmlwdGlvbnMugtPkkwI5IjQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9kaXNhYmxlOgEqEosCChFHZXRCaWxsaW5nQmFsYW5jZRIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0JhbGFuY2VSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQmFsYW5jZVJlc3BvbnNlIooBkkFLCgdCaWxsaW5nEhNHZXQgYmlsbGluZyBiYWxhbmNlGitHZXQgdGhlIGJhbGFuY2Ugb2YgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQugtPkkwI2EjQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9iYWxhbmNlEvoBCgpIYXNUcmlhbGVkEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5IYXNUcmlhbGVkUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSGFzVHJpYWxlZFJlc3BvbnNlIo4BkkE/CgdCaWxsaW5nEgtIYXMgdHJpYWxlZBonQ2hlY2sgaWYgYSBiaWxsaW5nIGFjY291bnQgaGFzIHRyaWFsZWQugtPkkwJGEkQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfS9wbGFucy97cGxhbl9pZH0vdHJpYWxlZBLHAgoPR2V0U3Vic2NyaXB0aW9uEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTdWJzY3JpcHRpb25SZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTdWJzY3JpcHRpb25SZXNwb25zZSLMAZJBOwoMU3Vic2NyaXB0aW9uEhBHZXQgc3Vic2NyaXB0aW9uGhlHZXQgYSBzdWJzY3JpcHRpb24gYnkgSUQugtPkkwKHARJHL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH1aPBI6L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3N1YnNjcmlwdGlvbnMve2lkfRLqAgoSQ2FuY2VsU3Vic2NyaXB0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DYW5jZWxTdWJzY3JpcHRpb25SZXNwb25zZSLmAZJBQQoMU3Vic2NyaXB0aW9uEhNDYW5jZWwgc3Vic2NyaXB0aW9uGhxDYW5jZWwgYSBzdWJzY3JpcHRpb24gYnkgSUQugtPkkwKbASJOL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH0vY2FuY2VsOgEqWkYiQS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zL3tpZH0vY2FuY2VsOgEqEtMCChFMaXN0U3Vic2NyaXB0aW9ucxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlItIBkkFMCgxTdWJzY3JpcHRpb24SEkxpc3Qgc3Vic2NyaXB0aW9ucxooTGlzdCBzdWJzY3JpcHRpb25zIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCfRJCL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zWjcSNS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zEvQCChJDaGFuZ2VTdWJzY3JpcHRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoYW5nZVN1YnNjcmlwdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoYW5nZVN1YnNjcmlwdGlvblJlc3BvbnNlIvABkkFLCgxTdWJzY3JpcHRpb24SGENoYW5nZSBzdWJzY3JpcHRpb24gcGxhbhohQ2hhbmdlIGEgc3Vic2NyaXB0aW9uIHBsYW4gYnkgSUQugtPkkwKbASJOL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH0vY2hhbmdlOgEqWkYiQS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zL3tpZH0vY2hhbmdlOgEqEtwCChJVcGRhdGVTdWJzY3JpcHRpb24SNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVN1YnNjcmlwdGlvblJlc3BvbnNlItgBkkFBCgxTdWJzY3JpcHRpb24SE1VwZGF0ZSBzdWJzY3JpcHRpb24aHFVwZGF0ZSBhIHN1YnNjcmlwdGlvbiBieSBJRC6C0+STAo0BGkcvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L3N1YnNjcmlwdGlvbnMve2lkfToBKlo/IjovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucy97aWR9OgEqEtgBCg1DcmVhdGVQcm9kdWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9kdWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvZHVjdFJlc3BvbnNlImSSQT0KB1Byb2R1Y3QSDkNyZWF0ZSBwcm9kdWN0GiJDcmVhdGUgYSBuZXcgcHJvZHVjdCBmb3IgcGxhdGZvcm0ugtPkkwIeIhkvdjFiZXRhMS9iaWxsaW5nL3Byb2R1Y3RzOgEqEsABCgpHZXRQcm9kdWN0EiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQcm9kdWN0UmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvZHVjdFJlc3BvbnNlIlWSQSwKB1Byb2R1Y3QSC0dldCBwcm9kdWN0GhRHZXQgYSBwcm9kdWN0IGJ5IElELoLT5JMCIBIeL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0cy97aWR9Es8BCgxMaXN0UHJvZHVjdHMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9kdWN0c1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9kdWN0c1Jlc3BvbnNlIl6SQToKB1Byb2R1Y3QSDUxpc3QgcHJvZHVjdHMaIExpc3QgYWxsIHByb2R1Y3RzIG9mIGEgcGxhdGZvcm0ugtPkkwIbEhkvdjFiZXRhMS9iaWxsaW5nL3Byb2R1Y3RzEtIBCg1VcGRhdGVQcm9kdWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9kdWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvZHVjdFJlc3BvbnNlIl6SQTIKB1Byb2R1Y3QSDlVwZGF0ZSBwcm9kdWN0GhdVcGRhdGUgYSBwcm9kdWN0IGJ5IElELoLT5JMCIxoeL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0cy97aWR9OgEqEtgBCg1DcmVhdGVGZWF0dXJlEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVGZWF0dXJlUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlRmVhdHVyZVJlc3BvbnNlImSSQT0KB0ZlYXR1cmUSDkNyZWF0ZSBmZWF0dXJlGiJDcmVhdGUgYSBuZXcgZmVhdHVyZSBmb3IgcGxhdGZvcm0ugtPkkwIeIhkvdjFiZXRhMS9iaWxsaW5nL2ZlYXR1cmVzOgEqEsABCgpHZXRGZWF0dXJlEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRGZWF0dXJlUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0RmVhdHVyZVJlc3BvbnNlIlWSQSwKB0ZlYXR1cmUSC0dldCBmZWF0dXJlGhRHZXQgYSBmZWF0dXJlIGJ5IElELoLT5JMCIBIeL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlcy97aWR9EtIBCg1VcGRhdGVGZWF0dXJlEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVGZWF0dXJlUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlRmVhdHVyZVJlc3BvbnNlIl6SQTIKB0ZlYXR1cmUSDlVwZGF0ZSBmZWF0dXJlGhdVcGRhdGUgYSBmZWF0dXJlIGJ5IElELoLT5JMCIxoeL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlcy97aWR9OgEqEsABCgxMaXN0RmVhdHVyZXMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RGZWF0dXJlc1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RGZWF0dXJlc1Jlc3BvbnNlIk+SQSsKB0ZlYXR1cmUSDUxpc3QgZmVhdHVyZXMaEUxpc3QgYWxsIGZlYXR1cmVzgtPkkwIbEhkvdjFiZXRhMS9iaWxsaW5nL2ZlYXR1cmVzEsMBCgpDcmVhdGVQbGFuEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQbGFuUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUGxhblJlc3BvbnNlIliSQTQKBFBsYW4SC0NyZWF0ZSBwbGFuGh9DcmVhdGUgYSBuZXcgcGxhbiBmb3IgcGxhdGZvcm0ugtPkkwIbIhYvdjFiZXRhMS9iaWxsaW5nL3BsYW5zOgEqEqwBCglMaXN0UGxhbnMSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQbGFuc1JlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQbGFuc1Jlc3BvbnNlIkSSQSMKBFBsYW4SCkxpc3QgcGxhbnMaD0xpc3QgYWxsIHBsYW5zLoLT5JMCGBIWL3YxYmV0YTEvYmlsbGluZy9wbGFucxKrAQoHR2V0UGxhbhIpLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UGxhblJlcXVlc3QaKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBsYW5SZXNwb25zZSJJkkEjCgRQbGFuEghHZXQgcGxhbhoRR2V0IGEgcGxhbiBieSBJRC6C0+STAh0SGy92MWJldGExL2JpbGxpbmcvcGxhbnMve2lkfRK9AQoKVXBkYXRlUGxhbhIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUGxhblJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBsYW5SZXNwb25zZSJSkkEpCgRQbGFuEgtVcGRhdGUgcGxhbhoUVXBkYXRlIGEgcGxhbiBieSBJRC6C0+STAiAaGy92MWJldGExL2JpbGxpbmcvcGxhbnMve2lkfToBKhKFAwoOQ3JlYXRlQ2hlY2tvdXQSMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUNoZWNrb3V0UmVxdWVzdBoxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQ2hlY2tvdXRSZXNwb25zZSKNApJBiAEKCENoZWNrb3V0EiJDaGVja291dCBhIHByb2R1Y3Qgb3Igc3Vic2NyaXB0aW9uGlhDaGVja291dCBhIHByb2R1Y3QgdG8gYnV5IGl0IG9uZSB0aW1lIG9yIHN0YXJ0IGEgc3Vic2NyaXB0aW9uIHBsYW4gb24gYSBiaWxsaW5nIGFjY291bnQugtPkkwJ7Ij4vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0czoBKlo2IjEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzOgEqErcCCg1MaXN0Q2hlY2tvdXRzEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q2hlY2tvdXRzUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdENoZWNrb3V0c1Jlc3BvbnNlIsIBkkFECghDaGVja291dBIOTGlzdCBjaGVja291dHMaKExpc3QgYWxsIGNoZWNrb3V0cyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAnUSPi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2tvdXRzWjMSMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9jaGVja291dHMSpgIKC0dldENoZWNrb3V0Ei0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDaGVja291dFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldENoZWNrb3V0UmVzcG9uc2UitwGSQS8KCENoZWNrb3V0EgxHZXQgY2hlY2tvdXQaFUdldCBhIGNoZWNrb3V0IGJ5IElELoLT5JMCfxJDL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVja291dHMve2lkfVo4EjYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzL3tpZH0S3AIKF0NoZWNrRmVhdHVyZUVudGl0bGVtZW50EjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrRmVhdHVyZUVudGl0bGVtZW50UmVzcG9uc2UiyQGSQVYKC0VudGl0bGVtZW50EhFDaGVjayBlbnRpdGxlbWVudBo0Q2hlY2sgaWYgYSBiaWxsaW5nIGFjY291bnQgaXMgZW50aXRsZWQgdG8gYSBmZWF0dXJlLoLT5JMCaiI6L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVjazoBKlopIiQvdjFiZXRhMS9vcmdhbml6YXRpb25zL2JpbGxpbmcvY2hlY2s6ASoSnwIKFkNoZWNrQ3JlZGl0RW50aXRsZW1lbnQSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrQ3JlZGl0RW50aXRsZW1lbnRSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0NyZWRpdEVudGl0bGVtZW50UmVzcG9uc2UijwGSQWsKC0VudGl0bGVtZW50EhhDaGVjayBjcmVkaXQgZW50aXRsZW1lbnQaQkNoZWNrIGlmIGEgYmlsbGluZyBhY2NvdW50IGhhcyBlbm91Z2ggY3JlZGl0cyB0byBjb3ZlciB0aGUgYW1vdW50LoLT5JMCGyIWL3YxYmV0YTEvYmlsbGluZy9jaGVjazoBKhLJAgoSQ3JlYXRlQmlsbGluZ1VzYWdlEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVCaWxsaW5nVXNhZ2VSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVCaWxsaW5nVXNhZ2VSZXNwb25zZSLFAZJBUAoFVXNhZ2USFENyZWF0ZSBiaWxsaW5nIHVzYWdlGjFSZXBvcnQgYSBuZXcgYmlsbGluZyB1c2FnZSBmb3IgYSBiaWxsaW5nIGFjY291bnQugtPkkwJsIjsvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L3VzYWdlczoBKloqIiUvdjFiZXRhMS9vcmdhbml6YXRpb25zL2JpbGxpbmcvdXNhZ2VzOgEqEuwCChdMaXN0QmlsbGluZ1RyYW5zYWN0aW9ucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QmlsbGluZ1RyYW5zYWN0aW9uc1Jlc3BvbnNlItkBkkFVCgtUcmFuc2FjdGlvbhIZTGlzdCBiaWxsaW5nIHRyYW5zYWN0aW9ucxorTGlzdCBhbGwgdHJhbnNhY3Rpb25zIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCexJBL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS90cmFuc2FjdGlvbnNaNhI0L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3RyYW5zYWN0aW9ucxLvAgoYVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Ub3RhbERlYml0ZWRUcmFuc2FjdGlvbnNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Ub3RhbERlYml0ZWRUcmFuc2FjdGlvbnNSZXNwb25zZSLZAZJBfwoLVHJhbnNhY3Rpb24SN1N1bSBvZiBhbW91bnQgb2YgZGViaXRlZCB0cmFuc2FjdGlvbnMgaW5jbHVkaW5nIHJlZnVuZHMaN1N1bSBvZiBhbW91bnQgb2YgZGViaXRlZCB0cmFuc2FjdGlvbnMgaW5jbHVkaW5nIHJlZnVuZHOC0+STAlESTy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vZGViaXRlZF90cmFuc2FjdGlvbnNfdG90YWwSrwIKDExpc3RJbnZvaWNlcxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEludm9pY2VzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEludm9pY2VzUmVzcG9uc2UivQGSQUEKB0ludm9pY2USDUxpc3QgaW52b2ljZXMaJ0xpc3QgYWxsIGludm9pY2VzIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCcxI9L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9pbnZvaWNlc1oyEjAvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvaW52b2ljZXMS4gIKEkdldFVwY29taW5nSW52b2ljZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0VXBjb21pbmdJbnZvaWNlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0VXBjb21pbmdJbnZvaWNlUmVzcG9uc2Ui3gGSQU8KB0ludm9pY2USFEdldCB1cGNvbWluZyBpbnZvaWNlGi5HZXQgdGhlIHVwY29taW5nIGludm9pY2Ugb2YgYSBiaWxsaW5nIGFjY291bnQugtPkkwKFARJGL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9pbnZvaWNlcy91cGNvbWluZ1o7EjkvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvaW52b2ljZXMvdXBjb21pbmcSnAIKFkJpbGxpbmdXZWJob29rQ2FsbGJhY2sSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdXZWJob29rQ2FsbGJhY2tSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVzcG9uc2UijAGSQU4KB1dlYmhvb2sSFkFjY2VwdCBCaWxsaW5nIHdlYmhvb2saK0FjY2VwdHMgYSBCaWxsaW5nIHdlYmhvb2sgYW5kIHByb2Nlc3NlcyBpdC6C0+STAjUiLS92MWJldGExL2JpbGxpbmcvd2ViaG9va3MvY2FsbGJhY2sve3Byb3ZpZGVyfToEYm9keRKRAgoUQ3JlYXRlUHJvc3BlY3RQdWJsaWMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UHVibGljUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvc3BlY3RQdWJsaWNSZXNwb25zZSKHAZJBZwoIUHJvc3BlY3QSD0NyZWF0ZSBwcm9zcGVjdBpKQ3JlYXRlIHByb3NwZWN0IGZvciBnaXZlbiBlbWFpbCBhbmQgYWN0aXZpdHkuIEF2YWlsYWJsZSBmb3IgcHVibGljIGFjY2Vzcy6C0+STAhciEi92MWJldGExL3Byb3NwZWN0czoBKhKAAQoRQ3JlYXRlQXVkaXRSZWNvcmQSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUF1ZGl0UmVjb3JkUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQXVkaXRSZWNvcmRSZXNwb25zZSIAQvINCiNpby5yYXlzdGFjay5wcm90b24uZnJvbnRpZXIudjFiZXRhMUIIRnJvbnRpZXJaO2dpdGh1Yi5jb20vcmF5c3RhY2svcHJvdG9uL2Zyb250aWVyL3YxYmV0YTE7ZnJvbnRpZXJ2MWJldGExkkGCDRIeChVGcm9udGllciBHZW5lcmFsIEFQSXMyBTAuMi4wGg4xMjcuMC4wLjE6NzQwMCoBATIQYXBwbGljYXRpb24vanNvbjoQYXBwbGljYXRpb24vanNvblI8CgMyMDASNQobT0sgLSBBIHN1Y2Nlc3NmdWwgcmVzcG9uc2UuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmkKAzQwMBJiCkhCYWQgUmVxdWVzdCAtIFRoZSByZXF1ZXN0IHdhcyBtYWxmb3JtZWQgb3IgY29udGFpbmVkIGludmFsaWQgcGFyYW1ldGVycy4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSSgoDNDAxEkMKKVVuYXV0aG9yaXplZCAtIEF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUmEKAzQwMxJaCkBGb3JiaWRkZW4gLSBVc2VyIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBhY2Nlc3MgdGhlIHJlc291cmNlEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUlEKAzQwNBJKCjBOb3QgRm91bmQgLSBUaGUgcmVxdWVzdGVkIHJlc291cmNlIHdhcyBub3QgZm91bmQSFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNSdQoDNTAwEm4KVEludGVybmFsIFNlcnZlciBFcnJvci4gUmV0dXJuZWQgd2hlbiB0aGVyZXMgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggRnJvbnRpZXIgc2VydmVyLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1q2AQpECgVCYXNpYxI7CAESH0NsaWVudCBJRC9TZWNyZXQgYXV0aGVudGljYXRpb24aFEJhc2ljIEF1dGhlbnRpY2F0aW9uIAIKbgoGQmVhcmVyEmQIAhJPVGhlIEF1dGhvcml6YXRpb24gaGVhZGVyIG11c3QgYmUgc2V0IHRvIEJlYXJlciBmb2xsb3dlZCBieSBhIHNwYWNlIGFuZCBhIHRva2VuLhoNQXV0aG9yaXphdGlvbiACYhMKBwoFQmFzaWMKCAoGQmVhcmVyagYKBFVzZXJqggMKBUdyb3VwEvgCR3JvdXBzIGluIEZyb250aWVyIGFyZSB1c2VkIHRvIG1hbmFnZSB1c2VycyBhbmQgdGhlaXIgYWNjZXNzIHRvIHJlc291cmNlcy4gRWFjaCBncm91cCBoYXMgYSB1bmlxdWUgbmFtZSBhbmQgaWQgdGhhdCBjYW4gYmUgdXNlZCB0byBncmFudCBhY2Nlc3MgdG8gcmVzb3VyY2VzLiBXaGVuIGEgdXNlciBpcyBhZGRlZCB0byBhIGdyb3VwLCB0aGV5IGluaGVyaXQgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyB0aGF0IGhhdmUgYmVlbiBncmFudGVkIHRvIHRoZSBncm91cC4gVGhpcyBhbGxvd3MgeW91IHRvIG1hbmFnZSBhY2Nlc3MgdG8gcmVzb3VyY2VzIGF0IHNjYWxlLCB3aXRob3V0IGhhdmluZyB0byBncmFudCBwZXJtaXNzaW9ucyB0byBpbmRpdmlkdWFsIHVzZXJzLmoGCgRSb2xlag4KDE9yZ2FuaXphdGlvbmoJCgdQcm9qZWN0aggKBlBvbGljeWoKCghSZWxhdGlvbmoMCgpQZXJtaXNzaW9uagsKCU5hbWVzcGFjZWoKCghSZXNvdXJjZWobCgVBdXRoehISQXV0aG9yaXphdGlvbiBBUElzahwKBUF1dGhuEhNBdXRoZW50aWNhdGlvbiBBUElzapACCgpNZXRhU2NoZW1hEoECTWFuYWdlIE1ldGFkYXRhIFNjaGVtYXMgd2hpY2ggYXJlIHVzZWQgdG8gdmFsaWRhdGUgbWV0YWRhdGEgb2JqZWN0IHdoaWxlIGNyZWF0aW5nIHVzZXIvb3JnL2dyb3VwL3JvbGUuIEZyb250aWVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIGRlZmF1bHQgbWV0YXNjaGVtYXMgd2l0aCBgbGFiZWxgIGFuZCBgZGVzY3JpcHRpb25gIGZpZWxkcy4gWW91IGNhbiBhbHNvIHVwZGF0ZSB0aGVzZSBtZXRhc2NoZW1hcyB0byBhZGQvZWRpdCBtb3JlIGZpZWxkcy5iBnByb3RvMw", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
21
+ fileDesc("CihyYXlzdGFjay9mcm9udGllci92MWJldGExL2Zyb250aWVyLnByb3RvEhlyYXlzdGFjay5mcm9udGllci52MWJldGExIokCChlCaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFZW1haWwYAiABKAkSDQoFcGhvbmUYAyABKAkSQgoHYWRkcmVzcxgEIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQWRkcmVzcxIQCghjdXJyZW5jeRgFIAEoCRI/Cgh0YXhfZGF0YRgGIAMoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuVGF4EikKCG1ldGFkYXRhGAogASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKVAQobQ3JlYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARJMCgRib2R5GAIgASgLMjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudFJlcXVlc3RCb2R5Qgj6QgWKAQIQARIPCgdvZmZsaW5lGAMgASgIImIKHENyZWF0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudCKUAQoYR2V0QmlsbGluZ0FjY291bnRSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQARIcChR3aXRoX3BheW1lbnRfbWV0aG9kcxgDIAEoCBIcChR3aXRoX2JpbGxpbmdfZGV0YWlscxgEIAEoCBIOCgZleHBhbmQYZSADKAki7QEKGUdldEJpbGxpbmdBY2NvdW50UmVzcG9uc2USQgoPYmlsbGluZ19hY2NvdW50GAEgASgLMikucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudBJBCg9wYXltZW50X21ldGhvZHMYAiADKAsyKC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBheW1lbnRNZXRob2QSSQoPYmlsbGluZ19kZXRhaWxzGAMgASgLMjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudERldGFpbHMikAEKG1VwZGF0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABEkIKBGJvZHkYAyABKAsyNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50UmVxdWVzdEJvZHkiYgocVXBkYXRlQmlsbGluZ0FjY291bnRSZXNwb25zZRJCCg9iaWxsaW5nX2FjY291bnQYASABKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50Ik4KHVJlZ2lzdGVyQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiIAoeUmVnaXN0ZXJCaWxsaW5nQWNjb3VudFJlc3BvbnNlIkUKGkxpc3RCaWxsaW5nQWNjb3VudHNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQARIOCgZleHBhbmQYZSADKAkiYgobTGlzdEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlEkMKEGJpbGxpbmdfYWNjb3VudHMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJpbGxpbmdBY2NvdW50IkwKG0RlbGV0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBIUCgJpZBgBIAEoCUII+kIFcgOwAQESFwoGb3JnX2lkGAIgASgJQgf6QgRyAhABIh4KHERlbGV0ZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiTAobRW5hYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHgocRW5hYmxlQmlsbGluZ0FjY291bnRSZXNwb25zZSJNChxEaXNhYmxlQmlsbGluZ0FjY291bnRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiHwodRGlzYWJsZUJpbGxpbmdBY2NvdW50UmVzcG9uc2UiSQoYR2V0QmlsbGluZ0JhbGFuY2VSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAEiXwoZR2V0QmlsbGluZ0JhbGFuY2VSZXNwb25zZRJCCgdiYWxhbmNlGAEgASgLMjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nQWNjb3VudC5CYWxhbmNlIlwKEUhhc1RyaWFsZWRSZXF1ZXN0EhQKAmlkGAEgASgJQgj6QgVyA7ABARIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAESGAoHcGxhbl9pZBgDIAEoCUIH+kIEcgIQASIlChJIYXNUcmlhbGVkUmVzcG9uc2USDwoHdHJpYWxlZBgBIAEoCCKSAQoZQ3JlYXRlQmlsbGluZ1VzYWdlUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESEgoKcHJvamVjdF9pZBgEIAEoCRIwCgZ1c2FnZXMYAyADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzYWdlIhwKGkNyZWF0ZUJpbGxpbmdVc2FnZVJlc3BvbnNlIvkBCh5MaXN0QmlsbGluZ1RyYW5zYWN0aW9uc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEh8KCmJpbGxpbmdfaWQYAiABKAlCC/pCCHIGsAEB0AEBEi0KBXNpbmNlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICGAESLwoLc3RhcnRfcmFuZ2UYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWVuZF9yYW5nZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDgoGZXhwYW5kGGUgAygJImYKH0xpc3RCaWxsaW5nVHJhbnNhY3Rpb25zUmVzcG9uc2USQwoMdHJhbnNhY3Rpb25zGAEgAygLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nVHJhbnNhY3Rpb24iWAofVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHAoKYmlsbGluZ19pZBgCIAEoCUII+kIFcgOwAQEiZgogVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVzcG9uc2USQgoHZGViaXRlZBgBIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ0FjY291bnQuQmFsYW5jZSJ+ChZHZXRTdWJzY3JpcHRpb25SZXF1ZXN0EhwKBm9yZ19pZBgBIAEoCUIMGAH6QgdyBRAD0AEBEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAESDgoGZXhwYW5kGGUgAygJIlgKF0dldFN1YnNjcmlwdGlvblJlc3BvbnNlEj0KDHN1YnNjcmlwdGlvbhgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU3Vic2NyaXB0aW9uIoMBChhMaXN0U3Vic2NyaXB0aW9uc1JlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESDQoFc3RhdGUYAyABKAkSDAoEcGxhbhgEIAEoCRIOCgZleHBhbmQYZSADKAkiWwoZTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZRI+Cg1zdWJzY3JpcHRpb25zGAEgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TdWJzY3JpcHRpb24inAEKGVVwZGF0ZVN1YnNjcmlwdGlvblJlcXVlc3QSHAoGb3JnX2lkGAEgASgJQgwYAfpCB3IFEAPQAQESIQoKYmlsbGluZ19pZBgCIAEoCUINGAH6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQARIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiWwoaVXBkYXRlU3Vic2NyaXB0aW9uUmVzcG9uc2USPQoMc3Vic2NyaXB0aW9uGAEgASgLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TdWJzY3JpcHRpb24itQMKGUNoYW5nZVN1YnNjcmlwdGlvblJlcXVlc3QSHAoGb3JnX2lkGAEgASgJQgwYAfpCB3IFEAPQAQESIQoKYmlsbGluZ19pZBgCIAEoCUINGAH6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQARIQCgRwbGFuGAQgASgJQgIYARIVCglpbW1lZGlhdGUYBSABKAhCAhgBElYKC3BsYW5fY2hhbmdlGAYgASgLMj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0LlBsYW5DaGFuZ2VIABJYCgxwaGFzZV9jaGFuZ2UYByABKAsyQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoYW5nZVN1YnNjcmlwdGlvblJlcXVlc3QuUGhhc2VDaGFuZ2VIABotCgpQbGFuQ2hhbmdlEgwKBHBsYW4YASABKAkSEQoJaW1tZWRpYXRlGAIgASgIGi4KC1BoYXNlQ2hhbmdlEh8KF2NhbmNlbF91cGNvbWluZ19jaGFuZ2VzGAEgASgIQggKBmNoYW5nZSJaChpDaGFuZ2VTdWJzY3JpcHRpb25SZXNwb25zZRI8CgVwaGFzZRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU3Vic2NyaXB0aW9uLlBoYXNlIoQBChlDYW5jZWxTdWJzY3JpcHRpb25SZXF1ZXN0EhwKBm9yZ19pZBgBIAEoCUIMGAH6QgdyBRAD0AEBEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESEwoCaWQYAyABKAlCB/pCBHICEAESEQoJaW1tZWRpYXRlGAQgASgIIhwKGkNhbmNlbFN1YnNjcmlwdGlvblJlc3BvbnNlIhIKEExpc3RQbGFuc1JlcXVlc3QiQwoRTGlzdFBsYW5zUmVzcG9uc2USLgoFcGxhbnMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW4ifwoeQ2hlY2tGZWF0dXJlRW50aXRsZW1lbnRSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCRIfCgpiaWxsaW5nX2lkGAIgASgJQgv6QghyBrABAdABARISCgpwcm9qZWN0X2lkGAQgASgJEhgKB2ZlYXR1cmUYAyABKAlCB/pCBHICEAEiMQofQ2hlY2tGZWF0dXJlRW50aXRsZW1lbnRSZXNwb25zZRIOCgZzdGF0dXMYASABKAgiUQodQ2hlY2tDcmVkaXRFbnRpdGxlbWVudFJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEhcKBmFtb3VudBgCIAEoA0IH+kIEIgIgACIwCh5DaGVja0NyZWRpdEVudGl0bGVtZW50UmVzcG9uc2USDgoGc3RhdHVzGAEgASgIItQCChVDcmVhdGVDaGVja291dFJlcXVlc3QSFwoGb3JnX2lkGAEgASgJQgf6QgRyAhADEiEKCmJpbGxpbmdfaWQYAiABKAlCDRgB+kIIcgawAQHQAQESEwoLc3VjY2Vzc191cmwYAyABKAkSEgoKY2FuY2VsX3VybBgEIAEoCRJOChFzdWJzY3JpcHRpb25fYm9keRgKIAEoCzIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRTdWJzY3JpcHRpb25Cb2R5EkQKDHByb2R1Y3RfYm9keRgLIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tvdXRQcm9kdWN0Qm9keRJACgpzZXR1cF9ib2R5GAwgASgLMiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja291dFNldHVwQm9keSJeChZDcmVhdGVDaGVja291dFJlc3BvbnNlEkQKEGNoZWNrb3V0X3Nlc3Npb24YASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiJSChRMaXN0Q2hlY2tvdXRzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSIQoKYmlsbGluZ19pZBgCIAEoCUINGAH6QghyBrABAdABASJeChVMaXN0Q2hlY2tvdXRzUmVzcG9uc2USRQoRY2hlY2tvdXRfc2Vzc2lvbnMYASADKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiJqChJHZXRDaGVja291dFJlcXVlc3QSHAoGb3JnX2lkGAEgASgJQgwYAfpCB3IFEAPQAQESIQoKYmlsbGluZ19pZBgCIAEoCUINGAH6QghyBrABAdABARITCgJpZBgDIAEoCUIH+kIEcgIQASJbChNHZXRDaGVja291dFJlc3BvbnNlEkQKEGNoZWNrb3V0X3Nlc3Npb24YASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNoZWNrb3V0U2Vzc2lvbiL7AgoSUHJvZHVjdFJlcXVlc3RCb2R5EhUKBG5hbWUYASABKAlCB/pCBHICEAMSDQoFdGl0bGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSDwoHcGxhbl9pZBgEIAEoCRIwCgZwcmljZXMYBSADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByaWNlEjQKCGJlaGF2aW9yGAggASgJQiL6Qh9yHVIFYmFzaWNSB2NyZWRpdHNSCHBlcl9zZWF00AEBEjQKCGZlYXR1cmVzGAkgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlEkoKD2JlaGF2aW9yX2NvbmZpZxgKIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdC5CZWhhdmlvckNvbmZpZxIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RKBAgHEAgiXQoUQ3JlYXRlUHJvZHVjdFJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdFJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCIoChFHZXRQcm9kdWN0UmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJJChJHZXRQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCIVChNMaXN0UHJvZHVjdHNSZXF1ZXN0IkwKFExpc3RQcm9kdWN0c1Jlc3BvbnNlEjQKCHByb2R1Y3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9kdWN0ImgKFFVwZGF0ZVByb2R1Y3RSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhABEjsKBGJvZHkYAiABKAsyLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3RSZXF1ZXN0Qm9keSJMChVVcGRhdGVQcm9kdWN0UmVzcG9uc2USMwoHcHJvZHVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvZHVjdCJ6ChJGZWF0dXJlUmVxdWVzdEJvZHkSFQoEbmFtZRgBIAEoCUIH+kIEcgIQAxINCgV0aXRsZRgCIAEoCRITCgtwcm9kdWN0X2lkcxgDIAMoCRIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiXQoUQ3JlYXRlRmVhdHVyZVJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVGZWF0dXJlUmVzcG9uc2USMwoHZmVhdHVyZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSIoChFHZXRGZWF0dXJlUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJJChJHZXRGZWF0dXJlUmVzcG9uc2USMwoHZmVhdHVyZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSJoChRVcGRhdGVGZWF0dXJlUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI7CgRib2R5GAIgASgLMi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5GZWF0dXJlUmVxdWVzdEJvZHkiTAoVVXBkYXRlRmVhdHVyZVJlc3BvbnNlEjMKB2ZlYXR1cmUYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkZlYXR1cmUiFQoTTGlzdEZlYXR1cmVzUmVxdWVzdCJMChRMaXN0RmVhdHVyZXNSZXNwb25zZRI0CghmZWF0dXJlcxgBIAMoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRmVhdHVyZSKDAgoPUGxhblJlcXVlc3RCb2R5EgwKBG5hbWUYASABKAkSDQoFdGl0bGUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSNAoIcHJvZHVjdHMYBCADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2R1Y3QSLwoIaW50ZXJ2YWwYBSABKAlCHfpCGnIYUgNkYXlSBHdlZWtSBW1vbnRoUgR5ZWFyEhgKEG9uX3N0YXJ0X2NyZWRpdHMYBiABKAMSEgoKdHJpYWxfZGF5cxgHIAEoAxIpCghtZXRhZGF0YRgUIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiVwoRQ3JlYXRlUGxhblJlcXVlc3QSQgoEYm9keRgBIAEoCzIqLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhblJlcXVlc3RCb2R5Qgj6QgWKAQIQASJDChJDcmVhdGVQbGFuUmVzcG9uc2USLQoEcGxhbhgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiIlCg5HZXRQbGFuUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQASJACg9HZXRQbGFuUmVzcG9uc2USLQoEcGxhbhgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGxhbiJiChFVcGRhdGVQbGFuUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQARI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QbGFuUmVxdWVzdEJvZHkiQwoSVXBkYXRlUGxhblJlc3BvbnNlEi0KBHBsYW4YASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBsYW4ifAoTTGlzdEludm9pY2VzUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQESGwoTbm9uemVyb19hbW91bnRfb25seRgDIAEoCBIOCgZleHBhbmQYZSADKAkiTAoUTGlzdEludm9pY2VzUmVzcG9uc2USNAoIaW52b2ljZXMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludm9pY2UiVQoZR2V0VXBjb21pbmdJbnZvaWNlUmVxdWVzdBIXCgZvcmdfaWQYASABKAlCB/pCBHICEAMSHwoKYmlsbGluZ19pZBgCIAEoCUIL+kIIcgawAQHQAQEiUQoaR2V0VXBjb21pbmdJbnZvaWNlUmVzcG9uc2USMwoHaW52b2ljZRgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52b2ljZSIQCg5HZXRKV0tzUmVxdWVzdCJGCg9HZXRKV0tzUmVzcG9uc2USMwoEa2V5cxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSlNPTldlYktleSITChFBdXRoTG9nb3V0UmVxdWVzdCIUChJBdXRoTG9nb3V0UmVzcG9uc2UieQoTQXV0aENhbGxiYWNrUmVxdWVzdBIVCg1zdHJhdGVneV9uYW1lGAEgASgJEg0KBXN0YXRlGAIgASgJEgwKBGNvZGUYAyABKAkSLgoNc3RhdGVfb3B0aW9ucxgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QiFgoUQXV0aENhbGxiYWNrUmVzcG9uc2Ui3gUKE0F1dGhlbnRpY2F0ZVJlcXVlc3QSZAoNc3RyYXRlZ3lfbmFtZRgBIAEoCUJNkkFKMkhOYW1lIG9mIHRoZSBzdHJhdGVneSB0byB1c2UgZm9yIGF1dGhlbnRpY2F0aW9uLjxici8+ICpFeGFtcGxlOiogYGdvb2dsZWASagoQcmVkaXJlY3Rfb25zdGFydBgCIAEoCEJQkkFNMktJZiBzZXQgdG8gdHJ1ZSwgbG9jYXRpb24gaGVhZGVyIHdpbGwgYmUgc2V0IGZvciByZWRpcmVjdCB0byBzdGFydCBhdXRoIGZsb3cSeAoJcmV0dXJuX3RvGAMgASgJQmWSQWIyYFVSTCB0byByZWRpcmVjdCBhZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uLjxici8+ICpFeGFtcGxlOipgImh0dHBzOi8vZnJvbnRpZXIuZXhhbXBsZS5jb20iYBJuCgVlbWFpbBgEIAEoCUJfkkFcMlpFbWFpbCBvZiB0aGUgdXNlciB0byBhdXRoZW50aWNhdGUuIFVzZWQgZm9yIG1hZ2ljIGxpbmtzLjxici8+ICpFeGFtcGxlOipgZXhhbXBsZUBhY21lLm9yZ2ASigIKDGNhbGxiYWNrX3VybBgFIAEoCULzAZJB7wEy7AFIb3N0IHdoaWNoIHNob3VsZCBoYW5kbGUgdGhlIGNhbGwgdG8gZmluaXNoIGF1dGhlbnRpY2F0aW9uIGZsb3csIGZvciBtb3N0IGNhc2VzIGl0IGNvdWxkIGJlIGhvc3Qgb2YgZnJvbnRpZXIgYnV0IGluIGNhc2Ugb2YgcHJveGllcywgdGhpcyB3aWxsIGJlIHByb3h5IHB1YmxpYyBlbmRwb2ludC48YnIvPiAqRXhhbXBsZToqYGh0dHBzOi8vZnJvbnRpZXIuZXhhbXBsZS5jb20vdjFiZXRhMS9hdXRoL2NhbGxiYWNrYCJnChRBdXRoZW50aWNhdGVSZXNwb25zZRIQCghlbmRwb2ludBgBIAEoCRINCgVzdGF0ZRgCIAEoCRIuCg1zdGF0ZV9vcHRpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCJFCgxBdXRoU3RyYXRlZ3kSDAoEbmFtZRgBIAEoCRInCgZwYXJhbXMYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IhsKGUxpc3RBdXRoU3RyYXRlZ2llc1JlcXVlc3QiWQoaTGlzdEF1dGhTdHJhdGVnaWVzUmVzcG9uc2USOwoKc3RyYXRlZ2llcxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aFN0cmF0ZWd5ImMKEEF1dGhUb2tlblJlcXVlc3QSEgoKZ3JhbnRfdHlwZRgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkSFQoNY2xpZW50X3NlY3JldBgDIAEoCRIRCglhc3NlcnRpb24YBCABKAkiPQoRQXV0aFRva2VuUmVzcG9uc2USFAoMYWNjZXNzX3Rva2VuGAEgASgJEhIKCnRva2VuX3R5cGUYAiABKAki8wsKD1VzZXJSZXF1ZXN0Qm9keRLGAgoEbmFtZRgBIAEoCUK3ApJBjAIyiQJUaGUgbmFtZSBvZiB0aGUgdXNlci4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMgYW5kIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlci4gSWYgbm90IHByb3ZpZGVkLCBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIG5hbWUgZnJvbSB0aGUgdXNlciBlbWFpbC4g+kIkciIyIF4oW2EtekEtWl1bYS16QS1aMC05LV9dezMsNjR9KT8kEpwBCgVlbWFpbBgCIAEoCUKMAZJBfjJ8VGhlIGVtYWlsIG9mIHRoZSB1c2VyLiBUaGUgZW1haWwgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuPGJyLz4qRXhhbXBsZToqYCJqb2huLmRvZUByYXlzdGFjay5vcmciYOJBAQL6QgRyAmABEtgDCghtZXRhZGF0YRgDIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RCrAOSQagDMqUDTWV0YWRhdGEgb2JqZWN0IGZvciB1c2VycyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBwcmUtZGVmaW5lZCBpbiBVc2VyIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyIHN1Y2ggYXMgbGFiZWwsIGRlc2NyaXB0aW9uIGV0Yy4gQnkgZGVmYXVsdCB0aGUgdXNlciBtZXRhc2NoZW1hIGNvbnRhaW5zIGxhYmVscyBhbmQgZGVzY3JpcHRpb25zIGZvciB0aGUgdXNlci4gVXBkYXRlIHRoZSBzYW1lIHRvIGFkZCBtb3JlIGZpZWxkcyB0byB0aGUgdXNlciBtZXRhZGF0YSBvYmplY3QuIDxici8+KkV4YW1wbGU6KmB7ImxhYmVsIjogeyJrZXkxIjogInZhbHVlMSJ9LCAiZGVzY3JpcHRpb24iOiAiVXNlciBEZXNjcmlwdGlvbiJ9YBKpAQoFdGl0bGUYBCABKAlCmQGSQZUBMpIBVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSB1c2VyLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LiA8YnIvPipFeGFtcGxlOipgIkpvaG4gRG9lImAS8AIKBmF2YXRhchgFIAEoCULfApJBjwIy0wFUaGUgYXZhdGFyIGlzIGJhc2U2NCBlbmNvZGVkIGltYWdlIGRhdGEgb2YgdGhlIHVzZXIuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuIFRoZSBpbWFnZSBzaG91bGQgYmUgbGVzcyB0aGFuIDIwMEtCLiBTaG91bGQgZm9sbG93IHRoZSByZWdleCBwYXR0ZXJuIGBeZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJGAuSjciZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUEi+kJJckcYkKEPMj5eZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJNABASLHAwoQTGlzdFVzZXJzUmVxdWVzdBJlCglwYWdlX3NpemUYASABKAVCUpJBRjJEVGhlIG1heGltdW0gbnVtYmVyIG9mIHVzZXJzIHRvIHJldHVybiBwZXIgcGFnZS4gVGhlIGRlZmF1bHQgaXMgMTAwMC76QgYaBCgBQAESTAoIcGFnZV9udW0YAiABKAVCOpJBLjIsVGhlIHBhZ2UgbnVtYmVyIHRvIHJldHVybi4gVGhlIGRlZmF1bHQgaXMgMS76QgYaBCgBQAESQQoHa2V5d29yZBgDIAEoCUIwkkEtMitUaGUga2V5d29yZCB0byBzZWFyY2ggZm9yIGluIG5hbWUgb3IgZW1haWwuEjwKBm9yZ19pZBgEIAEoCUIskkEpMidUaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciB1c2VycyBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4SSgoFc3RhdGUYBiABKAlCO5JBODI2VGhlIHN0YXRlIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQuIlIKEUxpc3RVc2Vyc1Jlc3BvbnNlEg0KBWNvdW50GAEgASgFEi4KBXVzZXJzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIlcKEUNyZWF0ZVVzZXJSZXF1ZXN0EkIKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keUII+kIFigECEAEiQwoSQ3JlYXRlVXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiOwoeTGlzdE9yZ2FuaXphdGlvbnNCeVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJEg0KBXN0YXRlGAIgASgJIqcBCh9MaXN0T3JnYW5pemF0aW9uc0J5VXNlclJlc3BvbnNlEj4KDW9yZ2FuaXphdGlvbnMYASADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbhJEChNqb2luYWJsZV92aWFfZG9tYWluGAIgAygLMicucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb24iNgolTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVxdWVzdBINCgVzdGF0ZRgBIAEoCSKuAQomTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uEkQKE2pvaW5hYmxlX3ZpYV9kb21haW4YAiADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiInChlMaXN0UHJvamVjdHNCeVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIlIKGkxpc3RQcm9qZWN0c0J5VXNlclJlc3BvbnNlEjQKCHByb2plY3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0IrMCCiBMaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSGAoQd2l0aF9wZXJtaXNzaW9ucxgCIAMoCRIVCg1ub25faW5oZXJpdGVkGAMgASgIEhkKEXdpdGhfbWVtYmVyX2NvdW50GAQgASgIEmUKCXBhZ2Vfc2l6ZRgFIAEoBUJSkkFGMkRUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyAxMDAwLvpCBhoEKAFAARJMCghwYWdlX251bRgGIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASL+AQohTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlc3BvbnNlEjQKCHByb2plY3RzGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0El0KDGFjY2Vzc19wYWlycxgCIAMoCzJHLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RzQnlDdXJyZW50VXNlclJlc3BvbnNlLkFjY2Vzc1BhaXISDQoFY291bnQYAyABKAUaNQoKQWNjZXNzUGFpchISCgpwcm9qZWN0X2lkGAEgASgJEhMKC3Blcm1pc3Npb25zGAIgAygJIh8KEUVuYWJsZVVzZXJSZXF1ZXN0EgoKAmlkGAEgASgJIhQKEkVuYWJsZVVzZXJSZXNwb25zZSIgChJEaXNhYmxlVXNlclJlcXVlc3QSCgoCaWQYASABKAkiFQoTRGlzYWJsZVVzZXJSZXNwb25zZSIfChFEZWxldGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCSIUChJEZWxldGVVc2VyUmVzcG9uc2UiQAoPR2V0VXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXIiFwoVR2V0Q3VycmVudFVzZXJSZXF1ZXN0IoQBChZHZXRDdXJyZW50VXNlclJlc3BvbnNlEi0KBHVzZXIYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXISOwoLc2VydmljZXVzZXIYAiABKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyIkMKElVwZGF0ZVVzZXJSZXNwb25zZRItCgR1c2VyGAEgASgLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIkoKGVVwZGF0ZUN1cnJlbnRVc2VyUmVzcG9uc2USLQoEdXNlchgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlciJZChFVcGRhdGVVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCRI4CgRib2R5GAIgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyUmVxdWVzdEJvZHkiHAoOR2V0VXNlclJlcXVlc3QSCgoCaWQYASABKAkiYwocTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVxdWVzdBIOCgZvcmdfaWQYASABKAkSGAoQd2l0aF9wZXJtaXNzaW9ucxgCIAMoCRIZChF3aXRoX21lbWJlcl9jb3VudBgDIAEoCCLhAQodTGlzdEN1cnJlbnRVc2VyR3JvdXBzUmVzcG9uc2USMAoGZ3JvdXBzGAEgAygLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cBJZCgxhY2Nlc3NfcGFpcnMYAiADKAsyQy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckdyb3Vwc1Jlc3BvbnNlLkFjY2Vzc1BhaXIaMwoKQWNjZXNzUGFpchIQCghncm91cF9pZBgBIAEoCRITCgtwZXJtaXNzaW9ucxgCIAMoCSLYAQoVTGlzdFVzZXJHcm91cHNSZXF1ZXN0Ej0KAmlkGAEgASgJQjGSQS4yLFRoZSB1bmlxdWUgSUQgb2YgdGhlIHVzZXIgdG8gZ2V0IGdyb3VwcyBmb3IuEnoKBm9yZ19pZBgDIAEoCUJqkkFnMmVUaGUgb3JnYW5pemF0aW9uIElEIHRvIGZpbHRlciBncm91cHMgYnkuIElmIG5vdCBwcm92aWRlZCwgZ3JvdXBzIGZyb20gYWxsIG9yZ2FuaXphdGlvbnMgYXJlIHJldHVybmVkLkoECAIQAyJKChZMaXN0VXNlckdyb3Vwc1Jlc3BvbnNlEjAKBmdyb3VwcxgBIAMoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAiVAoYVXBkYXRlQ3VycmVudFVzZXJSZXF1ZXN0EjgKBGJvZHkYASABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVzZXJSZXF1ZXN0Qm9keSJaChpMaXN0VXNlckludml0YXRpb25zUmVxdWVzdBI8CgJpZBgBIAEoCUIwkkEtMitUaGUgdXNlciBlbWFpbCB0byBsaXN0IHRoZSBpbnZpdGF0aW9ucyBmb3IuIlkKG0xpc3RVc2VySW52aXRhdGlvbnNSZXNwb25zZRI6CgtpbnZpdGF0aW9ucxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52aXRhdGlvbiIjCiFMaXN0Q3VycmVudFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QilwEKIkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVzcG9uc2USOgoLaW52aXRhdGlvbnMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkludml0YXRpb24SNQoEb3JncxgCIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIrYBChdMaXN0U2VydmljZVVzZXJzUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBMTIvVGhlIG9yZ2FuaXphdGlvbiBJRCB0byBmaWx0ZXIgc2VydmljZSB1c2VycyBieS7iQQEC+kIEcgIQAxJKCgVzdGF0ZRgCIAEoCUI7kkE4MjZUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgZW5hYmxlZCBvciBkaXNhYmxlZC4iWAoYTGlzdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIikQEKFlNlcnZpY2VVc2VyUmVxdWVzdEJvZHkSTAoFdGl0bGUYASABKAlCPZJBOjInVXNlciBmcmllbmRseSBuYW1lIG9mIHRoZSBzZXJ2aWNlIHVzZXIuSg8iT3JkZXIgU2VydmljZSISKQoIbWV0YWRhdGEYAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IrYBChhDcmVhdGVTZXJ2aWNlVXNlclJlcXVlc3QSPwoEYm9keRgBIAEoCzIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXJSZXF1ZXN0Qm9keRJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiWAoZQ3JlYXRlU2VydmljZVVzZXJSZXNwb25zZRI7CgtzZXJ2aWNldXNlchgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIirgEKFUdldFNlcnZpY2VVc2VyUmVxdWVzdBI6CgJpZBgBIAEoCUIukkErMilUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZ2V0LhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiVQoWR2V0U2VydmljZVVzZXJSZXNwb25zZRI7CgtzZXJ2aWNldXNlchgBIAEoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIitAEKGERlbGV0ZVNlcnZpY2VVc2VyUmVxdWVzdBI9CgJpZBgBIAEoCUIxkkEuMixUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZGVsZXRlLhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiGwoZRGVsZXRlU2VydmljZVVzZXJSZXNwb25zZSLQAQobQ3JlYXRlU2VydmljZVVzZXJKV0tSZXF1ZXN0EkcKAmlkGAEgASgJQjuSQTgyNlRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBjcmVhdGUgYSBrZXkgZm9yLhINCgV0aXRsZRgCIAEoCRJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiVQocQ3JlYXRlU2VydmljZVVzZXJKV0tSZXNwb25zZRI1CgNrZXkYASABKAsyKC5yYXlzdGFjay5mcm9udGllci52MWJldGExLktleUNyZWRlbnRpYWwi8gEKGEdldFNlcnZpY2VVc2VySldLUmVxdWVzdBJECgJpZBgBIAEoCUI4kkE1MjNUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gZ2V0IGEga2V5IGZvci4SNQoGa2V5X2lkGAIgASgJQiWSQSIyIFRoZSB1bmlxdWUgSUQgb2YgdGhlIGtleSB0byBnZXQuElkKBm9yZ19pZBgDIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJQChlHZXRTZXJ2aWNlVXNlckpXS1Jlc3BvbnNlEjMKBGtleXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkpTT05XZWJLZXkivQEKGkxpc3RTZXJ2aWNlVXNlckpXS3NSZXF1ZXN0EkQKAmlkGAEgASgJQjiSQTUyM1RoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBsaXN0IGtleXMgZm9yLhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiVgobTGlzdFNlcnZpY2VVc2VySldLc1Jlc3BvbnNlEjcKBGtleXMYASADKAsyKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VySldLIvsBChtEZWxldGVTZXJ2aWNlVXNlckpXS1JlcXVlc3QSRwoCaWQYASABKAlCO5JBODI2VGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VydmljZSB1c2VyIHRvIGRlbGV0ZSBhIGtleSBmb3IuEjgKBmtleV9pZBgCIAEoCUIokkElMiNUaGUgdW5pcXVlIElEIG9mIHRoZSBrZXkgdG8gZGVsZXRlLhJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiHgocRGVsZXRlU2VydmljZVVzZXJKV0tSZXNwb25zZSLXAQoiQ3JlYXRlU2VydmljZVVzZXJDcmVkZW50aWFsUmVxdWVzdBJHCgJpZBgBIAEoCUI7kkE4MjZUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gY3JlYXRlIGEga2V5IGZvci4SDQoFdGl0bGUYAiABKAkSWQoGb3JnX2lkGAMgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADImIKI0NyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlc3BvbnNlEjsKBnNlY3JldBgBIAEoCzIrLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VjcmV0Q3JlZGVudGlhbCLHAQohTGlzdFNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0EkcKAmlkGAEgASgJQjuSQTgyNlRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBsaXN0IHNlY3JldHMgZm9yLhJZCgZvcmdfaWQYAiABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiYgoiTGlzdFNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXNwb25zZRI8CgdzZWNyZXRzGAEgAygLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZWNyZXRDcmVkZW50aWFsIosCCiJEZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXF1ZXN0EkoKAmlkGAEgASgJQj6SQTsyOVRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBkZWxldGUgYSBzZWNyZXQgZm9yLhI+CglzZWNyZXRfaWQYAiABKAlCK5JBKDImVGhlIHVuaXF1ZSBJRCBvZiB0aGUgc2VjcmV0IHRvIGRlbGV0ZS4SWQoGb3JnX2lkGAMgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIiUKI0RlbGV0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlc3BvbnNlItQBCh1DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVxdWVzdBJJCgJpZBgBIAEoCUI9kkE6MjhUaGUgdW5pcXVlIElEIG9mIHRoZSBzZXJ2aWNlIHVzZXIgdG8gY3JlYXRlIGEgdG9rZW4gZm9yLhINCgV0aXRsZRgCIAEoCRJZCgZvcmdfaWQYAyABKAlCSZJBOzI5VGhlIG9yZ2FuaXphdGlvbiBJRCB0byB3aGljaCB0aGUgc2VydmljZSB1c2VyIGJlbG9uZ3MgdG8u4kEBAvpCBHICEAMiXAoeQ3JlYXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlEjoKBXRva2VuGAEgASgLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXJ2aWNlVXNlclRva2VuIsEBChxMaXN0U2VydmljZVVzZXJUb2tlbnNSZXF1ZXN0EkYKAmlkGAEgASgJQjqSQTcyNVRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBsaXN0IHRva2VucyBmb3IuElkKBm9yZ19pZBgCIAEoCUJJkkE7MjlUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBzZXJ2aWNlIHVzZXIgYmVsb25ncyB0by7iQQEC+kIEcgIQAyJcCh1MaXN0U2VydmljZVVzZXJUb2tlbnNSZXNwb25zZRI7CgZ0b2tlbnMYASADKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyVG9rZW4igwIKHURlbGV0ZVNlcnZpY2VVc2VyVG9rZW5SZXF1ZXN0EkkKAmlkGAEgASgJQj2SQToyOFRoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBkZWxldGUgYSB0b2tlbiBmb3IuEjwKCHRva2VuX2lkGAIgASgJQiqSQScyJVRoZSB1bmlxdWUgSUQgb2YgdGhlIHRva2VuIHRvIGRlbGV0ZS4SWQoGb3JnX2lkGAMgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADIiAKHkRlbGV0ZVNlcnZpY2VVc2VyVG9rZW5SZXNwb25zZSLfAQoeTGlzdFNlcnZpY2VVc2VyUHJvamVjdHNSZXF1ZXN0EkgKAmlkGAEgASgJQjySQTkyN1RoZSB1bmlxdWUgSUQgb2YgdGhlIHNlcnZpY2UgdXNlciB0byBsaXN0IHByb2plY3RzIGZvci4SWQoGb3JnX2lkGAIgASgJQkmSQTsyOVRoZSBvcmdhbml6YXRpb24gSUQgdG8gd2hpY2ggdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvLuJBAQL6QgRyAhADEhgKEHdpdGhfcGVybWlzc2lvbnMYAyADKAki6wEKH0xpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVzcG9uc2USNAoIcHJvamVjdHMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QSWwoMYWNjZXNzX3BhaXJzGAIgAygLMkUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJQcm9qZWN0c1Jlc3BvbnNlLkFjY2Vzc1BhaXIaNQoKQWNjZXNzUGFpchISCgpwcm9qZWN0X2lkGAEgASgJEhMKC3Blcm1pc3Npb25zGAIgAygJIu0BCh1MaXN0T3JnYW5pemF0aW9uR3JvdXBzUmVxdWVzdBIpCgZvcmdfaWQYAiABKAlCGfpCFnIUEAMyEF5bQS1aYS16MC05Xy1dKyQSVwoFc3RhdGUYAyABKAlCSJJBRTJDVGhlIHN0YXRlIG9mIHRoZSBncm91cCB0byBmaWx0ZXIgYnkuIEl0IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkLhIRCglncm91cF9pZHMYBCADKAkSFAoMd2l0aF9tZW1iZXJzGAUgASgIEhkKEXdpdGhfbWVtYmVyX2NvdW50GAYgASgISgQIARACIlIKHkxpc3RPcmdhbml6YXRpb25Hcm91cHNSZXNwb25zZRIwCgZncm91cHMYASADKAsyIC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwIq8BCh1DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBJCCgRib2R5GAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlUmVxdWVzdEJvZHlCCPpCBYoBAhABEkoKBm9yZ19pZBgCIAEoCUI6kkEzMjFUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSByb2xlIGJlbG9uZ3MgdG8u4kEBAiJPCh5DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJBChpHZXRPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiTAobR2V0T3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlEi0KBHJvbGUYASABKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUidQodVXBkYXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QSCgoCaWQYASABKAkSDgoGb3JnX2lkGAMgASgJEjgKBGJvZHkYAiABKAsyKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGVSZXF1ZXN0Qm9keSJPCh5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2USLQoEcm9sZRgBIAEoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSIxChBMaXN0Um9sZXNSZXF1ZXN0Eg0KBXN0YXRlGAEgASgJEg4KBnNjb3BlcxgCIAMoCSJDChFMaXN0Um9sZXNSZXNwb25zZRIuCgVyb2xlcxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJWChxMaXN0T3JnYW5pemF0aW9uUm9sZXNSZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAxINCgVzdGF0ZRgCIAEoCRIOCgZzY29wZXMYAyADKAkiTwodTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2USLgoFcm9sZXMYASADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiRAodRGVsZXRlT3JnYW5pemF0aW9uUm9sZVJlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADIiAKHkRlbGV0ZU9yZ2FuaXphdGlvblJvbGVSZXNwb25zZSKrCgoXT3JnYW5pemF0aW9uUmVxdWVzdEJvZHkS+wEKBG5hbWUYASABKAlC7AGSQc0BMsoBVGhlIG5hbWUgb2YgdGhlIG9yZ2FuaXphdGlvbi4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMuPGJyLz4qRXhhbXBsZToqYCJmcm9udGllci1vcmcxLWFjbWUiYOJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBKyAQoFdGl0bGUYAiABKAlCogGSQZ4BMpsBVGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBvcmdhbml6YXRpb24uIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuPGJyLz4gKkV4YW1wbGUqOiBgIkFjbWUgSW5jImAS6QMKCG1ldGFkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEK9A5JBuQMytgNNZXRhZGF0YSBvYmplY3QgZm9yIG9yZ2FuaXphdGlvbnMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMgZGVmaW5lZCBpbiBPcmdhbml6YXRpb24gTWV0YXNjaGVtYS4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gYmUgdXNlZCB0byBzdG9yZSBhcmJpdHJhcnkgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG9yZ2FuaXphdGlvbiBzdWNoIGFzIGxhYmVscywgZGVzY3JpcHRpb25zIGV0Yy4gVGhlIGRlZmF1bHQgT3JnYW5pemF0aW9uIE1ldGFzY2hlbWEgY29udGFpbnMgbGFiZWxzIGFuZCBkZXNjcmlwdG9uIGZpZWxkcy4gVXBkYXRlIHRoZSBPcmdhbml6YXRpb24gTWV0YXNjaGVtYSB0byBhZGQgbW9yZSBmaWVsZHMuIDxici8+KkV4YW1wbGUqOmB7ImxhYmVscyI6IHsia2V5IjogInZhbHVlIn0sICJkZXNjcmlwdGlvbiI6ICJPcmdhbml6YXRpb24gZGVzY3JpcHRpb24ifWAS8AIKBmF2YXRhchgEIAEoCULfApJBjwIy0wFUaGUgYXZhdGFyIGlzIGJhc2U2NCBlbmNvZGVkIGltYWdlIGRhdGEgb2YgdGhlIHVzZXIuIENhbiBhbHNvIGJlIGxlZnQgZW1wdHkuIFRoZSBpbWFnZSBzaG91bGQgYmUgbGVzcyB0aGFuIDIwMEtCLiBTaG91bGQgZm9sbG93IHRoZSByZWdleCBwYXR0ZXJuIGBeZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJGAuSjciZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUEi+kJJckcYkKEPMj5eZGF0YTppbWFnZS8ocG5nfGpwZ3xqcGVnfGdpZik7YmFzZTY0LChbYS16QS1aMC05Ky9dKz17MCwyfSkrJNABASLpAwoYTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0EscBCgd1c2VyX2lkGAEgASgJQrUBkkGxATKuAVRoZSB1c2VyIElEIHRvIGZpbHRlciBieS4gSXQgY2FuIGJlIHVzZWQgdG8gbGlzdCBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgdGhhdCB0aGUgdXNlciBpcyBhIG1lbWJlciBvZi4gT3RoZXJ3aXNlLCBhbGwgdGhlIG9yZ2FuaXphdGlvbnMgaW4gdGhlIEZyb250aWVyIGluc3RhbmNlIHdpbGwgYmUgbGlzdGVkLhJOCgVzdGF0ZRgCIAEoCUI/kkE8MjpUaGUgc3RhdGUgdG8gZmlsdGVyIGJ5LiBJdCBjYW4gYmUgYGVuYWJsZWRgIG9yIGBkaXNhYmxlZGAuEmUKCXBhZ2Vfc2l6ZRgDIAEoBUJSkkFGMkRUaGUgbWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBUaGUgZGVmYXVsdCBpcyAxMDAwLvpCBhoEKAFAARJMCghwYWdlX251bRgEIAEoBUI6kkEuMixUaGUgcGFnZSBudW1iZXIgdG8gcmV0dXJuLiBUaGUgZGVmYXVsdCBpcyAxLvpCBhoEKAFAASJbChlMaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlEj4KDW9yZ2FuaXphdGlvbnMYASADKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiJnChlDcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EkoKBGJvZHkYASABKAsyMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvblJlcXVlc3RCb2R5Qgj6QgWKAQIQASJbChpDcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZRI9Cgxvcmdhbml6YXRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiJYChdHZXRPcmdhbml6YXRpb25SZXNwb25zZRI9Cgxvcmdhbml6YXRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiJbChpVcGRhdGVPcmdhbml6YXRpb25SZXNwb25zZRI9Cgxvcmdhbml6YXRpb24YASABKAsyJy5yYXlzdGFjay5mcm9udGllci52MWJldGExLk9yZ2FuaXphdGlvbiIkChZHZXRPcmdhbml6YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJImkKGVVwZGF0ZU9yZ2FuaXphdGlvblJlcXVlc3QSCgoCaWQYASABKAkSQAoEYm9keRgCIAEoCzIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uUmVxdWVzdEJvZHkiNAodTGlzdE9yZ2FuaXphdGlvbkFkbWluc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiUAoeTGlzdE9yZ2FuaXphdGlvbkFkbWluc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyInwKHExpc3RPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSHQoRcGVybWlzc2lvbl9maWx0ZXIYAiABKAlCAhgBEhIKCndpdGhfcm9sZXMYAyABKAgSFAoMcm9sZV9maWx0ZXJzGAQgAygJIvMBCh1MaXN0T3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchJVCgpyb2xlX3BhaXJzGAIgAygLMkEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZS5Sb2xlUGFpchpLCghSb2xlUGFpchIPCgd1c2VyX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlInwKG0FkZE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxJICgh1c2VyX2lkcxgCIAMoCUI2kkEzMjFMaXN0IG9mIHVzZXIgSURzIHRvIGJlIGFkZGVkIHRvIHRoZSBvcmdhbml6YXRpb24uIh4KHEFkZE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2UiRQodUmVtb3ZlT3JnYW5pemF0aW9uVXNlclJlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSDwoHdXNlcl9pZBgCIAEoCSIgCh5SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVzcG9uc2UiOgojTGlzdE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiZAokTGlzdE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlEjwKDHNlcnZpY2V1c2VycxgBIAMoCzImLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2VydmljZVVzZXIi3AEKIkxpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9uc1JlcXVlc3QSTwoGb3JnX2lkGAEgASgJQj+SQTgyNnVuaXF1ZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIHRvIHdoaWNoIHVzZXIgaXMgaW52aXRlZOJBAQISZQoHdXNlcl9pZBgCIAEoCUJUkkFRMk91c2VyX2lkIGZpbHRlciBpcyB0aGUgZW1haWwgaWQgb2YgdXNlciB3aG8gYXJlIGludml0ZWQgaW5zaWRlIHRoZSBvcmdhbml6YXRpb24uImEKI0xpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9uc1Jlc3BvbnNlEjoKC2ludml0YXRpb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZpdGF0aW9uIoYECiNDcmVhdGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVxdWVzdBJPCgZvcmdfaWQYASABKAlCP5JBODI2dW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gdG8gd2hpY2ggdXNlciBpcyBpbnZpdGVk4kEBAhKrAQoIdXNlcl9pZHMYAiADKAlCmAGSQYYBMoMBdXNlcl9pZCBpcyBlbWFpbCBpZCBvZiB1c2VyIHdobyBhcmUgaW52aXRlZCBpbnNpZGUgdGhlIG9yZ2FuaXphdGlvbi4gSWYgdXNlciBpcyBub3QgcmVnaXN0ZXJlZCBvbiB0aGUgcGxhdGZvcm0sIGl0IHdpbGwgYmUgbm90aWZpZWTiQQEC+kIHkgEECAEQChJWCglncm91cF9pZHMYAyADKAlCQ5JBQDI+bGlzdCBvZiBncm91cCBpZHMgdG8gd2hpY2ggdXNlciBuZWVkcyB0byBiZSBhZGRlZCBhcyBhIG1lbWJlci4ShwEKCHJvbGVfaWRzGAQgAygJQnWSQXIycGxpc3Qgb2Ygcm9sZSBpZHMgdG8gd2hpY2ggdXNlciBuZWVkcyB0byBiZSBhZGRlZCBhcyBhIG1lbWJlci4gUm9sZXMgYXJlIGJpbmRlZCBhdCBvcmdhbml6YXRpb24gbGV2ZWwgYnkgZGVmYXVsdC4iYgokQ3JlYXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlc3BvbnNlEjoKC2ludml0YXRpb25zGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5JbnZpdGF0aW9uIj4KIEdldE9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCSJeCiFHZXRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2USOQoKaW52aXRhdGlvbhgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSW52aXRhdGlvbiJBCiNBY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCRIOCgZvcmdfaWQYAiABKAkiJgokQWNjZXB0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlc3BvbnNlIkEKI0RlbGV0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCSKVAgoeTGlzdE9yZ2FuaXphdGlvbkRvbWFpbnNSZXF1ZXN0EmwKBm9yZ19pZBgBIAEoCUJckkFOMkx1bmlxdWUgaWQgb2YgdGhlIG9yZ2FuaXphdGlvbiBmb3Igd2hpY2ggd2hpdGVsaXN0ZWQgZG9tYWlucyBhcmUgdG8gYmUgbGlzdGVk4kEBAvpCBHICEAMShAEKBXN0YXRlGAIgASgJQnWSQXIycGZpbHRlciB0byBsaXN0IGRvbWFpbnMgYnkgdGhlaXIgc3RhdGUgKHBlbmRpbmcvdmVyaWZpZWQpLiBJZiBub3QgcHJvdmlkZWQsIGFsbCBkb21haW5zIGZvciBhbiBvcmcgd2lsbCBiZSBsaXN0ZWQiVQofTGlzdE9yZ2FuaXphdGlvbkRvbWFpbnNSZXNwb25zZRIyCgdkb21haW5zGAEgAygLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Eb21haW4imAEKIExpc3RPcmdhbml6YXRpb25zQnlEb21haW5SZXF1ZXN0EnQKBG5hbWUYASABKAlCZpJBWDJWZG9tYWluIG5hbWUgdG8gYmUgdXNlZCB0byBsaXN0IGFsbCB0aGUgb3JnYW5pemF0aW9ucyB0aGF0IGhhdmUgdGhpcyBkb21haW4gd2hpdGVsaXN0ZWTiQQEC+kIEcgIQAyJjCiFMaXN0T3JnYW5pemF0aW9uc0J5RG9tYWluUmVzcG9uc2USPgoNb3JnYW5pemF0aW9ucxgBIAMoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuT3JnYW5pemF0aW9uIjIKF0pvaW5Pcmdhbml6YXRpb25SZXF1ZXN0EhcKBm9yZ19pZBgBIAEoCUIH+kIEcgIQAyIaChhKb2luT3JnYW5pemF0aW9uUmVzcG9uc2Ui0gEKHEdldE9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QSQwoCaWQYASABKAlCN5JBKTIndW5pcXVlIGlkIG9mIHRoZSBkb21haW4gdG8gYmUgcmV0cmlldmVk4kEBAvpCBHICEAMSbQoGb3JnX2lkGAIgASgJQl2SQU8yTXVuaXF1ZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB3aGl0ZWxpc3RlZCBkb21haW4gaXMgdG8gYmUgcmV0cmlldmVk4kEBAvpCBHICEAMiUgodR2V0T3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2USMQoGZG9tYWluGAEgASgLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Eb21haW4i4gEKH0NyZWF0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QSawoGb3JnX2lkGAEgASgJQluSQU0yS3VuaXF1ZSBpZCBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB3aGl0ZWxpc3RlZCBkb21haW5zIGFyZSB0byBiZSBhZGRlZOJBAQL6QgRyAhADElIKBmRvbWFpbhgCIAEoCUJCkkE0MjJkb21haW4gbmFtZSB0byBiZSBhZGRlZCB0byB0aGUgdHJ1c3RlZCBkb21haW4gbGlzdOJBAQL6QgRyAhADIlUKIENyZWF0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlEjEKBmRvbWFpbhgBIAEoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRG9tYWluItMBCh9EZWxldGVPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0EkEKAmlkGAEgASgJQjWSQScyJXVuaXF1ZSBpZCBvZiB0aGUgZG9tYWluIHRvIGJlIGRlbGV0ZWTiQQEC+kIEcgIQAxJtCgZvcmdfaWQYAiABKAlCXZJBTzJNdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbnMgYXJlIHRvIGJlIGRlbGV0ZWTiQQEC+kIEcgIQAyIiCiBEZWxldGVPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSLVAQofVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBJuCgZvcmdfaWQYASABKAlCXpJBUDJOdW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gZm9yIHdoaWNoIHdoaXRlbGlzdGVkIGRvbWFpbnMgYXJlIHRvIGJlIHZlcmlmaWVk4kEBAvpCBHICEAMSQgoCaWQYAiABKAlCNpJBKDImdW5pcXVlIGlkIG9mIHRoZSBkb21haW4gdG8gYmUgdmVyaWZpZWTiQQEC+kIEcgIQAyIxCiBWZXJpZnlPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZRINCgVzdGF0ZRgBIAEoCSImCiREZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2UiJwoZRW5hYmxlT3JnYW5pemF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIcChpFbmFibGVPcmdhbml6YXRpb25SZXNwb25zZSIoChpEaXNhYmxlT3JnYW5pemF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIdChtEaXNhYmxlT3JnYW5pemF0aW9uUmVzcG9uc2UiJwoZRGVsZXRlT3JnYW5pemF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSIcChpEZWxldGVPcmdhbml6YXRpb25SZXNwb25zZSIrChlHZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0Eg4KBm9yZ19pZBgBIAEoCSJiChpHZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZRJEChBvcmdhbml6YXRpb25fa3ljGAEgASgLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Pcmdhbml6YXRpb25LeWMirAUKElByb2plY3RSZXF1ZXN0Qm9keRL3AQoEbmFtZRgBIAEoCULoAZJByQEyxgFUaGUgbmFtZSBvZiB0aGUgcHJvamVjdC4gVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIFRoZSBuYW1lIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMuPGJyLz4gKkV4YW1wbGU6KiBgZnJvbnRpZXItcGxheWdyb3VuZGDiQQEC+kIUchIyEF5bQS1aYS16MC05LV9dKyQStwEKBXRpdGxlGAIgASgJQqcBkkGjATKgAVRoZSB0aXRsZSBjYW4gY29udGFpbiBhbnkgVVRGLTggY2hhcmFjdGVyLCB1c2VkIHRvIHByb3ZpZGUgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgcHJvamVjdC4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gPGJyLz4gKkV4YW1wbGU6KiBgRnJvbnRpZXIgUGxheWdyb3VuZGASiQEKCG1ldGFkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEJekkFbMllNZXRhZGF0YSBvYmplY3QgZm9yIHByb2plY3RzIHRoYXQgY2FuIGhvbGQga2V5IHZhbHVlIHBhaXJzIGRlZmluZWQgaW4gUHJvamVjdCBNZXRhc2NoZW1hLhJWCgZvcmdfaWQYBCABKAlCRpJBODI2dW5pcXVlIGlkIG9mIHRoZSBvcmdhbml6YXRpb24gdG8gd2hpY2ggcHJvamVjdCBiZWxvbmdz4kEBAvpCBHICEAMiXQoUQ3JlYXRlUHJvamVjdFJlcXVlc3QSRQoEYm9keRgBIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdFJlcXVlc3RCb2R5Qgj6QgWKAQIQASJMChVDcmVhdGVQcm9qZWN0UmVzcG9uc2USMwoHcHJvamVjdBgBIAEoCzIiLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdCLfAQofTGlzdE9yZ2FuaXphdGlvblByb2plY3RzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxKLAQoFc3RhdGUYAiABKAlCfJJBeTJ3RmlsdGVyIHByb2plY3RzIGJ5IHN0YXRlLiBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgcHJvamVjdHMgYXJlIHJldHVybmVkLiA8YnIvPiAqUG9zc2libGUgdmFsdWVzOiogYGVuYWJsZWRgIG9yIGBkaXNhYmxlZGASGQoRd2l0aF9tZW1iZXJfY291bnQYAyABKAgiWAogTGlzdE9yZ2FuaXphdGlvblByb2plY3RzUmVzcG9uc2USNAoIcHJvamVjdHMYASADKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QiHwoRR2V0UHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiSQoSR2V0UHJvamVjdFJlc3BvbnNlEjMKB3Byb2plY3QYASABKAsyIi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByb2plY3QiXwoUVXBkYXRlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkSOwoEYm9keRgCIAEoCzItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJvamVjdFJlcXVlc3RCb2R5IkwKFVVwZGF0ZVByb2plY3RSZXNwb25zZRIzCgdwcm9qZWN0GAEgASgLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qcm9qZWN0Ii8KGExpc3RQcm9qZWN0QWRtaW5zUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJLChlMaXN0UHJvamVjdEFkbWluc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyIl0KF0xpc3RQcm9qZWN0VXNlcnNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEhkKEXBlcm1pc3Npb25fZmlsdGVyGAIgASgJEhIKCndpdGhfcm9sZXMYAyABKAgi6QEKGExpc3RQcm9qZWN0VXNlcnNSZXNwb25zZRIuCgV1c2VycxgBIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXNlchJQCgpyb2xlX3BhaXJzGAIgAygLMjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFVzZXJzUmVzcG9uc2UuUm9sZVBhaXIaSwoIUm9sZVBhaXISDwoHdXNlcl9pZBgBIAEoCRIuCgVyb2xlcxgCIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSJJCh5MaXN0UHJvamVjdFNlcnZpY2VVc2Vyc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMSEgoKd2l0aF9yb2xlcxgDIAEoCCKMAgofTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXNwb25zZRI8CgxzZXJ2aWNldXNlcnMYASADKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlNlcnZpY2VVc2VyElcKCnJvbGVfcGFpcnMYAiADKAsyQy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0U2VydmljZVVzZXJzUmVzcG9uc2UuUm9sZVBhaXIaUgoIUm9sZVBhaXISFgoOc2VydmljZXVzZXJfaWQYASABKAkSLgoFcm9sZXMYAiADKAsyHy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJvbGUiQwoYTGlzdFByb2plY3RHcm91cHNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEhIKCndpdGhfcm9sZXMYAiABKAgi7gEKGUxpc3RQcm9qZWN0R3JvdXBzUmVzcG9uc2USMAoGZ3JvdXBzGAEgAygLMiAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cBJRCgpyb2xlX3BhaXJzGAIgAygLMj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEdyb3Vwc1Jlc3BvbnNlLlJvbGVQYWlyGkwKCFJvbGVQYWlyEhAKCGdyb3VwX2lkGAEgASgJEi4KBXJvbGVzGAIgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Sb2xlIiIKFEVuYWJsZVByb2plY3RSZXF1ZXN0EgoKAmlkGAEgASgJIhcKFUVuYWJsZVByb2plY3RSZXNwb25zZSIjChVEaXNhYmxlUHJvamVjdFJlcXVlc3QSCgoCaWQYASABKAkiGAoWRGlzYWJsZVByb2plY3RSZXNwb25zZSIiChREZWxldGVQcm9qZWN0UmVxdWVzdBIKCgJpZBgBIAEoCSIXChVEZWxldGVQcm9qZWN0UmVzcG9uc2UiowgKEVBvbGljeVJlcXVlc3RCb2R5ElIKB3JvbGVfaWQYASABKAlCQZJBMzIxdW5pcXVlIGlkIG9mIHRoZSByb2xlIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZOJBAQL6QgRyAhADEq8BCgV0aXRsZRgDIAEoCUKfAZJBmwEymAFUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHBvbGljeS4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gPGJyLz4gKkV4YW1wbGU6KiBgUG9saWN5IHRpdGxlYBKzAQoIcmVzb3VyY2UYAiABKAlCoAGSQZEBMo4BVGhlIHJlc291cmNlIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZCBpbiB0aGlzIGZvcm1hdCBgbmFtZXNwYWNlOnV1aWRgLiA8YnIvPiAqRXhhbXBsZToqIGBhcHAvZ3VhcmRpYW46NzBmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiOGUyYOJBAQL6QgRyAhADEu8CCglwcmluY2lwYWwYBCABKAlC2wKSQdMCMtACcHJpbmNpcGFsIGlzIHRoZSB1c2VyIG9yIGdyb3VwIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZC4gVGhlIHByaW5jaXBhbCBpZCBtdXN0IGJlIHByZWZpeGVkIHdpdGggaXRzIG5hbWVzcGFjZSBpZCBpbiB0aGlzIGZvcm1hdCBgbmFtZXNwYWNlOnV1aWRgLiBUaGUgbmFtZXNwYWNlIGNhbiBiZSBgYXBwL3VzZXJgLCBgYXBwL2dyb3VwYCBvciBgYXBwL3NlcnZpY2V1c2VyYCAoY29taW5nIHVwISkgYW5kIHV1aWQgaXMgdGhlIHVuaXF1ZSBpZCBvZiB0aGUgcHJpbmNpcGFsLiA8YnIvPiAqRXhhbXBsZToqIGBhcHAvdXNlcjo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVg4kEBAhLfAQoIbWV0YWRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0QrMBkkGvATKsAU1ldGFkYXRhIG9iamVjdCBmb3IgcG9saWNpZXMgdGhhdCBjYW4gaG9sZCBrZXkgdmFsdWUgcGFpcnMgZGVmaW5lZCBpbiBQb2xpY3kgTWV0YXNjaGVtYS48YnIvPiAqRXhhbXBsZToqIGB7ImxhYmVscyI6IHsia2V5IjogInZhbHVlIn0sICJkZXNjcmlwdGlvbiI6ICJQb2xpY3kgZGVzY3JpcHRpb24ifWAilAUKGkNyZWF0ZVBvbGljeUZvclByb2plY3RCb2R5ElIKB3JvbGVfaWQYASABKAlCQZJBMzIxdW5pcXVlIGlkIG9mIHRoZSByb2xlIHRvIHdoaWNoIHBvbGljeSBpcyBhc3NpZ25lZOJBAQL6QgRyAhADEq8BCgV0aXRsZRgCIAEoCUKfAZJBmwEymAFUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHBvbGljeS4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4gPGJyLz4gKkV4YW1wbGU6KiBgUG9saWN5IHRpdGxlYBLvAgoJcHJpbmNpcGFsGAMgASgJQtsCkkHTAjLQAnByaW5jaXBhbCBpcyB0aGUgdXNlciBvciBncm91cCB0byB3aGljaCBwb2xpY3kgaXMgYXNzaWduZWQuIFRoZSBwcmluY2lwYWwgaWQgbXVzdCBiZSBwcmVmaXhlZCB3aXRoIGl0cyBuYW1lc3BhY2UgaWQgaW4gdGhpcyBmb3JtYXQgYG5hbWVzcGFjZTp1dWlkYC4gVGhlIG5hbWVzcGFjZSBjYW4gYmUgYGFwcC91c2VyYCwgYGFwcC9ncm91cGAgb3IgYGFwcC9zZXJ2aWNldXNlcmAgKGNvbWluZyB1cCEpIGFuZCB1dWlkIGlzIHRoZSB1bmlxdWUgaWQgb2YgdGhlIHByaW5jaXBhbC4gPGJyLz4gKkV4YW1wbGU6KiBgYXBwL3VzZXI6OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YOJBAQIiIgoUR2V0UGVybWlzc2lvblJlcXVlc3QSCgoCaWQYASABKAkiUgoVR2V0UGVybWlzc2lvblJlc3BvbnNlEjkKCnBlcm1pc3Npb24YASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBlcm1pc3Npb24iGAoWTGlzdFBlcm1pc3Npb25zUmVxdWVzdCJVChdMaXN0UGVybWlzc2lvbnNSZXNwb25zZRI6CgtwZXJtaXNzaW9ucxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUGVybWlzc2lvbiIXChVMaXN0TmFtZXNwYWNlc1JlcXVlc3QiUgoWTGlzdE5hbWVzcGFjZXNSZXNwb25zZRI4CgpuYW1lc3BhY2VzGAEgAygLMiQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5OYW1lc3BhY2UiIQoTR2V0TmFtZXNwYWNlUmVxdWVzdBIKCgJpZBgBIAEoCSJPChRHZXROYW1lc3BhY2VSZXNwb25zZRI3CgluYW1lc3BhY2UYASABKAsyJC5yYXlzdGFjay5mcm9udGllci52MWJldGExLk5hbWVzcGFjZSJbChNDcmVhdGVQb2xpY3lSZXF1ZXN0EkQKBGJvZHkYASABKAsyLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJPChRDcmVhdGVQb2xpY3lSZXNwb25zZRIxCgZwb2xpY3kYAiABKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeUoECAEQAiIeChBHZXRQb2xpY3lSZXF1ZXN0EgoKAmlkGAEgASgJIkYKEUdldFBvbGljeVJlc3BvbnNlEjEKBnBvbGljeRgBIAEoCzIhLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUG9saWN5IpkCChNMaXN0UG9saWNpZXNSZXF1ZXN0EjYKBm9yZ19pZBgBIAEoCUImkkEjMiFUaGUgb3JnYW5pemF0aW9uIGlkIHRvIGZpbHRlciBieS4SNQoKcHJvamVjdF9pZBgCIAEoCUIhkkEeMhxUaGUgcHJvamVjdCBpZCB0byBmaWx0ZXIgYnkuEi8KB3VzZXJfaWQYAyABKAlCHpJBGzIZVGhlIHVzZXIgaWQgdG8gZmlsdGVyIGJ5LhIvCgdyb2xlX2lkGAQgASgJQh6SQRsyGVRoZSByb2xlIGlkIHRvIGZpbHRlciBieS4SMQoIZ3JvdXBfaWQYBSABKAlCH5JBHDIaVGhlIGdyb3VwIGlkIHRvIGZpbHRlciBieS4iSwoUTGlzdFBvbGljaWVzUmVzcG9uc2USMwoIcG9saWNpZXMYASADKAsyIS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeSJdChNVcGRhdGVQb2xpY3lSZXF1ZXN0EgoKAmlkGAEgASgJEjoKBGJvZHkYAiABKAsyLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlBvbGljeVJlcXVlc3RCb2R5IksKFFVwZGF0ZVBvbGljeVJlc3BvbnNlEjMKCHBvbGljaWVzGAEgAygLMiEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Qb2xpY3kiIQoTRGVsZXRlUG9saWN5UmVxdWVzdBIKCgJpZBgBIAEoCSIWChREZWxldGVQb2xpY3lSZXNwb25zZSKLAQodQ3JlYXRlUG9saWN5Rm9yUHJvamVjdFJlcXVlc3QSGwoKcHJvamVjdF9pZBgBIAEoCUIH+kIEcgIQAxJNCgRib2R5GAIgASgLMjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lGb3JQcm9qZWN0Qm9keUII+kIFigECEAEiIAoeQ3JlYXRlUG9saWN5Rm9yUHJvamVjdFJlc3BvbnNlInIKE1JlbGF0aW9uUmVxdWVzdEJvZHkSDgoGb2JqZWN0GAEgASgJEg8KB3N1YmplY3QYAyABKAkSEAoIcmVsYXRpb24YBCABKAkSHAoUc3ViamVjdF9zdWJfcmVsYXRpb24YBiABKAlKBAgCEANKBAgFEAYiXwoVQ3JlYXRlUmVsYXRpb25SZXF1ZXN0EkYKBGJvZHkYASABKAsyLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uUmVxdWVzdEJvZHlCCPpCBYoBAhABIk8KFkNyZWF0ZVJlbGF0aW9uUmVzcG9uc2USNQoIcmVsYXRpb24YASABKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlbGF0aW9uIiAKEkdldFJlbGF0aW9uUmVxdWVzdBIKCgJpZBgBIAEoCSJMChNHZXRSZWxhdGlvblJlc3BvbnNlEjUKCHJlbGF0aW9uGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiJhChVVcGRhdGVSZWxhdGlvblJlcXVlc3QSCgoCaWQYASABKAkSPAoEYm9keRgCIAEoCzIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVsYXRpb25SZXF1ZXN0Qm9keSJPChZVcGRhdGVSZWxhdGlvblJlc3BvbnNlEjUKCHJlbGF0aW9uGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWxhdGlvbiK5BgoQR3JvdXBSZXF1ZXN0Qm9keRLPAQoEbmFtZRgBIAEoCULAAZJBoQEyngFUaGUgbmFtZSBvZiB0aGUgZ3JvdXAuIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLuJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBKLAQoFdGl0bGUYAiABKAlCfJJBeTJ3VGhlIHRpdGxlIGNhbiBjb250YWluIGFueSBVVEYtOCBjaGFyYWN0ZXIsIHVzZWQgdG8gcHJvdmlkZSBhIGh1bWFuLXJlYWRhYmxlIG5hbWUgZm9yIHRoZSBncm91cC4gQ2FuIGFsc28gYmUgbGVmdCBlbXB0eS4SvgMKCG1ldGFkYXRhGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEKSA5JBjgMyiwNNZXRhZGF0YSBvYmplY3QgZm9yIGdyb3VwcyB0aGF0IGNhbiBob2xkIGtleSB2YWx1ZSBwYWlycyBkZWZpbmVkIGluIEdyb3VwIE1ldGFzY2hlbWEuIFRoZSBtZXRhZGF0YSBvYmplY3QgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYXJiaXRyYXJ5IGluZm9ybWF0aW9uIGFib3V0IHRoZSBncm91cCBzdWNoIGFzIGxhYmVscywgZGVzY3JpcHRpb25zIGV0Yy4gVGhlIGRlZmF1bHQgR3JvdXAgTWV0YXNjaGVtYSBjb250YWlucyBsYWJlbHMgYW5kIGRlc2NyaXB0b24gZmllbGRzLiBVcGRhdGUgdGhlIEdyb3VwIE1ldGFzY2hlbWEgdG8gYWRkIG1vcmUgZmllbGRzLjxici8+KkV4YW1wbGU6KmB7ImxhYmVscyI6IHsia2V5IjogInZhbHVlIn0sICJkZXNjcmlwdGlvbiI6ICJHcm91cCBkZXNjcmlwdGlvbiJ9YEoECAQQBSKmAQoSQ3JlYXRlR3JvdXBSZXF1ZXN0EkMKBGJvZHkYASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdyb3VwUmVxdWVzdEJvZHlCCPpCBYoBAhABEksKBm9yZ19pZBgCIAEoCUI7kkE0MjJUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBncm91cCBiZWxvbmdzIHRvLuJBAQIiQwoPR2V0R3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCRIUCgx3aXRoX21lbWJlcnMYAyABKAgiRgoTQ3JlYXRlR3JvdXBSZXNwb25zZRIvCgVncm91cBgBIAEoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAiQwoQR2V0R3JvdXBSZXNwb25zZRIvCgVncm91cBgBIAEoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAiRgoTVXBkYXRlR3JvdXBSZXNwb25zZRIvCgVncm91cBgBIAEoCzIgLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR3JvdXAiqAEKElVwZGF0ZUdyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRI5CgRib2R5GAIgASgLMisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Hcm91cFJlcXVlc3RCb2R5EksKBm9yZ19pZBgDIAEoCUI7kkE0MjJUaGUgb3JnYW5pemF0aW9uIElEIHRvIHdoaWNoIHRoZSBncm91cCBiZWxvbmdzIHRvLuJBAQIiRwoVTGlzdEdyb3VwVXNlcnNSZXF1ZXN0EgoKAmlkGAEgASgJEg4KBm9yZ19pZBgCIAEoCRISCgp3aXRoX3JvbGVzGAMgASgIIuUBChZMaXN0R3JvdXBVc2Vyc1Jlc3BvbnNlEi4KBXVzZXJzGAEgAygLMh8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Vc2VyEk4KCnJvbGVfcGFpcnMYAiADKAsyOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFVzZXJzUmVzcG9uc2UuUm9sZVBhaXIaSwoIUm9sZVBhaXISDwoHdXNlcl9pZBgBIAEoCRIuCgVyb2xlcxgCIAMoCzIfLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUm9sZSI5ChJFbmFibGVHcm91cFJlcXVlc3QSCgoCaWQYASABKAkSFwoGb3JnX2lkGAIgASgJQgf6QgRyAhADIhUKE0VuYWJsZUdyb3VwUmVzcG9uc2UiOgoTRGlzYWJsZUdyb3VwUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMiFgoURGlzYWJsZUdyb3VwUmVzcG9uc2UiOQoSRGVsZXRlR3JvdXBSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAyIVChNEZWxldGVHcm91cFJlc3BvbnNlIk0KFEFkZEdyb3VwVXNlcnNSZXF1ZXN0EgoKAmlkGAEgASgJEhcKBm9yZ19pZBgCIAEoCUIH+kIEcgIQAxIQCgh1c2VyX2lkcxgDIAMoCSIXChVBZGRHcm91cFVzZXJzUmVzcG9uc2UiTgoWUmVtb3ZlR3JvdXBVc2VyUmVxdWVzdBIKCgJpZBgBIAEoCRIXCgZvcmdfaWQYAiABKAlCB/pCBHICEAMSDwoHdXNlcl9pZBgDIAEoCSIZChdSZW1vdmVHcm91cFVzZXJSZXNwb25zZSJQChVEZWxldGVSZWxhdGlvblJlcXVlc3QSDgoGb2JqZWN0GAEgASgJEg8KB3N1YmplY3QYAiABKAkSEAoIcmVsYXRpb24YBCABKAlKBAgDEAQiGAoWRGVsZXRlUmVsYXRpb25SZXNwb25zZSJTChtMaXN0UHJvamVjdFJlc291cmNlc1JlcXVlc3QSGwoKcHJvamVjdF9pZBgCIAEoCUIH+kIEcgIQAxIRCgluYW1lc3BhY2UYBCABKAlKBAgBEAIiVgocTGlzdFByb2plY3RSZXNvdXJjZXNSZXNwb25zZRI2CglyZXNvdXJjZXMYASADKAsyIy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlIrYGChNSZXNvdXJjZVJlcXVlc3RCb2R5EnMKBG5hbWUYASABKAlCZZJBXjJcVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlLiAgTXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBwcm9qZWN0LiA8YnIvPiAqRXhhbXBsZToqIGBteS1yZXNvdXJjZWDiQQECEo4BCgV0aXRsZRgCIAEoCUJ/kkF8MnpUaGUgdGl0bGUgY2FuIGNvbnRhaW4gYW55IFVURi04IGNoYXJhY3RlciwgdXNlZCB0byBwcm92aWRlIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIHJlc291cmNlLiBDYW4gYWxzbyBiZSBsZWZ0IGVtcHR5LhLyAQoJbmFtZXNwYWNlGAMgASgJQt4BkkHWATLTAVRoZSBuYW1lc3BhY2Ugb2YgdGhlIHJlc291cmNlLiBUaGUgcmVzb3VyY2UgbmFtZXNwYWNlIGFyZSBjcmVhdGVkIHdoZW4gcGVybWlzc2lvbnMgZm9yIHRoYXQgcmVzb3VyY2UgaXMgY3JlYXRlZCBpbiBGcm9udGllci4gSWYgbmFtZXNwYWNlIGRvZXNuJ3QgZXhpc3RzIHRoZSByZXF1ZXN0IHdpbGwgZmFpbC4gPGJyLz4gKkV4YW1wbGU6KiBgY29tcHV0ZS9pbnN0YW5jZWDiQQECEuwBCglwcmluY2lwYWwYBiABKAlC2AGSQdQBMtEBVXNlcklEIG9yIFNlcnZpY2VVc2VySUQgdGhhdCBzaG91bGQgYmUgbWFya2VkIGFzIG93bmVyIG9mIHRoZSByZXNvdXJjZS4gSWYgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCBsb2dnZWQgaW4gdXNlciB3aWxsIGJlIG1hZGUgdGhlIHJlc291cmNlIG93bmVyLiA8YnIvPiAqRXhhbXBsZToqIGB1c2VyOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWASKQoIbWV0YWRhdGEYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SgQIBBAFSgQIBRAGIqYBChxDcmVhdGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EkYKBGJvZHkYASABKAsyLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlUmVxdWVzdEJvZHlCCPpCBYoBAhABEhIKCnByb2plY3RfaWQYAiABKAkSKgoCaWQYAyABKAlCHpJBGzIZQXV0b2dlbmVyYXRlZCBpZiBza2lwcGVkLiJWCh1DcmVhdGVQcm9qZWN0UmVzb3VyY2VSZXNwb25zZRI1CghyZXNvdXJjZRgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2UiSgoZR2V0UHJvamVjdFJlc291cmNlUmVxdWVzdBIKCgJpZBgBIAEoCRIbCgpwcm9qZWN0X2lkGAMgASgJQgf6QgRyAhADSgQIAhADIlMKGkdldFByb2plY3RSZXNvdXJjZVJlc3BvbnNlEjUKCHJlc291cmNlGAEgASgLMiMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXNvdXJjZSJ8ChxVcGRhdGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0EgoKAmlkGAEgASgJEjwKBGJvZHkYAiABKAsyLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlJlc291cmNlUmVxdWVzdEJvZHkSEgoKcHJvamVjdF9pZBgDIAEoCSJWCh1VcGRhdGVQcm9qZWN0UmVzb3VyY2VSZXNwb25zZRI1CghyZXNvdXJjZRgBIAEoCzIjLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVzb3VyY2UiRwocRGVsZXRlUHJvamVjdFJlc291cmNlUmVxdWVzdBIKCgJpZBgBIAEoCRIbCgpwcm9qZWN0X2lkGAMgASgJQgf6QgRyAhADIh8KHURlbGV0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlIoMGCh5DaGVja1Jlc291cmNlUGVybWlzc2lvblJlcXVlc3QSQwoJb2JqZWN0X2lkGAEgASgJQjAYAZJBKzIpRGVwcmVjYXRlZC4gVXNlIGByZXNvdXJjZWAgZmllbGQgaW5zdGVhZC4SSgoQb2JqZWN0X25hbWVzcGFjZRgCIAEoCUIwGAGSQSsyKURlcHJlY2F0ZWQuIFVzZSBgcmVzb3VyY2VgIGZpZWxkIGluc3RlYWQuEowBCgpwZXJtaXNzaW9uGAMgASgJQniSQVkyV3RoZSBwZXJtaXNzaW9uIG5hbWUgdG8gY2hlY2suIDxici8+ICpFeGFtcGxlOiogYGdldGAsIGBsaXN0YCwgYGNvbXB1dGUuaW5zdGFuY2UuY3JlYXRlYOJBAQL6QhVyEzIRXltBLVphLXowLTkuXy1dKyQSwAMKCHJlc291cmNlGAQgASgJQq0DkkGpAzKmA2BuYW1lc3BhY2U6dXVpZGAgb3IgYG5hbWVzcGFjZTpuYW1lYCBvZiB0aGUgb3JnIG9yIHByb2plY3QsIGFuZCBgbmFtZXNwYWNlOnVybmAgb2YgYSByZXNvdXJjZSB1bmRlciBhIHByb2plY3QuIEluIGNhc2Ugb2YgYW4gb3JnL3Byb2plY3QgZWl0aGVyIHByb3ZpZGUgdGhlIGNvbXBsZXRlIG5hbWVzcGFjZSAoYXBwL29yZ2FuaXphdGlvbikgb3IgRnJvbnRpZXIgY2FuIGFsc28gcGFyc2UgYWxpYXNlcyBmb3IgdGhlIHNhbWUgYXMgYG9yZ2Agb3IgYHByb2plY3RgLiA8YnIvPiAqRXhhbXBsZToqIGBvcmdhbml6YXRpb246OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCBvciBgYXBwL3Byb2plY3Q6cHJvamVjdC1uYW1lYCBvciBgY29tcHV0ZS9pbnN0YW5jZTo5MmY2OWMzYS0zMzRiLTRmMjUtOTBiOC00ZDRmM2JlNmI4MjVgIjEKH0NoZWNrUmVzb3VyY2VQZXJtaXNzaW9uUmVzcG9uc2USDgoGc3RhdHVzGAEgASgIIm4KG0JhdGNoQ2hlY2tQZXJtaXNzaW9uUmVxdWVzdBJPCgZib2RpZXMYASADKAsyMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkJhdGNoQ2hlY2tQZXJtaXNzaW9uQm9keUIK+kIHkgEECAEQFCLSBAoYQmF0Y2hDaGVja1Blcm1pc3Npb25Cb2R5EnMKCnBlcm1pc3Npb24YASABKAlCX5JBQDI+dGhlIHBlcm1pc3Npb24gbmFtZSB0byBjaGVjay4gPGJyLz4gKkV4YW1wbGU6KiBgZ2V0YCBvciBgbGlzdGDiQQEC+kIVchMyEV5bQS1aYS16MC05Ll8tXSskEsADCghyZXNvdXJjZRgCIAEoCUKtA5JBqQMypgNgbmFtZXNwYWNlOnV1aWRgIG9yIGBuYW1lc3BhY2U6bmFtZWAgb2YgdGhlIG9yZyBvciBwcm9qZWN0LCBhbmQgYG5hbWVzcGFjZTp1cm5gIG9mIGEgcmVzb3VyY2UgdW5kZXIgYSBwcm9qZWN0LiBJbiBjYXNlIG9mIGFuIG9yZy9wcm9qZWN0IGVpdGhlciBwcm92aWRlIHRoZSBjb21wbGV0ZSBuYW1lc3BhY2UgKGFwcC9vcmdhbml6YXRpb24pIG9yIEZyb250aWVyIGNhbiBhbHNvIHBhcnNlIGFsaWFzZXMgZm9yIHRoZSBzYW1lIGFzIGBvcmdgIG9yIGBwcm9qZWN0YC4gPGJyLz4gKkV4YW1wbGU6KiBgb3JnYW5pemF0aW9uOjkyZjY5YzNhLTMzNGItNGYyNS05MGI4LTRkNGYzYmU2YjgyNWAgb3IgYGFwcC9wcm9qZWN0OnByb2plY3QtbmFtZWAgb3IgYGNvbXB1dGUvaW5zdGFuY2U6OTJmNjljM2EtMzM0Yi00ZjI1LTkwYjgtNGQ0ZjNiZTZiODI1YCJqChxCYXRjaENoZWNrUGVybWlzc2lvblJlc3BvbnNlEkoKBXBhaXJzGAEgAygLMjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CYXRjaENoZWNrUGVybWlzc2lvblJlc3BvbnNlUGFpciJ1CiBCYXRjaENoZWNrUGVybWlzc2lvblJlc3BvbnNlUGFpchJBCgRib2R5GAEgASgLMjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CYXRjaENoZWNrUGVybWlzc2lvbkJvZHkSDgoGc3RhdHVzGAIgASgIIqEDChVNZXRhU2NoZW1hUmVxdWVzdEJvZHkS1AEKBG5hbWUYASABKAlCxQGSQaYBMqMBVGhlIG5hbWUgb2YgdGhlIG1ldGFzY2hlbWEuIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZW50aXJlIEZyb250aWVyIGluc3RhbmNlLiBUaGUgbmFtZSBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLuJBAQL6QhRyEjIQXltBLVphLXowLTktX10rJBKwAQoGc2NoZW1hGAIgASgJQp8BkkGQATKNAVRoZSBzY2hlbWEgb2YgdGhlIG1ldGFzY2hlbWEuIFRoZSBzY2hlbWEgbXVzdCBiZSBhIHZhbGlkIEpTT04gc2NoZW1hLlBsZWFzZSByZWZlciB0byBodHRwczovL2pzb24tc2NoZW1hLm9yZy8gdG8ga25vdyBtb3JlIGFib3V0IGpzb24gc2NoZW1hLuJBAQL6QgRyAhACImMKF0NyZWF0ZU1ldGFTY2hlbWFSZXF1ZXN0EkgKBGJvZHkYASABKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLk1ldGFTY2hlbWFSZXF1ZXN0Qm9keUII+kIFigECEAEiVQoYQ3JlYXRlTWV0YVNjaGVtYVJlc3BvbnNlEjkKCm1ldGFzY2hlbWEYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLk1ldGFTY2hlbWEiIgoUR2V0TWV0YVNjaGVtYVJlcXVlc3QSCgoCaWQYASABKAkiUgoVR2V0TWV0YVNjaGVtYVJlc3BvbnNlEjkKCm1ldGFzY2hlbWEYASABKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLk1ldGFTY2hlbWEibwoXVXBkYXRlTWV0YVNjaGVtYVJlcXVlc3QSCgoCaWQYASABKAkSSAoEYm9keRgCIAEoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYVJlcXVlc3RCb2R5Qgj6QgWKAQIQASJVChhVcGRhdGVNZXRhU2NoZW1hUmVzcG9uc2USOQoKbWV0YXNjaGVtYRgBIAEoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSIlChdEZWxldGVNZXRhU2NoZW1hUmVxdWVzdBIKCgJpZBgBIAEoCSIaChhEZWxldGVNZXRhU2NoZW1hUmVzcG9uc2UiGAoWTGlzdE1ldGFTY2hlbWFzUmVxdWVzdCJVChdMaXN0TWV0YVNjaGVtYXNSZXNwb25zZRI6CgttZXRhc2NoZW1hcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTWV0YVNjaGVtYSIcChpEZXNjcmliZVByZWZlcmVuY2VzUmVxdWVzdCJZChtEZXNjcmliZVByZWZlcmVuY2VzUmVzcG9uc2USOgoGdHJhaXRzGAEgAygLMioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlVHJhaXQihwEKJENyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxJKCgZib2RpZXMYAiADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keUII+kIFkgECCAEiYwolQ3JlYXRlT3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSI5CiJMaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADImEKI0xpc3RPcmdhbml6YXRpb25QcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlIoIBCh9DcmVhdGVQcm9qZWN0UHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJeCiBDcmVhdGVQcm9qZWN0UHJlZmVyZW5jZXNSZXNwb25zZRI6CgtwcmVmZXJlbmNlcxgBIAMoCzIlLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZSI0Ch1MaXN0UHJvamVjdFByZWZlcmVuY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAyJcCh5MaXN0UHJvamVjdFByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UigAEKHUNyZWF0ZUdyb3VwUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADEkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJcCh5DcmVhdGVHcm91cFByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiMgobTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXF1ZXN0EhMKAmlkGAEgASgJQgf6QgRyAhADIloKHExpc3RHcm91cFByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UifwocQ3JlYXRlVXNlclByZWZlcmVuY2VzUmVxdWVzdBITCgJpZBgBIAEoCUIH+kIEcgIQAxJKCgZib2RpZXMYAiADKAsyMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2VSZXF1ZXN0Qm9keUII+kIFkgECCAEiWwodQ3JlYXRlVXNlclByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiMQoaTGlzdFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QSEwoCaWQYASABKAlCB/pCBHICEAMiWQobTGlzdFVzZXJQcmVmZXJlbmNlc1Jlc3BvbnNlEjoKC3ByZWZlcmVuY2VzGAEgAygLMiUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QcmVmZXJlbmNlInEKI0NyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0EkoKBmJvZGllcxgCIAMoCzIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUHJlZmVyZW5jZVJlcXVlc3RCb2R5Qgj6QgWSAQIIASJiCiRDcmVhdGVDdXJyZW50VXNlclByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiIwohTGlzdEN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0ImAKIkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzUmVzcG9uc2USOgoLcHJlZmVyZW5jZXMYASADKAsyJS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlByZWZlcmVuY2UiSAodQmlsbGluZ1dlYmhvb2tDYWxsYmFja1JlcXVlc3QSGQoIcHJvdmlkZXIYASABKAlCB/pCBHICEAESDAoEYm9keRgCIAEoDCIgCh5CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVzcG9uc2UihAQKG0NyZWF0ZVByb3NwZWN0UHVibGljUmVxdWVzdBI+CgRuYW1lGAEgASgJQjCSQRcyFWZ1bGwgbmFtZSBvZiB0aGUgdXNlcvpCE3IRMgxeW0EtWmEteiBdKyTQAQESMgoFZW1haWwYBSABKAlCI5JBEzIRZW1haWwgb2YgdGhlIHVzZXLiQQEC+kIGcgQQAWABEiwKBXBob25lGAYgASgJQh2SQRoyGHBob25lIG51bWJlciBvZiB0aGUgdXNlchKAAQoIYWN0aXZpdHkYByABKAlCbpJBTjJMYWN0aXZpdHkgZm9yIHdoaWNoIHVzZXIgaXMgc3Vic2NyaWJpbmcsIGUuZy4gbmV3c2xldHRlciwgd2FpdGxpc3QsIGJsb2dzIGV0Y+JBAQL6QhZyFBABMhBeW0EtWmEtejAtOS1fXSskEm0KBnNvdXJjZRgJIAEoCUJdkkFAMj5zb3VyY2Ugb2YgdGhpcyB1c2VyIGFkZGl0aW9uIGUuZy4gcGxhdGZvcm0sIHdlYnNpdGUsIGFkbWluIGV0Y/pCF3IVMhBeW0EtWmEtejAtOS1fXSsk0AEBElEKCG1ldGFkYXRhGAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEImkkEjMiFhZGRpdGlvbmFsIGluZm8gYXMga2V5IHZhbHVlIHBhaXIiHgocQ3JlYXRlUHJvc3BlY3RQdWJsaWNSZXNwb25zZSIVChNMaXN0U2Vzc2lvbnNSZXF1ZXN0IkwKFExpc3RTZXNzaW9uc1Jlc3BvbnNlEjQKCHNlc3Npb25zGAEgAygLMiIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5TZXNzaW9uIjgKFFJldm9rZVNlc3Npb25SZXF1ZXN0EiAKCnNlc3Npb25faWQYASABKAlCDOJBAQL6QgVyA7ABASIXChVSZXZva2VTZXNzaW9uUmVzcG9uc2UiGAoWUGluZ1VzZXJTZXNzaW9uUmVxdWVzdCJUChdQaW5nVXNlclNlc3Npb25SZXNwb25zZRI5CghtZXRhZGF0YRgBIAEoCzInLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuU2Vzc2lvbi5NZXRhIrUDChhDcmVhdGVBdWRpdFJlY29yZFJlcXVlc3QSQAoFYWN0b3IYASABKAsyKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkQWN0b3JCBOJBAQISGgoFZXZlbnQYAiABKAlCC+JBAQL6QgRyAhADEkYKCHJlc291cmNlGAMgASgLMi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdWRpdFJlY29yZFJlc291cmNlQgTiQQECEjwKBnRhcmdldBgEIAEoCzIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXVkaXRSZWNvcmRUYXJnZXQSNQoLb2NjdXJyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgTiQQECEhgKBm9yZ19pZBgGIAEoCUII+kIFcgOwAQESEgoKcmVxdWVzdF9pZBgHIAEoCRIpCghtZXRhZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJQoPaWRlbXBvdGVuY3lfa2V5GAkgASgJQgziQQEC+kIFcgOwAQEiWQoZQ3JlYXRlQXVkaXRSZWNvcmRSZXNwb25zZRI8CgxhdWRpdF9yZWNvcmQYASABKAsyJi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1ZGl0UmVjb3JkMtORAwoPRnJvbnRpZXJTZXJ2aWNlEugCCglMaXN0VXNlcnMSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2Vyc1JlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2Vyc1Jlc3BvbnNlIv8BkkHlAQoEVXNlchIRTGlzdCBwdWJsaWMgdXNlcnMayQFSZXR1cm5zIHRoZSB1c2VycyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkga2V5d29yZCwgb3JnYW5pemF0aW9uLCBncm91cCBhbmQgc3RhdGUuIEFkZGl0aW9uYWxseSB5b3UgY2FuIGluY2x1ZGUgcGFnZSBudW1iZXIgYW5kIHBhZ2Ugc2l6ZSBmb3IgcGFnaW5hdGlvbi6C0+STAhASDi92MWJldGExL3VzZXJzErsGCgpDcmVhdGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlVXNlclJlc3BvbnNlIs8FkkGvBQoEVXNlchILQ3JlYXRlIHVzZXIalwVDcmVhdGUgYSB1c2VyIHdpdGggdGhlIGdpdmVuIGRldGFpbHMuIEEgdXNlciBpcyBub3QgYXR0YWNoZWQgdG8gYW4gb3JnYW5pemF0aW9uIG9yIGEgZ3JvdXAgYnkgZGVmYXVsdCxhbmQgY2FuIGJlIGludml0ZWQgdG8gdGhlIG9yZy9ncm91cC4gVGhlIG5hbWUgb2YgdGhlIHVzZXIgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UuIElmIGEgdXNlciBuYW1lIGlzIG5vdCBwcm92aWRlZCwgRnJvbnRpZXIgYXV0b21hdGljYWxseSBnZW5lcmF0ZXMgYSBuYW1lIGZyb20gdGhlIHVzZXIgZW1haWwuIFRoZSB1c2VyIG1ldGFkYXRhIGlzIHZhbGlkYXRlZCBhZ2FpbnN0IHRoZSB1c2VyIG1ldGFzY2hlbWEuIEJ5IGRlZmF1bHQgdGhlIHVzZXIgbWV0YXNjaGVtYSBjb250YWlucyBgbGFiZWxzYCBhbmQgYGRlc2NyaXB0aW9uc2AgZm9yIHRoZSB1c2VyLiBUaGUgYHRpdGxlYCBmaWVsZCBjYW4gYmUgb3B0aW9uYWxseSBhZGRlZCBmb3IgYSB1c2VyLWZyaWVuZGx5IG5hbWUuIDxici8+PGJyLz4qRXhhbXBsZToqYHsiZW1haWwiOiJqb2huLmRvZUByYXlzdGFjay5vcmciLCJ0aXRsZSI6IkpvaG4gRG9lIixtZXRhZGF0YTp7ImxhYmVsIjogeyJrZXkxIjogInZhbHVlMSJ9LCAiZGVzY3JpcHRpb24iOiAiVXNlciBEZXNjcmlwdGlvbiJ9fWBiAILT5JMCFiIOL3YxYmV0YTEvdXNlcnM6BGJvZHkSzwEKB0dldFVzZXISKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVzZXJSZXF1ZXN0GioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRVc2VyUmVzcG9uc2UibZJBTwoEVXNlchIIR2V0IHVzZXIaPUdldCBhIHVzZXIgYnkgaWQgc2VhcmNoZWQgb3ZlciBhbGwgb3JnYW5pemF0aW9ucyBpbiBGcm9udGllci6C0+STAhUSEy92MWJldGExL3VzZXJzL3tpZH0S6gIKDkxpc3RVc2VyR3JvdXBzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlckdyb3Vwc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyR3JvdXBzUmVzcG9uc2Ui8gGSQcwBCgRVc2VyEhBMaXN0IHVzZXIgZ3JvdXBzGrEBTGlzdHMgYWxsIHRoZSBncm91cHMgYSB1c2VyIGJlbG9uZ3MgdG8gYWNyb3NzIGFsbCBvcmdhbml6YXRpb24gaW4gRnJvbnRpZXIuIFRvIGdldCB0aGUgZ3JvdXBzIG9mIGEgdXNlciBpbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbiwgdXNlIHRoZSBvcmdfaWQgZmlsdGVyIGluIHRoZSBxdWVyeSBwYXJhbWV0ZXIugtPkkwIcEhovdjFiZXRhMS91c2Vycy97aWR9L2dyb3VwcxLHAQoVTGlzdEN1cnJlbnRVc2VyR3JvdXBzEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJHcm91cHNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJHcm91cHNSZXNwb25zZSI7kkEWCgRVc2VyEg5MaXN0IG15IGdyb3Vwc4LT5JMCHBIaL3YxYmV0YTEvdXNlcnMvc2VsZi9ncm91cHMSrQEKDkdldEN1cnJlbnRVc2VyEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDdXJyZW50VXNlclJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEN1cnJlbnRVc2VyUmVzcG9uc2UiNpJBGAoEVXNlchIQR2V0IGN1cnJlbnQgdXNlcoLT5JMCFRITL3YxYmV0YTEvdXNlcnMvc2VsZhKiAQoKVXBkYXRlVXNlchIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlVXNlclJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVVzZXJSZXNwb25zZSI3kkETCgRVc2VyEgtVcGRhdGUgdXNlcoLT5JMCGxoTL3YxYmV0YTEvdXNlcnMve2lkfToEYm9keRK/AQoRVXBkYXRlQ3VycmVudFVzZXISMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUN1cnJlbnRVc2VyUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQ3VycmVudFVzZXJSZXNwb25zZSI/kkEbCgRVc2VyEhNVcGRhdGUgY3VycmVudCB1c2VygtPkkwIbGhMvdjFiZXRhMS91c2Vycy9zZWxmOgRib2R5EpECCgpFbmFibGVVc2VyEiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVVc2VyUmVxdWVzdBotLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlVXNlclJlc3BvbnNlIqUBkkF9CgRVc2VyEgtFbmFibGUgdXNlchpoU2V0cyB0aGUgc3RhdGUgb2YgdGhlIHVzZXIgYXMgZW5hYmxlZC4gVGhlIHVzZXIgd2lsbCBiZSBhYmxlIHRvIGxvZyBpbiBhbmQgYWNjZXNzIHRoZSBGcm9udGllciBpbnN0YW5jZS6C0+STAh8iGi92MWJldGExL3VzZXJzL3tpZH0vZW5hYmxlOgEqEpADCgtEaXNhYmxlVXNlchItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZVVzZXJSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlVXNlclJlc3BvbnNlIqECkkH3AQoEVXNlchIMRGlzYWJsZSB1c2VyGuABU2V0cyB0aGUgc3RhdGUgb2YgdGhlIHVzZXIgYXMgZGlhYmxlZC5UaGUgdXNlcidzIG1lbWJlcnNoaXAgdG8gZ3JvdXBzIGFuZCBvcmdhbml6YXRpb25zIHdpbGwgc3RpbGwgZXhpc3QgYWxvbmcgd2l0aCBhbGwgaXQncyByb2xlcyBmb3IgYWNjZXNzIGNvbnRyb2wsIGJ1dCB0aGUgdXNlciB3aWxsIG5vdCBiZSBhYmxlIHRvIGxvZyBpbiBhbmQgYWNjZXNzIHRoZSBGcm9udGllciBpbnN0YW5jZS6C0+STAiAiGy92MWJldGExL3VzZXJzL3tpZH0vZGlzYWJsZToBKhL3AQoKRGVsZXRlVXNlchIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlVXNlclJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVVzZXJSZXNwb25zZSKLAZJBbQoEVXNlchILRGVsZXRlIHVzZXIaWERlbGV0ZSBhbiB1c2VyIHBlcm1hbmVudGx5IGZvcmV2ZXIgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zIChvcmdhbml6YXRpb25zLCBncm91cHMsIGV0YymC0+STAhUqEy92MWJldGExL3VzZXJzL3tpZH0S/wQKF0xpc3RPcmdhbml6YXRpb25zQnlVc2VyEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uc0J5VXNlclJlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zQnlVc2VyUmVzcG9uc2Ui7AOSQb8DCgRVc2VyEhZHZXQgdXNlciBvcmdhbml6YXRpb25zGp4DVGhpcyBBUEkgcmV0dXJucyB0d28gbGlzdCBvZiBvcmdhbml6YXRpb25zIGZvciB0aGUgdXNlci4gaSkgVGhlIGxpc3Qgb2Ygb3JncyB3aGljaCB0aGUgY3VycmVudCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mIGlpKSBUaGUgbGlzdCBvZiBvcmdhbml6YXRpb25zIHRoZSB1c2VyIGNhbiBqb2luIGRpcmVjdGx5IChiYXNlZCBvbiBkb21haW4gd2hpdGVsaXN0ZWQgYW5kIHZlcmlmaWVkIGJ5IHRoZSBvcmcpLiBUaGlzIGxpc3Qgd2lsbCBhbHNvIGNvbnRhaW4gb3JncyBvZiB3aGljaCB1c2VyIGlzIGFscmVhZHkgYSBwYXJ0IG9mLiBOb3RlOiB0aGUgZG9tYWluIG5lZWRzIHRvIGJlIHZlcmlmaWVkIGJ5IHRoZSBvcmcgYmVmb3JlIHRoZSBpdCBpcyByZXR1cm5lZCBhcyBvbmUgb2YgdGhlIGpvaW5hYmxlIG9yZ3MgYnkgZG9tYWlugtPkkwIjEiEvdjFiZXRhMS91c2Vycy97aWR9L29yZ2FuaXphdGlvbnMSpAUKHkxpc3RPcmdhbml6YXRpb25zQnlDdXJyZW50VXNlchJALnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVxdWVzdBpBLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNCeUN1cnJlbnRVc2VyUmVzcG9uc2Ui/AOSQc8DCgRVc2VyEhRHZXQgbXkgb3JnYW5pemF0aW9ucxqwA1RoaXMgQVBJIHJldHVybnMgdHdvIGxpc3Qgb2Ygb3JnYW5pemF0aW9ucyBmb3IgdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHVzZXIuIGkpIFRoZSBsaXN0IG9mIG9yZ3Mgd2hpY2ggdGhlIGN1cnJlbnQgdXNlciBpcyBhbHJlYWR5IGEgcGFydCBvZiBpaSkgVGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9ucyB0aGUgdXNlciBjYW4gam9pbiBkaXJlY3RseSAoYmFzZWQgb24gZG9tYWluIHdoaXRlbGlzdGVkIGFuZCB2ZXJpZmllZCBieSB0aGUgb3JnKS4gVGhpcyBsaXN0IHdpbGwgYWxzbyBjb250YWluIG9yZ3Mgb2Ygd2hpY2ggdXNlciBpcyBhbHJlYWR5IGEgcGFydCBvZi4gTm90ZTogdGhlIGRvbWFpbiBuZWVkcyB0byBiZSB2ZXJpZmllZCBieSB0aGUgb3JnIGJlZm9yZSB0aGUgaXQgaXMgcmV0dXJuZWQgYXMgb25lIG9mIHRoZSBqb2luYWJsZSBvcmdzIGJ5IGRvbWFpboLT5JMCIxIhL3YxYmV0YTEvdXNlcnMvc2VsZi9vcmdhbml6YXRpb25zEuwBChJMaXN0UHJvamVjdHNCeVVzZXISNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5VXNlclJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5VXNlclJlc3BvbnNlImmSQUIKBFVzZXISEUdldCB1c2VyIHByb2plY3RzGidHZXQgYWxsIHRoZSBwcm9qZWN0cyBhIHVzZXIgYmVsb25ncyB0by6C0+STAh4SHC92MWJldGExL3VzZXJzL3tpZH0vcHJvamVjdHMShAIKGUxpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXISOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0c0J5Q3VycmVudFVzZXJSZXF1ZXN0GjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdHNCeUN1cnJlbnRVc2VyUmVzcG9uc2UibJJBRQoEVXNlchIPR2V0IG15IHByb2plY3RzGixHZXQgYWxsIHByb2plY3RzIHRoZSBjdXJyZW50IHVzZXIgYmVsb25ncyB0b4LT5JMCHhIcL3YxYmV0YTEvdXNlcnMvc2VsZi9wcm9qZWN0cxL3AQoTTGlzdFVzZXJJbnZpdGF0aW9ucxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VySW52aXRhdGlvbnNSZXNwb25zZSJxkkFHCgRVc2VyEhVMaXN0IHVzZXIgaW52aXRhdGlvbnMaKExpc3QgYWxsIHRoZSBpbnZpdGF0aW9ucyBzZW50IHRvIGEgdXNlci6C0+STAiESHy92MWJldGExL3VzZXJzL3tpZH0vaW52aXRhdGlvbnMSkgIKGkxpc3RDdXJyZW50VXNlckludml0YXRpb25zEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJJbnZpdGF0aW9uc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlckludml0YXRpb25zUmVzcG9uc2Uid5JBTQoEVXNlchIVTGlzdCB1c2VyIGludml0YXRpb25zGi5MaXN0IGFsbCB0aGUgaW52aXRhdGlvbnMgc2VudCB0byBjdXJyZW50IHVzZXIugtPkkwIhEh8vdjFiZXRhMS91c2Vycy9zZWxmL2ludml0YXRpb25zEqgCChBMaXN0U2VydmljZVVzZXJzEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJzUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2Vyc1Jlc3BvbnNlIqoBkkGJAQoLU2VydmljZVVzZXISFkxpc3Qgb3JnIHNlcnZpY2UgdXNlcnMaYlJldHVybnMgdGhlIHNlcnZpY2UgdXNlciBvZiBhbiBvcmdhbml6YXRpb24gaW4gYSBGcm9udGllciBpbnN0YW5jZS4gSXQgY2FuIGJlIGZpbHRlciBieSBpdCdzIHN0YXRlgtPkkwIXEhUvdjFiZXRhMS9zZXJ2aWNldXNlcnMS9AEKEUNyZWF0ZVNlcnZpY2VVc2VyEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlclJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyUmVzcG9uc2UidJJBOgoLU2VydmljZVVzZXISE0NyZWF0ZSBzZXJ2aWNlIHVzZXIaFkNyZWF0ZSBhIHNlcnZpY2UgdXNlci6C0+STAjEiLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzOgEqEvgBCg5HZXRTZXJ2aWNlVXNlchIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U2VydmljZVVzZXJSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTZXJ2aWNlVXNlclJlc3BvbnNlIoABkkFECgtTZXJ2aWNlVXNlchIQR2V0IHNlcnZpY2UgdXNlchojR2V0IHNlcnZpY2UgdXNlciBkZXRhaWxzIGJ5IGl0cyBpZC6C0+STAjMSMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0SvgIKEURlbGV0ZVNlcnZpY2VVc2VyEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlclJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyUmVzcG9uc2UivQGSQYABCgtTZXJ2aWNlVXNlchITRGVsZXRlIHNlcnZpY2UgdXNlchpcRGVsZXRlIGEgc2VydmljZSB1c2VyIHBlcm1hbmVudGx5IGFuZCBhbGwgb2YgaXRzIHJlbGF0aW9ucyAoa2V5cywgb3JnYW5pemF0aW9ucywgcm9sZXMsIGV0YymC0+STAjMqMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0SmAMKFENyZWF0ZVNlcnZpY2VVc2VySldLEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlckpXS1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VySldLUmVzcG9uc2UijgKSQckBCgtTZXJ2aWNlVXNlchIrQ3JlYXRlIHNlcnZpY2UgdXNlciBwdWJsaWMvcHJpdmF0ZSBrZXkgcGFpchqMAUdlbmVyYXRlIGEgc2VydmljZSB1c2VyIGtleSBhbmQgcmV0dXJuIGl0LCB0aGUgcHJpdmF0ZSBrZXkgcGFydCBvZiB0aGUgcmVzcG9uc2Ugd2lsbCBub3QgYmUgcGVyc2lzdGVkIGFuZCBzaG91bGQgYmUga2VwdCBzZWN1cmVseSBieSBjbGllbnQugtPkkwI7IjYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L2tleXM6ASoSrwIKE0xpc3RTZXJ2aWNlVXNlckpXS3MSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlckpXS3NSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJKV0tzUmVzcG9uc2UiqAGSQWcKC1NlcnZpY2VVc2VyEhZMaXN0IHNlcnZpY2UgdXNlciBrZXlzGkBMaXN0IGFsbCB0aGUga2V5cyBvZiBhIHNlcnZpY2UgdXNlciB3aXRoIGl0cyBkZXRhaWxzIGV4Y2VwdCBqd2sugtPkkwI4EjYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L2tleXMSlgIKEUdldFNlcnZpY2VVc2VySldLEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRTZXJ2aWNlVXNlckpXS1JlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFNlcnZpY2VVc2VySldLUmVzcG9uc2UilQGSQUsKC1NlcnZpY2VVc2VyEhRHZXQgc2VydmljZSB1c2VyIGtleRomR2V0IGEgc2VydmljZSB1c2VyIHB1YmxpYyBSU0EgSldLIHNldC6C0+STAkESPy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0va2V5cy97a2V5X2lkfRKiAgoURGVsZXRlU2VydmljZVVzZXJKV0sSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VySldLUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJKV0tSZXNwb25zZSKYAZJBTgoLU2VydmljZVVzZXISF0RlbGV0ZSBzZXJ2aWNlIHVzZXIga2V5GiZEZWxldGUgYSBzZXJ2aWNlIHVzZXIga2V5IHBlcm1hbmVudGx5LoLT5JMCQSo/L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9rZXlzL3trZXlfaWR9EqQDChtDcmVhdGVTZXJ2aWNlVXNlckNyZWRlbnRpYWwSPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlcXVlc3QaPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVNlcnZpY2VVc2VyQ3JlZGVudGlhbFJlc3BvbnNlIoUCkkG9AQoLU2VydmljZVVzZXISJkNyZWF0ZSBzZXJ2aWNlIHVzZXIgY2xpZW50IGNyZWRlbnRpYWxzGoUBR2VuZXJhdGUgYSBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbCBhbmQgcmV0dXJuIGl0LiBUaGUgY3JlZGVudGlhbCB2YWx1ZSB3aWxsIG5vdCBiZSBwZXJzaXN0ZWQgYW5kIHNob3VsZCBiZSBzZWN1cmVseSBzdG9yZWQgYnkgY2xpZW50LoLT5JMCPiI5L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9zZWNyZXRzOgEqErkCChpMaXN0U2VydmljZVVzZXJDcmVkZW50aWFscxI8LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyQ3JlZGVudGlhbHNSZXF1ZXN0Gj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJDcmVkZW50aWFsc1Jlc3BvbnNlIp0BkkFZCgtTZXJ2aWNlVXNlchIdTGlzdCBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHMaK0xpc3QgYWxsIHRoZSBjcmVkZW50aWFscyBvZiBhIHNlcnZpY2UgdXNlci6C0+STAjsSOS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vc2VjcmV0cxLAAgobRGVsZXRlU2VydmljZVVzZXJDcmVkZW50aWFsEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVTZXJ2aWNlVXNlckNyZWRlbnRpYWxSZXNwb25zZSKhAZJBUQoLU2VydmljZVVzZXISH0RlbGV0ZSBzZXJ2aWNlIHVzZXIgY3JlZGVudGlhbHMaIURlbGV0ZSBhIHNlcnZpY2UgdXNlciBjcmVkZW50aWFsLoLT5JMCRypFL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS9zZWNyZXRzL3tzZWNyZXRfaWR9EvwCChZDcmVhdGVTZXJ2aWNlVXNlclRva2VuEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVTZXJ2aWNlVXNlclRva2VuUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlU2VydmljZVVzZXJUb2tlblJlc3BvbnNlIuwBkkGlAQoLU2VydmljZVVzZXISGUNyZWF0ZSBzZXJ2aWNlIHVzZXIgdG9rZW4ae0dlbmVyYXRlIGEgc2VydmljZSB1c2VyIHRva2VuIGFuZCByZXR1cm4gaXQuIFRoZSB0b2tlbiB2YWx1ZSB3aWxsIG5vdCBiZSBwZXJzaXN0ZWQgYW5kIHNob3VsZCBiZSBzZWN1cmVseSBzdG9yZWQgYnkgY2xpZW50LoLT5JMCPSI4L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9zZXJ2aWNldXNlcnMve2lkfS90b2tlbnM6ASoSnwIKFUxpc3RTZXJ2aWNlVXNlclRva2VucxI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyVG9rZW5zUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlcnZpY2VVc2VyVG9rZW5zUmVzcG9uc2UikgGSQU8KC1NlcnZpY2VVc2VyEhhMaXN0IHNlcnZpY2UgdXNlciB0b2tlbnMaJkxpc3QgYWxsIHRoZSB0b2tlbnMgb2YgYSBzZXJ2aWNlIHVzZXIugtPkkwI6EjgvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3Rva2VucxKkAgoWRGVsZXRlU2VydmljZVVzZXJUb2tlbhI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlU2VydmljZVVzZXJUb2tlblJlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZVNlcnZpY2VVc2VyVG9rZW5SZXNwb25zZSKUAZJBRgoLU2VydmljZVVzZXISGURlbGV0ZSBzZXJ2aWNlIHVzZXIgdG9rZW4aHERlbGV0ZSBhIHNlcnZpY2UgdXNlciB0b2tlbi6C0+STAkUqQy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vc2VydmljZXVzZXJzL3tpZH0vdG9rZW5zL3t0b2tlbl9pZH0SsAIKF0xpc3RTZXJ2aWNlVXNlclByb2plY3RzEjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0U2VydmljZVVzZXJQcm9qZWN0c1JlcXVlc3QaOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTZXJ2aWNlVXNlclByb2plY3RzUmVzcG9uc2UinQGSQVgKC1NlcnZpY2VVc2VyEhpMaXN0IHNlcnZpY2Ugc3NlciBwcm9qZWN0cxotTGlzdCBhbGwgcHJvamVjdHMgdGhlIHNlcnZpY2UgdXNlciBiZWxvbmdzIHRvgtPkkwI8EjovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3NlcnZpY2V1c2Vycy97aWR9L3Byb2plY3RzEuQCChZMaXN0T3JnYW5pemF0aW9uR3JvdXBzEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uR3JvdXBzUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkdyb3Vwc1Jlc3BvbnNlItQBkkGiAQoFR3JvdXASGExpc3Qgb3JnYW5pemF0aW9uIGdyb3Vwcxp/R2V0IGFsbCBncm91cHMgdGhhdCBiZWxvbmcgdG8gYW4gb3JnYW5pemF0aW9uLiBUaGUgcmVzdWx0cyBjYW4gYmUgZmlsdGVyZWQgYnkgc3RhdGUgd2hpY2ggY2FuIGJlIGVpdGhlciBiZSBlbmFibGVkIG9yIGRpc2FibGVkLoLT5JMCKBImL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMSnQMKC0NyZWF0ZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUdyb3VwUmVzcG9uc2UirgKSQfYBCgVHcm91cBIMQ3JlYXRlIGdyb3VwGt4BQ3JlYXRlIGEgbmV3IGdyb3VwIGluIGFuIG9yZ2FuaXphdGlvbiB3aGljaCBzZXJ2ZXMgYXMgYSBjb250YWluZXIgZm9yIHVzZXJzLiBUaGUgZ3JvdXAgY2FuIGJlIGFzc2lnbmVkIHJvbGVzIGFuZCBwZXJtaXNzaW9ucyBhbmQgY2FuIGJlIHVzZWQgdG8gbWFuYWdlIGFjY2VzcyB0byByZXNvdXJjZXMuIEFsc28gYSBncm91cCBjYW4gYWxzbyBiZSBhc3NpZ25lZCB0byBvdGhlciBncm91cHMugtPkkwIuIiYvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3VwczoEYm9keRKtAQoIR2V0R3JvdXASKi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEdyb3VwUmVxdWVzdBorLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0R3JvdXBSZXNwb25zZSJIkkESCgVHcm91cBIJR2V0IGdyb3VwgtPkkwItEisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9Er8BCgtVcGRhdGVHcm91cBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlR3JvdXBSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVHcm91cFJlc3BvbnNlIlGSQRUKBUdyb3VwEgxVcGRhdGUgZ3JvdXCC0+STAjMaKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH06BGJvZHkS/gEKDkxpc3RHcm91cFVzZXJzEjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0R3JvdXBVc2Vyc1JlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFVzZXJzUmVzcG9uc2UihgGSQUoKBUdyb3VwEhBMaXN0IGdyb3VwIHVzZXJzGi9SZXR1cm5zIGEgbGlzdCBvZiB1c2VycyB0aGF0IGJlbG9uZyB0byBhIGdyb3VwLoLT5JMCMxIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS91c2VycxLdAgoNQWRkR3JvdXBVc2VycxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkR3JvdXBVc2Vyc1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkZEdyb3VwVXNlcnNSZXNwb25zZSLoAZJBqAEKBUdyb3VwEg5BZGQgZ3JvdXAgdXNlchqOAUFkZHMgYSBwcmluY2lwbGUodXNlciBhbmQgc2VydmljZS11c2VycykgdG8gYSBncm91cCwgZXhpc3RpbmcgdXNlcnMgaW4gdGhlIGdyb3VwIHdpbGwgYmUgaWdub3JlZC4gQSBncm91cCBjYW4ndCBoYXZlIG5lc3RlZCBncm91cHMgYXMgbWVtYmVycy6C0+STAjYiMS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0vdXNlcnM6ASoS7wIKD1JlbW92ZUdyb3VwVXNlchIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlR3JvdXBVc2VyUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlR3JvdXBVc2VyUmVzcG9uc2Ui9AGSQa0BCgVHcm91cBIRUmVtb3ZlIGdyb3VwIHVzZXIakAFSZW1vdmVzIGEgcHJpbmNpcGxlKHVzZXIgYW5kIHNlcnZpY2UtdXNlcnMpIGZyb20gYSBncm91cC4gSWYgdGhlIHVzZXIgaXMgbm90IGluIHRoZSBncm91cCwgdGhlIHJlcXVlc3Qgd2lsbCBzdWNjZWVkIGJ1dCBubyBjaGFuZ2VzIHdpbGwgYmUgbWFkZS6C0+STAj0qOy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZ3JvdXBzL3tpZH0vdXNlcnMve3VzZXJfaWR9EsMCCgtFbmFibGVHcm91cBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlR3JvdXBSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVHcm91cFJlc3BvbnNlItQBkkGTAQoFR3JvdXASDEVuYWJsZSBncm91cBp8U2V0cyB0aGUgc3RhdGUgb2YgdGhlIGdyb3VwIGFzIGVuYWJsZWQuIFRoZSBgZW5hYmxlZGAgZmxhZyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgZ3JvdXAgY2FuIGJlIHVzZWQgZm9yIGFjY2VzcyBjb250cm9sLoLT5JMCNyIyL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9ncm91cHMve2lkfS9lbmFibGU6ASoS1AMKDERpc2FibGVHcm91cBIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUdyb3VwUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZUdyb3VwUmVzcG9uc2Ui4gKSQaACCgVHcm91cBINRGlzYWJsZSBncm91cBqHAlNldHMgdGhlIHN0YXRlIG9mIHRoZSBncm91cCBhcyBkaXNhYmxlZC4gVGhlIGdyb3VwIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBmb3IgYWNjZXNzIGNvbnRyb2wgYW5kIHRoZSBleGlzdGluZyB1c2VycyBpbiB0aGUgZ3JvdXAgd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgYW55IHJlc291cmNlcyB0aGF0IGFyZSBhc3NpZ25lZCB0byB0aGUgZ3JvdXAuIE5vIG90aGVyIHVzZXJzIGNhbiBiZSBhZGRlZCB0byB0aGUgZ3JvdXAgd2hpbGUgaXQgaXMgZGlzYWJsZWQugtPkkwI4IjMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9L2Rpc2FibGU6ASoS/QEKC0RlbGV0ZUdyb3VwEi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVHcm91cFJlcXVlc3QaLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZUdyb3VwUmVzcG9uc2UijgGSQVgKBUdyb3VwEgxEZWxldGUgZ3JvdXAaQURlbGV0ZSBhbiBvcmdhbml6YXRpb24gZ3JvdXAgcGVybWFuZW50bHkgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zgtPkkwItKisvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2dyb3Vwcy97aWR9EpMCCglMaXN0Um9sZXMSKy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSb2xlc1JlcXVlc3QaLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RSb2xlc1Jlc3BvbnNlIqoBkkGQAQoEUm9sZRITTGlzdCBwbGF0Zm9ybSByb2xlcxpzUmV0dXJucyBhIGxpc3Qgb2YgcGxhdGZvcm0gd2lkZSByb2xlcyBhdmFpbGFibGUgaW4gZW5pdHJlIEZyb250aWVyIGluc3RhbmNlIGFsb25nIHdpdGggdGhlaXIgYXNzb2NpYXRlZCBwZXJtaXNzaW9uc4LT5JMCEBIOL3YxYmV0YTEvcm9sZXMSvAIKFUxpc3RPcmdhbml6YXRpb25Sb2xlcxI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblJvbGVzUmVzcG9uc2UirwGSQX8KBFJvbGUSF0xpc3Qgb3JnYW5pemF0aW9uIHJvbGVzGl5SZXR1cm5zIGEgbGlzdCBvZiBjdXN0b20gcm9sZXMgY3JlYXRlZCB1bmRlciBhbiBvcmdhbml6YXRpb24gd2l0aCB0aGVpciBhc3NvY2lhdGVkIHBlcm1pc3Npb25zgtPkkwInEiUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzEvcCChZDcmVhdGVPcmdhbml6YXRpb25Sb2xlEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIucBkkGwAQoEUm9sZRIYQ3JlYXRlIG9yZ2FuaXphdGlvbiByb2xlGo0BQ3JlYXRlIGEgY3VzdG9tIHJvbGUgdW5kZXIgYW4gb3JnYW5pemF0aW9uLiBUaGlzIGN1c3RvbSByb2xlIHdpbGwgb25seSBiZSBhdmFpbGFibGUgZm9yIGFzc2lnbm1lbnQgdG8gdGhlIHByaW5jaXBsZXMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24ugtPkkwItIiUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzOgRib2R5EqwCChNHZXRPcmdhbml6YXRpb25Sb2xlEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIqUBkkFwCgRSb2xlEhVHZXQgb3JnYW5pemF0aW9uIHJvbGUaUVJldHVybnMgYSBjdXN0b20gcm9sZSB1bmRlciBhbiBvcmdhbml6YXRpb24gYWxvbmcgd2l0aCBpdHMgYXNzb2NpYXRlZCBwZXJtaXNzaW9uc4LT5JMCLBIqL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9yb2xlcy97aWR9EvwCChZVcGRhdGVPcmdhbml6YXRpb25Sb2xlEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25Sb2xlUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlT3JnYW5pemF0aW9uUm9sZVJlc3BvbnNlIuwBkkGwAQoEUm9sZRIYVXBkYXRlIG9yZ2FuaXphdGlvbiByb2xlGo0BVXBkYXRlIGEgY3VzdG9tIHJvbGUgdW5kZXIgYW4gb3JnYW5pemF0aW9uLiBUaGlzIGN1c3RvbSByb2xlIHdpbGwgb25seSBiZSBhdmFpbGFibGUgZm9yIGFzc2lnbm1lbnQgdG8gdGhlIHByaW5jaXBsZXMgd2l0aGluIHRoZSBvcmdhbml6YXRpb24ugtPkkwIyGiovdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L3JvbGVzL3tpZH06BGJvZHkStwIKFkRlbGV0ZU9yZ2FuaXphdGlvblJvbGUSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvblJvbGVSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25Sb2xlUmVzcG9uc2UipwGSQXIKBFJvbGUSGERlbGV0ZSBvcmdhbml6YXRpb24gcm9sZRpQRGVsZXRlIGEgY3VzdG9tIHJvbGUgYW5kIGFsbCBvZiBpdHMgcmVsYXRpb25zIHVuZGVyIGFuIG9yZ2FuaXphdGlvbiBwZXJtYW5lbnRseS6C0+STAiwqKi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vcm9sZXMve2lkfRKaAgoRTGlzdE9yZ2FuaXphdGlvbnMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25zUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZSKZAZJBeAoMT3JnYW5pemF0aW9uEhJMaXN0IG9yZ2FuaXphdGlvbnMaVFJldHVybnMgYSBsaXN0IG9mIG9yZ2FuaXphdGlvbnMuIEl0IGNhbiBiZSBmaWx0ZXJlZCBieSB1c2VySUQgb3Igb3JnYW5pemF0aW9uIHN0YXRlLoLT5JMCGBIWL3YxYmV0YTEvb3JnYW5pemF0aW9ucxLNAQoSQ3JlYXRlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZSJKkkEjCgxPcmdhbml6YXRpb24SE0NyZWF0ZSBvcmdhbml6YXRpb26C0+STAh4iFi92MWJldGExL29yZ2FuaXphdGlvbnM6BGJvZHkS4AEKD0dldE9yZ2FuaXphdGlvbhIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uUmVzcG9uc2UiZpJBQAoMT3JnYW5pemF0aW9uEhBHZXQgb3JnYW5pemF0aW9uGh5HZXQgb3JnYW5pemF0aW9uIGJ5IElEIG9yIG5hbWWC0+STAh0SGy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfRLtAQoSVXBkYXRlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVPcmdhbml6YXRpb25SZXNwb25zZSJqkkE+CgxPcmdhbml6YXRpb24SE1VwZGF0ZSBvcmdhbml6YXRpb24aGVVwZGF0ZSBvcmdhbml6YXRpb24gYnkgSUSC0+STAiMaGy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfToEYm9keRKfAgoYTGlzdE9yZ2FuaXphdGlvblByb2plY3RzEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJvamVjdHNSZXNwb25zZSKJAZJBWgoMT3JnYW5pemF0aW9uEhlHZXQgb3JnYW5pemF0aW9uIHByb2plY3RzGi9HZXQgYWxsIHByb2plY3RzIHRoYXQgYmVsb25nIHRvIGFuIG9yZ2FuaXphdGlvboLT5JMCJhIkL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3Byb2plY3RzEo4CChZMaXN0T3JnYW5pemF0aW9uQWRtaW5zEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uQWRtaW5zUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkFkbWluc1Jlc3BvbnNlIn+SQVIKDE9yZ2FuaXphdGlvbhIYTGlzdCBvcmdhbml6YXRpb24gYWRtaW5zGihSZXR1cm5zIGEgbGlzdCBhZG1pbnMgb2YgYW4gb3JnYW5pemF0aW9ugtPkkwIkEiIvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vYWRtaW5zEt8BChVMaXN0T3JnYW5pemF0aW9uVXNlcnMSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1Jlc3BvbnNlIlOSQScKDE9yZ2FuaXphdGlvbhIXTGlzdCBvcmdhbml6YXRpb24gdXNlcnOC0+STAiMSIS92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS91c2VycxLtAgoUQWRkT3JnYW5pemF0aW9uVXNlcnMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFkZE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQWRkT3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSLjAZJBswEKDE9yZ2FuaXphdGlvbhIVQWRkIG9yZ2FuaXphdGlvbiB1c2VyGosBQWRkIGEgdXNlciB0byBhbiBvcmdhbml6YXRpb24uIEEgdXNlciBtdXN0IGV4aXN0cyBpbiBGcm9udGllciBiZWZvcmUgYWRkaW5nIGl0IHRvIGFuIG9yZy4gVGhpcyByZXF1ZXN0IHdpbGwgZmFpbCBpZiB0aGUgdXNlciBkb2Vzbid0IGV4aXN0c4LT5JMCJiIhL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzOgEqEpICChZSZW1vdmVPcmdhbml6YXRpb25Vc2VyEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZW1vdmVPcmdhbml6YXRpb25Vc2VyUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVtb3ZlT3JnYW5pemF0aW9uVXNlclJlc3BvbnNlIoIBkkFMCgxPcmdhbml6YXRpb24SGFJlbW92ZSBvcmdhbml6YXRpb24gdXNlchoiUmVtb3ZlIGEgdXNlciBmcm9tIGFuIG9yZ2FuaXphdGlvboLT5JMCLSorL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3VzZXJzL3t1c2VyX2lkfRKWAgoSR2V0T3JnYW5pemF0aW9uS3ljEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25LeWNSZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRPcmdhbml6YXRpb25LeWNSZXNwb25zZSKSAZJBZAoPT3JnYW5pemF0aW9uS3ljEh9HZXQgS1lDIGluZm8gb2YgYW4gb3JnYW5pemF0aW9uGjBHZXQgS1lDIGluZm8gb2YgYW4gb3JnYW5pemF0aW9uIHVzaW5nIElEIG9yIG5hbWWC0+STAiUSIy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0va3ljEoMCChxMaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzEj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uU2VydmljZVVzZXJzUmVxdWVzdBo/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvblNlcnZpY2VVc2Vyc1Jlc3BvbnNlImKSQS8KDE9yZ2FuaXphdGlvbhIfTGlzdCBvcmdhbml6YXRpb24gc2VydmljZSB1c2Vyc4LT5JMCKhIoL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3NlcnZpY2V1c2VycxK5AgobTGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uSW52aXRhdGlvbnNSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uSW52aXRhdGlvbnNSZXNwb25zZSKaAZJBZAoMT3JnYW5pemF0aW9uEhhMaXN0IHBlbmRpbmcgaW52aXRhdGlvbnMaOlJldHVybnMgYWxsIHBlbmRpbmcgaW52aXRhdGlvbnMgcXVldWVkIGZvciBhbiBvcmdhbml6YXRpb26C0+STAi0SKy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vaW52aXRhdGlvbnMS9gIKHENyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb24SPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2Ui1AGSQZoBCgxPcmdhbml6YXRpb24SC0ludml0ZSB1c2VyGn1JbnZpdGUgdXNlcnMgdG8gYW4gb3JnYW5pemF0aW9uLCBpZiB1c2VyIGlzIG5vdCByZWdpc3RlcmVkIG9uIHRoZSBwbGF0Zm9ybSwgaXQgd2lsbCBiZSBub3RpZmllZC4gSW52aXRhdGlvbnMgZXhwaXJlIGluIDcgZGF5c4LT5JMCMCIrL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9pbnZpdGF0aW9uczoBKhKzAgoZR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvbhI7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uSW52aXRhdGlvblJlcXVlc3QaPC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldE9yZ2FuaXphdGlvbkludml0YXRpb25SZXNwb25zZSKaAZJBXwoMT3JnYW5pemF0aW9uEhZHZXQgcGVuZGluZyBpbnZpdGF0aW9uGjdSZXR1cm5zIGEgcGVuZGluZyBpbnZpdGF0aW9uIHF1ZXVlZCBmb3IgYW4gb3JnYW5pemF0aW9ugtPkkwIyEjAvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zL3tpZH0SmQMKHEFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb24SPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb25SZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVzcG9uc2Ui9wGSQbEBCgxPcmdhbml6YXRpb24SGUFjY2VwdCBwZW5kaW5nIGludml0YXRpb24ahQFBY2NlcHQgcGVuZGluZyBpbnZpdGF0aW9uIHF1ZXVlZCBmb3IgYW4gb3JnYW5pemF0aW9uLiBUaGUgdXNlciB3aWxsIGJlIGFkZGVkIHRvIHRoZSBvcmdhbml6YXRpb24gYW5kIGdyb3VwcyBkZWZpbmVkIGluIHRoZSBpbnZpdGF0aW9ugtPkkwI8IjcvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2ludml0YXRpb25zL3tpZH0vYWNjZXB0OgEqEr4CChxEZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uEj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25JbnZpdGF0aW9uUmVxdWVzdBo/LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlT3JnYW5pemF0aW9uSW52aXRhdGlvblJlc3BvbnNlIpwBkkFhCgxPcmdhbml6YXRpb24SGURlbGV0ZSBwZW5kaW5nIGludml0YXRpb24aNkRlbGV0ZSBhIHBlbmRpbmcgaW52aXRhdGlvbiBxdWV1ZWQgZm9yIGFuIG9yZ2FuaXphdGlvboLT5JMCMiowL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9pbnZpdGF0aW9ucy97aWR9EtgDChdMaXN0T3JnYW5pemF0aW9uRG9tYWlucxI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE9yZ2FuaXphdGlvbkRvbWFpbnNSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uRG9tYWluc1Jlc3BvbnNlIsUCkkGSAgoMT3JnYW5pemF0aW9uEhBMaXN0IG9yZyBkb21haW5zGu8BUmV0dXJucyBhbGwgZG9tYWlucyB3aGl0ZWxpc3RlZCBmb3IgYW4gb3JnYW5pemF0aW9uIChib3RoIHBlbmRpbmcgYW5kIHZlcmlmaWVkIGlmIG5vIGZpbHRlcnMgYXJlIHByb3ZpZGVkIGZvciB0aGUgc3RhdGUpLiBUaGUgdmVyaWZpZWQgZG9tYWlucyBhbGxvdyB1c2VycyBlbWFpbCB3aXRoIHRoZSBvcmcncyB3aGl0ZWxpc3RlZCBkb21haW4gdG8gam9pbiB0aGUgb3JnYW5pemF0aW9uIHdpdGhvdXQgaW52aXRhdGlvbi6C0+STAikSJy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vZG9tYWlucxL+BAoYQ3JlYXRlT3JnYW5pemF0aW9uRG9tYWluEjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Eb21haW5SZXF1ZXN0GjsucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25Eb21haW5SZXNwb25zZSLoA5JBsgMKDE9yZ2FuaXphdGlvbhIRQ3JlYXRlIG9yZyBkb21haW4ajgNBZGQgYSBkb21haW4gdG8gYW4gb3JnYW5pemF0aW9uIHdoaWNoIGlmIHZlcmlmaWVkIGFsbG93cyBhbGwgdXNlcnMgb2YgdGhlIHNhbWUgZG9tYWluIHRvIGJlIHNpZ25lZCB1cCB0byB0aGUgb3JnYW5pemF0aW9uIHdpdGhvdXQgaW52aXRhdGlvbi4gVGhpcyBBUEkgZ2VuZXJhdGVzIGEgdmVyaWZpY2F0aW9uIHRva2VuIGZvciBhIGRvbWFpbiB3aGljaCBtdXN0IGJlIGFkZGVkIHRvIHlvdXIgZG9tYWluJ3MgRE5TIHByb3ZpZGVyIGFzIGEgVFhUIHJlY29yZCBzaG91bGQgYmUgdmVyaWZpZWQgd2l0aCBGcm9udGllciBWZXJpZnlPcmdhbml6YXRpb25Eb21haW4gQVBJIGJlZm9yZSBpdCBjYW4gYmUgdXNlZCBhcyBhbiBPcmdhbml6YXRpb24ncyB0cnVzdGVkIGRvbWFpbiB0byBzaWduIHVwIHVzZXJzLoLT5JMCLCInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zOgEqErcCChhEZWxldGVPcmdhbml6YXRpb25Eb21haW4SOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU9yZ2FuaXphdGlvbkRvbWFpblJlc3BvbnNlIqEBkkFqCgxPcmdhbml6YXRpb24SEURlbGV0ZSBvcmcgZG9tYWluGkdSZW1vdmUgYSBkb21haW4gZnJvbSB0aGUgbGlzdCBvZiBhbiBvcmdhbml6YXRpb24ncyB0cnVzdGVkIGRvbWFpbnMgbGlzdILT5JMCLiosL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zL3tpZH0S4gIKFUdldE9yZ2FuaXphdGlvbkRvbWFpbhI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0T3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2Ui1QGSQZ0BCgxPcmdhbml6YXRpb24SDkdldCBvcmcgZG9tYWluGn1HZXQgYSBkb21haW4gZnJvbSB0aGUgbGlzdCBvZiBhbiBvcmdhbml6YXRpb24ncyB3aGl0ZWxpc3RlZCBkb21haW5zLiBSZXR1cm5zIGJvdGggdmVyaWZpZWQgYW5kIHVudmVyaWZpZWQgZG9tYWlucyBieSB0aGVpciBJRILT5JMCLhIsL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9kb21haW5zL3tpZH0SpQQKGFZlcmlmeU9yZ2FuaXphdGlvbkRvbWFpbhI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVmVyaWZ5T3JnYW5pemF0aW9uRG9tYWluUmVzcG9uc2UijwOSQc0CCgxPcmdhbml6YXRpb24SEVZlcmlmeSBvcmcgZG9tYWluGqkCVmVyaWZ5IGEgZG9tYWluIGZvciBhbiBvcmdhbml6YXRpb24gd2l0aCBhIHZlcmlmaWNhdGlvbiB0b2tlbiBnZW5lcmF0ZWQgYnkgRnJvbnRpZXIgR2VuZXJhdGVEb21haW5WZXJpZmljYXRpb25Ub2tlbiBBUEkuIFRoZSB0b2tlbiBtdXN0IGJlIGFkZGVkIHRvIHlvdXIgZG9tYWluJ3MgRE5TIHByb3ZpZGVyIGFzIGEgVFhUIHJlY29yZCBiZWZvcmUgaXQgY2FuIGJlIHZlcmlmaWVkLiBUaGlzIEFQSSByZXR1cm5zIHRoZSBzdGF0ZSBvZiB0aGUgZG9tYWluIChwZW5kaW5nL3ZlcmlmaWVkKSBhZnRlciB2ZXJpZmljYXRpb24ugtPkkwI4IjMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2RvbWFpbnMve2lkfS92ZXJpZnk6ASoSkgMKEEpvaW5Pcmdhbml6YXRpb24SMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkpvaW5Pcmdhbml6YXRpb25SZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5Kb2luT3JnYW5pemF0aW9uUmVzcG9uc2UilAKSQeEBCgxPcmdhbml6YXRpb24SEUpvaW4gb3JnYW5pemF0aW9uGr0BQWxsb3dzIHRoZSBjdXJyZW50IGxvZ2dlZCBpbiB1c2VyIHRvIGpvaW4gdGhlIE9yZyBpZiBvbmUgaXMgbm90IGEgcGFydCBvZiBpdC4gVGhlIHVzZXIgd2lsbCBvbmx5IGJlIGFibGUgdG8gam9pbiB3aGVuIHRoZSB1c2VyIGVtYWlsJ3MgZG9tYWluIG1hdGNoZXMgdGhlIG9yZ2FuaXphdGlvbidzIHdoaXRlbGlzdGVkIGRvbWFpbnMugtPkkwIpIiQvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2pvaW46ASoS2QIKEkVuYWJsZU9yZ2FuaXphdGlvbhI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlT3JnYW5pemF0aW9uUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlT3JnYW5pemF0aW9uUmVzcG9uc2Ui1QGSQaQBCgxPcmdhbml6YXRpb24SE0VuYWJsZSBvcmdhbml6YXRpb24af1NldHMgdGhlIHN0YXRlIG9mIHRoZSBvcmdhbml6YXRpb24gYXMgZW5hYmxlZC4gVGhlIGV4aXN0aW5nIHVzZXJzIGluIHRoZSBvcmcgd2lsbCBiZSBhYmxlIHRvIGFjY2VzcyBhbnkgb3JnYW5pemF0aW9uIHJlc291cmNlcy6C0+STAiciIi92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9lbmFibGU6ASoS5AIKE0Rpc2FibGVPcmdhbml6YXRpb24SNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVPcmdhbml6YXRpb25SZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlT3JnYW5pemF0aW9uUmVzcG9uc2Ui3QGSQasBCgxPcmdhbml6YXRpb24SFERpc2FibGUgb3JnYW5pemF0aW9uGoQBU2V0cyB0aGUgc3RhdGUgb2YgdGhlIG9yZ2FuaXphdGlvbiBhcyBkaXNhYmxlZC4gVGhlIGV4aXN0aW5nIHVzZXJzIGluIHRoZSBvcmcgd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgYW55IG9yZ2FuaXphdGlvbiByZXNvdXJjZXMugtPkkwIoIiMvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tpZH0vZGlzYWJsZToBKhLGAgoSRGVsZXRlT3JnYW5pemF0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVPcmdhbml6YXRpb25SZXNwb25zZSLCAZJBmwEKDE9yZ2FuaXphdGlvbhITRGVsZXRlIG9yZ2FuaXphdGlvbhp2RGVsZXRlIGFuIG9yZ2FuaXphdGlvbiBhbmQgYWxsIG9mIGl0cyByZWxhdGlvbnMgcGVybWFuZW50bHkuIFRoZSBvcmdhbml6YXRpb24gdXNlcnMgd2lsbCBub3QgYmUgZGVsZXRlZCBmcm9tIEZyb250aWVyLoLT5JMCHSobL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9Eq8BCg1DcmVhdGVQcm9qZWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9qZWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvamVjdFJlc3BvbnNlIjuSQRkKB1Byb2plY3QSDkNyZWF0ZSBwcm9qZWN0gtPkkwIZIhEvdjFiZXRhMS9wcm9qZWN0czoEYm9keRK7AQoKR2V0UHJvamVjdBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb2plY3RSZXNwb25zZSJQkkEvCgdQcm9qZWN0EgtHZXQgcHJvamVjdBoXUmV0dXJucyBhIHByb2plY3QgYnkgSUSC0+STAhgSFi92MWJldGExL3Byb2plY3RzL3tpZH0SzQEKDVVwZGF0ZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9qZWN0UmVzcG9uc2UiWZJBMgoHUHJvamVjdBIOVXBkYXRlIHByb2plY3QaF1VwZGF0ZXMgYSBwcm9qZWN0IGJ5IElEgtPkkwIeGhYvdjFiZXRhMS9wcm9qZWN0cy97aWR9OgRib2R5EvMBChFMaXN0UHJvamVjdEFkbWlucxIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RBZG1pbnNSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdEFkbWluc1Jlc3BvbnNlInOSQUsKB1Byb2plY3QSE0xpc3QgcHJvamVjdCBhZG1pbnMaK1JldHVybnMgYSBjb2xsZWN0aW9uIG9mIGFkbWlucyBvZiBhIHByb2plY3SC0+STAh8SHS92MWJldGExL3Byb2plY3RzL3tpZH0vYWRtaW5zEpgCChBMaXN0UHJvamVjdFVzZXJzEjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFVzZXJzUmVxdWVzdBozLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RVc2Vyc1Jlc3BvbnNlIpoBkkFzCgdQcm9qZWN0EhJMaXN0IHByb2plY3QgdXNlcnMaVFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIHVzZXJzIG9mIGEgcHJvamVjdC4gRmlsdGVyIGJ5IHVzZXIgcGVybWlzc2lvbnMgaXMgc3VwcG9ydGVkLoLT5JMCHhIcL3YxYmV0YTEvcHJvamVjdHMve2lkfS91c2VycxKRAgoXTGlzdFByb2plY3RTZXJ2aWNlVXNlcnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0U2VydmljZVVzZXJzUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RTZXJ2aWNlVXNlcnNSZXNwb25zZSJ/kkFRCgdQcm9qZWN0EhlMaXN0IHByb2plY3Qgc2VydmljZXVzZXJzGitSZXR1cm5zIGEgY29sbGVjdGlvbiBvZiB1c2VycyBvZiBhIHByb2plY3QugtPkkwIlEiMvdjFiZXRhMS9wcm9qZWN0cy97aWR9L3NlcnZpY2V1c2VycxL0AQoRTGlzdFByb2plY3RHcm91cHMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0R3JvdXBzUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RHcm91cHNSZXNwb25zZSJ0kkFMCgdQcm9qZWN0EhNMaXN0IHByb2plY3QgZ3JvdXBzGixSZXR1cm5zIGEgY29sbGVjdGlvbiBvZiBncm91cHMgb2YgYSBwcm9qZWN0LoLT5JMCHxIdL3YxYmV0YTEvcHJvamVjdHMve2lkfS9ncm91cHMSuAEKDUVuYWJsZVByb2plY3QSLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZVByb2plY3RSZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5FbmFibGVQcm9qZWN0UmVzcG9uc2UiRJJBGQoHUHJvamVjdBIORW5hYmxlIHByb2plY3SC0+STAiIiHS92MWJldGExL3Byb2plY3RzL3tpZH0vZW5hYmxlOgEqEr0BCg5EaXNhYmxlUHJvamVjdBIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGlzYWJsZVByb2plY3RSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EaXNhYmxlUHJvamVjdFJlc3BvbnNlIkaSQRoKB1Byb2plY3QSD0Rpc2FibGUgcHJvamVjdILT5JMCIyIeL3YxYmV0YTEvcHJvamVjdHMve2lkfS9kaXNhYmxlOgEqEuIBCg1EZWxldGVQcm9qZWN0Ei8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQcm9qZWN0UmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvamVjdFJlc3BvbnNlIm6SQU0KB1Byb2plY3QSDkRlbGV0ZSBQcm9qZWN0GjJEZWxldGUgYSBwcm9qZWN0IGFsbCBvZiBpdHMgcmVsYXRpb25zIHBlcm1hbmVudGx5LoLT5JMCGCoWL3YxYmV0YTEvcHJvamVjdHMve2lkfRK9AQoMQ3JlYXRlUG9saWN5Ei4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lSZXNwb25zZSJMkkEqCgZQb2xpY3kSDUNyZWF0ZSBwb2xpY3kaEUNyZWF0ZXMgYSBwb2xpY3kggtPkkwIZIhEvdjFiZXRhMS9wb2xpY2llczoEYm9keRK1AQoJR2V0UG9saWN5EisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQb2xpY3lSZXF1ZXN0GiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQb2xpY3lSZXNwb25zZSJNkkEsCgZQb2xpY3kSCkdldCBwb2xpY3kaFlJldHVybnMgYSBwb2xpY3kgYnkgSUSC0+STAhgSFi92MWJldGExL3BvbGljaWVzL3tpZH0SuQIKDExpc3RQb2xpY2llcxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBvbGljaWVzUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBvbGljaWVzUmVzcG9uc2UixwGSQaoBCgZQb2xpY3kSEUxpc3QgYWxsIHBvbGljaWVzGowBTGlzdHMgYWxsIHRoZSBwb2xpY2llcyBmcm9tIGFsbCB0aGUgb3JnYW5pemF0aW9ucyBpbiBhIEZyb250aWVyIGluc3RhbmNlLiBJdCBjYW4gYmUgZmlsdGVyZWQgYnkgb3JnYW5pemF0aW9uLCBwcm9qZWN0LCB1c2VyLCByb2xlIGFuZCBncm91cC6C0+STAhMSES92MWJldGExL3BvbGljaWVzEscBCgxVcGRhdGVQb2xpY3kSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBvbGljeVJlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBvbGljeVJlc3BvbnNlIlaSQS8KBlBvbGljeRINVXBkYXRlIHBvbGljeRoWVXBkYXRlcyBhIHBvbGljeSBieSBJRILT5JMCHhoWL3YxYmV0YTEvcG9saWNpZXMve2lkfToEYm9keRLcAQoMRGVsZXRlUG9saWN5Ei4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQb2xpY3lSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVQb2xpY3lSZXNwb25zZSJrkkFKCgZQb2xpY3kSDURlbGV0ZSBQb2xpY3kaMURlbGV0ZSBhIHBvbGljeSBhbGwgb2YgaXRzIHJlbGF0aW9ucyBwZXJtYW5lbnRseS6C0+STAhgqFi92MWJldGExL3BvbGljaWVzL3tpZH0SiQIKFkNyZWF0ZVBvbGljeUZvclByb2plY3QSOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBvbGljeUZvclByb2plY3RSZXF1ZXN0GjkucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQb2xpY3lGb3JQcm9qZWN0UmVzcG9uc2UiepJBQgoGUG9saWN5EhlDcmVhdGUgUG9saWN5IGZvciBQcm9qZWN0Gh1DcmVhdGUgYSBwb2xpY3kgZm9yIGEgcHJvamVjdILT5JMCLyInL3YxYmV0YTEvcG9saWNpZXMvcHJvamVjdHMve3Byb2plY3RfaWR9OgRib2R5ErUBCg5DcmVhdGVSZWxhdGlvbhIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUmVsYXRpb25SZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVSZWxhdGlvblJlc3BvbnNlIj6SQRsKCFJlbGF0aW9uEg9DcmVhdGUgcmVsYXRpb26C0+STAhoiEi92MWJldGExL3JlbGF0aW9uczoEYm9keRLCAQoLR2V0UmVsYXRpb24SLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFJlbGF0aW9uUmVxdWVzdBouLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UmVsYXRpb25SZXNwb25zZSJUkkEyCghSZWxhdGlvbhIMR2V0IHJlbGF0aW9uGhhSZXR1cm5zIGEgcmVsYXRpb24gYnkgSUSC0+STAhkSFy92MWJldGExL3JlbGF0aW9ucy97aWR9EpACCg5EZWxldGVSZWxhdGlvbhIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUmVsYXRpb25SZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVSZWxhdGlvblJlc3BvbnNlIpgBkkFOCghSZWxhdGlvbhIPRGVsZXRlIHJlbGF0aW9uGjFSZW1vdmUgYSBzdWJqZWN0IGhhdmluZyBhIHJlbGF0aW9uIGZyb20gYW4gb2JqZWN0gtPkkwJBKj8vdjFiZXRhMS9yZWxhdGlvbnMve3JlbGF0aW9ufS9vYmplY3Qve29iamVjdH0vc3ViamVjdC97c3ViamVjdH0SugEKD0xpc3RQZXJtaXNzaW9ucxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBlcm1pc3Npb25zUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFBlcm1pc3Npb25zUmVzcG9uc2UiQJJBIQoKUGVybWlzc2lvbhITR2V0IGFsbCBwZXJtaXNzaW9uc4LT5JMCFhIUL3YxYmV0YTEvcGVybWlzc2lvbnMS0AEKDUdldFBlcm1pc3Npb24SLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBlcm1pc3Npb25SZXF1ZXN0GjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQZXJtaXNzaW9uUmVzcG9uc2UiXJJBOAoKUGVybWlzc2lvbhIOR2V0IHBlcm1pc3Npb24aGlJldHVybnMgYSBwZXJtaXNzaW9uIGJ5IElEgtPkkwIbEhkvdjFiZXRhMS9wZXJtaXNzaW9ucy97aWR9Eu8BCg5MaXN0TmFtZXNwYWNlcxIwLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE5hbWVzcGFjZXNSZXF1ZXN0GjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0TmFtZXNwYWNlc1Jlc3BvbnNlIniSQVoKCU5hbWVzcGFjZRISR2V0IGFsbCBuYW1lc3BhY2VzGjlSZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCBuYW1lc3BhY2VzIGluIGEgRnJvbnRpZXIgaW5zdGFuY2WC0+STAhUSEy92MWJldGExL25hbWVzcGFjZXMSyQEKDEdldE5hbWVzcGFjZRIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0TmFtZXNwYWNlUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0TmFtZXNwYWNlUmVzcG9uc2UiWJJBNQoJTmFtZXNwYWNlEg1HZXQgbmFtZXNwYWNlGhlSZXR1cm5zIGEgbmFtZXNwYWNlIGJ5IElEgtPkkwIaEhgvdjFiZXRhMS9uYW1lc3BhY2VzL3tpZH0S2QEKFExpc3RQcm9qZWN0UmVzb3VyY2VzEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvamVjdFJlc291cmNlc1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0UmVzb3VyY2VzUmVzcG9uc2UiUJJBHQoIUmVzb3VyY2USEUdldCBhbGwgcmVzb3VyY2VzgtPkkwIqEigvdjFiZXRhMS9wcm9qZWN0cy97cHJvamVjdF9pZH0vcmVzb3VyY2VzEoECChVDcmVhdGVQcm9qZWN0UmVzb3VyY2USNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RSZXNvdXJjZVJlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RSZXNvdXJjZVJlc3BvbnNlInWSQTwKCFJlc291cmNlEg9DcmVhdGUgcmVzb3VyY2UaH0NyZWF0ZXMgYSByZXNvdXJjZSBpbiBhIHByb2plY3SC0+STAjAiKC92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXM6BGJvZHkS9QEKEkdldFByb2plY3RSZXNvdXJjZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlc291cmNlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvamVjdFJlc291cmNlUmVzcG9uc2UicpJBOgoIUmVzb3VyY2USDEdldCByZXNvdXJjZRogUmV0dXJucyBhIHByb2plY3QgcmVzb3VyY2UgYnkgSUSC0+STAi8SLS92MWJldGExL3Byb2plY3RzL3twcm9qZWN0X2lkfS9yZXNvdXJjZXMve2lkfRKGAgoVVXBkYXRlUHJvamVjdFJlc291cmNlEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9qZWN0UmVzb3VyY2VSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQcm9qZWN0UmVzb3VyY2VSZXNwb25zZSJ6kkE8CghSZXNvdXJjZRIPVXBkYXRlIHJlc291cmNlGh9VcGRhdGVzIGEgcmVzb3VyY2UgaW4gYSBwcm9qZWN0gtPkkwI1Gi0vdjFiZXRhMS9wcm9qZWN0cy97cHJvamVjdF9pZH0vcmVzb3VyY2VzL3tpZH06BGJvZHkSjwIKFURlbGV0ZVByb2plY3RSZXNvdXJjZRI3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvamVjdFJlc291cmNlUmVxdWVzdBo4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlUHJvamVjdFJlc291cmNlUmVzcG9uc2UiggGSQUoKCFJlc291cmNlEg9EZWxldGUgcmVzb3VyY2UaLURlbGV0ZXMgYSByZXNvdXJjZSBmcm9tIGEgcHJvamVjdCBwZXJtYW5lbnRseYLT5JMCLyotL3YxYmV0YTEvcHJvamVjdHMve3Byb2plY3RfaWR9L3Jlc291cmNlcy97aWR9EvsDChdDaGVja1Jlc291cmNlUGVybWlzc2lvbhI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tSZXNvdXJjZVBlcm1pc3Npb25SZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja1Jlc291cmNlUGVybWlzc2lvblJlc3BvbnNlIugCkkHLAgoFQXV0aHoSBUNoZWNrGroCUmV0dXJucyB0cnVlIGlmIGEgcHJpbmNpcGFsIGhhcyByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgYSByZXNvdXJjZSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLjxici8+IE5vdGUgdGhlIHByaW5jaXBhbCBjYW4gYmUgYSB1c2VyIG9yIGEgc2VydmljZSBhY2NvdW50LiBGcm9udGllciB3aWxsIGV4dHJhY3QgcHJpbmNpcGFsIGZyb20gdGhlIGN1cnJlbnQgbG9nZ2VkIGluIHNlc3Npb24gY29va2llIChpZiBhbnkpLCBvciB0aGUgY2xpZW50IGlkIGFuZCBzZWNyZXQgKGluIGNhc2Ugb2Ygc2VydmljZSB1c2Vycykgb3IgdGhlIGFjY2VzcyB0b2tlbi6C0+STAhMiDi92MWJldGExL2NoZWNrOgEqErMEChRCYXRjaENoZWNrUGVybWlzc2lvbhI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmF0Y2hDaGVja1Blcm1pc3Npb25SZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CYXRjaENoZWNrUGVybWlzc2lvblJlc3BvbnNlIqkDkkGHAwoFQXV0aHoSC0JhdGNoIGNoZWNrGvACUmV0dXJucyB0cnVlIGlmIGEgcHJpbmNpcGFsIGhhcyByZXF1aXJlZCBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgYSByZXNvdXJjZSBhbmQgZmFsc2Ugb3RoZXJ3aXNlLjxici8+IE5vdGUgdGhlIHByaW5jaXBhbCBjYW4gYmUgYSB1c2VyIG9yIGEgc2VydmljZSBhY2NvdW50LCBhbmQgRnJvbnRpZXIgd2lsbCB0aGUgY3JlZGVudGlhbHMgZnJvbSB0aGUgY3VycmVudCBsb2dnZWQgaW4gcHJpbmNpcGFsIGZyb20gdGhlIHNlc3Npb24gY29va2llIChpZiBhbnkpLCBvciB0aGUgY2xpZW50IGlkIGFuZCBzZWNyZXQgKGluIGNhc2Ugb2Ygc2VydmljZSB1c2Vycykgb3IgdGhlIGFjY2VzcyB0b2tlbiAoaW4gY2FzZSBvZiBodW1hbiB1c2VyIGFjY291bnRzKS6C0+STAhgiEy92MWJldGExL2JhdGNoY2hlY2s6ASoStQEKB0dldEpXS3MSKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEpXS3NSZXF1ZXN0GioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRKV0tzUmVzcG9uc2UiU5JBHAoFQXV0aHoSE0dldCB3ZWxsIGtub3duIEpXS3OC0+STAi4SEi92MWJldGExL2F1dGgvandrc1oYEhYvLndlbGwta25vd24vandrcy5qc29uEnEKDExpc3RTZXNzaW9ucxIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlc3Npb25zUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFNlc3Npb25zUmVzcG9uc2UiABJ0Cg1SZXZva2VTZXNzaW9uEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZXZva2VTZXNzaW9uUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmV2b2tlU2Vzc2lvblJlc3BvbnNlIgASegoPUGluZ1VzZXJTZXNzaW9uEjEucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QaW5nVXNlclNlc3Npb25SZXF1ZXN0GjIucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5QaW5nVXNlclNlc3Npb25SZXNwb25zZSIAErcCChJMaXN0QXV0aFN0cmF0ZWdpZXMSNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBdXRoU3RyYXRlZ2llc1JlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RBdXRoU3RyYXRlZ2llc1Jlc3BvbnNlIrMBkkGaAQoFQXV0aG4SHkxpc3QgYXV0aGVudGljYXRpb24gc3RyYXRlZ2llcxpxUmV0dXJucyBhIGxpc3Qgb2YgaWRlbnRpdHkgcHJvdmlkZXJzIGNvbmZpZ3VyZWQgb24gYW4gaW5zdGFuY2UgbGV2ZWwgaW4gRnJvbnRpZXIuIGUuZyBHb29nbGUsIEF6dXJlQUQsIEdpdGh1YiBldGOC0+STAg8SDS92MWJldGExL2F1dGgS6QQKDEF1dGhlbnRpY2F0ZRIuLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aGVudGljYXRlUmVxdWVzdBovLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aGVudGljYXRlUmVzcG9uc2Ui9wOSQZgDCgVBdXRobhIcQXV0aGVudGljYXRlIHdpdGggYSBzdHJhdGVneRrwAkF1dGhlbnRpY2F0ZSBhIHVzZXIgd2l0aCBhIHN0cmF0ZWd5LiBCeSBkZWZhdWx0LCBhZnRlciBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uIG5vIG9wZXJhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCB0byBhcHBseSByZWRpcmVjdGlvbiBpbiBjYXNlIG9mIGJyb3dzZXJzLCBwcm92aWRlIGEgdXJsIGluIHRoZSBhdXRoZW50aWNhdGUgcmVxdWVzdCBib2R5IHRoYXQgd2lsbCBiZSB1c2VkIGZvciByZWRpcmVjdGlvbiBhZnRlciBhdXRoZW50aWNhdGlvbi4gQWxzbyBzZXQgcmVkaXJlY3QgYXMgdHJ1ZSBmb3IgcmVkaXJlY3RpbmcgdGhlIHVzZXIgcmVxdWVzdCB0byB0aGUgcmVkaXJlY3RfdXJsIGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24ugtPkkwJVEiYvdjFiZXRhMS9hdXRoL3JlZ2lzdGVyL3tzdHJhdGVneV9uYW1lfVorIiYvdjFiZXRhMS9hdXRoL3JlZ2lzdGVyL3tzdHJhdGVneV9uYW1lfToBKhK9BAoMQXV0aENhbGxiYWNrEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoQ2FsbGJhY2tSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoQ2FsbGJhY2tSZXNwb25zZSLLA5JBjAMKBUF1dGhuEhhDYWxsYmFjayBmcm9tIGEgc3RyYXRlZ3ka6AJDYWxsYmFjayBmcm9tIGEgc3RyYXRlZ3kuIFRoaXMgaXMgdGhlIGVuZHBvaW50IHdoZXJlIHRoZSBzdHJhdGVneSB3aWxsIHJlZGlyZWN0IHRoZSB1c2VyIGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24uIFRoaXMgZW5kcG9pbnQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgY29kZSBhbmQgc3RhdGUgcXVlcnkgcGFyYW1ldGVycy4gVGhlIGNvZGUgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgYWNjZXNzIHRva2VuIGZyb20gdGhlIHN0cmF0ZWd5IGFuZCB0aGUgc3RhdGUgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgcmV0dXJuX3RvIHVybCBmcm9tIHRoZSBzZXNzaW9uIGFuZCByZWRpcmVjdCB0aGUgdXNlciB0byB0aGF0IHVybC6C0+STAjUSFi92MWJldGExL2F1dGgvY2FsbGJhY2taGyIWL3YxYmV0YTEvYXV0aC9jYWxsYmFjazoBKhLCAwoJQXV0aFRva2VuEisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoVG9rZW5SZXF1ZXN0GiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5BdXRoVG9rZW5SZXNwb25zZSLZApJBtwIKBUF1dGhuEipHZW5lcmF0ZSBhY2Nlc3MgdG9rZW4gYnkgZ2l2ZW4gY3JlZGVudGlhbHMagQJBY2Nlc3MgdG9rZW4gY2FuIGJlIGdlbmVyYXRlZCBieSBwcm92aWRpbmcgdGhlIGNyZWRlbnRpYWxzIGluIHRoZSByZXF1ZXN0IGJvZHkvaGVhZGVyLiBUaGUgY3JlZGVudGlhbHMgY2FuIGJlIGNsaWVudCBpZCBhbmQgc2VjcmV0IG9yIHNlcnZpY2UgYWNjb3VudCBnZW5lcmF0ZWQga2V5IGp3dC4gVXNlIHRoZSBnZW5lcmF0ZWQgYWNjZXNzIHRva2VuIGluIEF1dGhvcml6YXRpb24gaGVhZGVyIHRvIGFjY2VzcyB0aGUgZnJvbnRpZXIgcmVzb3VyY2VzLoLT5JMCGCITL3YxYmV0YTEvYXV0aC90b2tlbjoBKhLBAQoKQXV0aExvZ291dBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQXV0aExvZ291dFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkF1dGhMb2dvdXRSZXNwb25zZSJWkkEfCgVBdXRobhIWTG9nb3V0IGZyb20gYSBzdHJhdGVneYLT5JMCLhIUL3YxYmV0YTEvYXV0aC9sb2dvdXRaFioUL3YxYmV0YTEvYXV0aC9sb2dvdXQSrgIKD0xpc3RNZXRhU2NoZW1hcxIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE1ldGFTY2hlbWFzUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdE1ldGFTY2hlbWFzUmVzcG9uc2UiswGSQZIBCgpNZXRhU2NoZW1hEhBMaXN0IG1ldGFzY2hlbWFzGnJSZXR1cm5zIGEgbGlzdCBvZiBhbGwgbWV0YXNjaGVtYXMgY29uZmlndXJlZCBvbiBhbiBpbnN0YW5jZSBsZXZlbCBpbiBGcm9udGllci4gZS5nIHVzZXIsIHByb2plY3QsIG9yZ2FuaXphdGlvbiBldGOC0+STAhcSFS92MWJldGExL21ldGEvc2NoZW1hcxKfBQoQQ3JlYXRlTWV0YVNjaGVtYRIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlTWV0YVNjaGVtYVJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU1ldGFTY2hlbWFSZXNwb25zZSKhBJJB+gMKCk1ldGFTY2hlbWESEUNyZWF0ZSBtZXRhc2NoZW1hGtgDQ3JlYXRlIGEgbmV3IG1ldGFkYXRhIHNjaGVtYS4gVGhlIG1ldGFzY2hlbWEgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBlbnRpcmUgRnJvbnRpZXIgaW5zdGFuY2UgYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMuIFRoZSBtZXRhc2NoZW1hICoqc2NoZW1hKiogbXVzdCBiZSBhIHZhbGlkIEpTT04gc2NoZW1hLlBsZWFzZSByZWZlciB0byBodHRwczovL2pzb24tc2NoZW1hLm9yZy8gdG8ga25vdyBtb3JlIGFib3V0IGpzb24gc2NoZW1hLiA8YnIvPipFeGFtcGxlOiogYHtuYW1lOiJ1c2VyIixzY2hlbWE6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJsYWJlbCI6eyJ0eXBlIjoib2JqZWN0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9fSwiZGVzY3JpcHRpb24iOnsidHlwZSI6InN0cmluZyJ9fX19YILT5JMCHSIVL3YxYmV0YTEvbWV0YS9zY2hlbWFzOgRib2R5EtMBCg1HZXRNZXRhU2NoZW1hEi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRNZXRhU2NoZW1hUmVxdWVzdBowLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0TWV0YVNjaGVtYVJlc3BvbnNlIl+SQToKCk1ldGFTY2hlbWESDkdldCBtZXRhc2NoZW1hGhxHZXQgYSBtZXRhZGF0YSBzY2hlbWEgYnkgSUQugtPkkwIcEhovdjFiZXRhMS9tZXRhL3NjaGVtYXMve2lkfRLBBAoQVXBkYXRlTWV0YVNjaGVtYRIyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlTWV0YVNjaGVtYVJlcXVlc3QaMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZU1ldGFTY2hlbWFSZXNwb25zZSLDA5JBlwMKCk1ldGFTY2hlbWESEVVwZGF0ZSBtZXRhc2NoZW1hGvUCVXBkYXRlIGEgbWV0YWRhdGEgc2NoZW1hLiBPbmx5IGBzY2hlbWFgIGZpZWxkIG9mIGEgbWV0YXNjaGVtYSBjYW4gYmUgdXBkYXRlZC4gVGhlIG1ldGFzY2hlbWEgYHNjaGVtYWAgbXVzdCBiZSBhIHZhbGlkIEpTT04gc2NoZW1hLlBsZWFzZSByZWZlciB0byBodHRwczovL2pzb24tc2NoZW1hLm9yZy8gdG8ga25vdyBtb3JlIGFib3V0IGpzb24gc2NoZW1hLiA8YnIvPipFeGFtcGxlOiogYHtuYW1lOiJ1c2VyIixzY2hlbWE6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJsYWJlbCI6eyJ0eXBlIjoib2JqZWN0IiwiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9fSwiZGVzY3JpcHRpb24iOnsidHlwZSI6InN0cmluZyJ9fX19YILT5JMCIhoaL3YxYmV0YTEvbWV0YS9zY2hlbWFzL3tpZH06BGJvZHkS4wQKEERlbGV0ZU1ldGFTY2hlbWESMi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZU1ldGFTY2hlbWFSZXF1ZXN0GjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5EZWxldGVNZXRhU2NoZW1hUmVzcG9uc2Ui5QOSQb8DCgpNZXRhU2NoZW1hEhFEZWxldGUgbWV0YXNjaGVtYRqdA0RlbGV0ZSBhIG1ldGFkYXRhIHNjaGVtYSBwZXJtYW5lbnRseS4gT25jZSBkZWxldGVkIHRoZSBtZXRhc2NoZW1hIHdvbid0IGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIG1ldGFkYXRhLiBGb3IgZXhhbXBsZSwgaWYgYSBtZXRhc2NoZW1hKHdpdGggYGxhYmVsYCBhbmQgYGRlc2NyaXB0aW9uYCBmaWVsZHMpIGlzIHVzZWQgdG8gdmFsaWRhdGUgdGhlIG1ldGFkYXRhIG9mIGEgdXNlciwgdGhlbiBkZWxldGluZyB0aGUgbWV0YXNjaGVtYSB3aWxsIG5vdCB2YWxpZGF0ZSB0aGUgbWV0YWRhdGEgb2YgdGhlIHVzZXIgYW5kIG1ldGFkYXRhIGZpZWxkIGNhbiBjb250YWluIGFueSBrZXktdmFsdWUgcGFpcihhbmQgc2F5IGFub3RoZXIgZmllbGQgY2FsbGVkIGBmb29gIGNhbiBiZSBpbnNlcnRlZCBpbiBhIHVzZXIncyBtZXRhZGF0YSkugtPkkwIcKhovdjFiZXRhMS9tZXRhL3NjaGVtYXMve2lkfRKJAgoTRGVzY3JpYmVQcmVmZXJlbmNlcxI1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVzY3JpYmVQcmVmZXJlbmNlc1JlcXVlc3QaNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlc2NyaWJlUHJlZmVyZW5jZXNSZXNwb25zZSKCAZJBXAoKUHJlZmVyZW5jZRIURGVzY3JpYmUgcHJlZmVyZW5jZXMaOFJldHVybnMgYSBsaXN0IG9mIGFsbCBwcmVmZXJlbmNlcyBzdXBwb3J0ZWQgYnkgRnJvbnRpZXIugtPkkwIdEhsvdjFiZXRhMS9wcmVmZXJlbmNlcy90cmFpdHMSxAMKHUNyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzEj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVPcmdhbml6YXRpb25QcmVmZXJlbmNlc1JlcXVlc3QaQC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZU9yZ2FuaXphdGlvblByZWZlcmVuY2VzUmVzcG9uc2UinwKSQekBCgpQcmVmZXJlbmNlEh9DcmVhdGUgb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzGrkBQ3JlYXRlIGEgbmV3IG9yZ2FuaXphdGlvbiBwcmVmZXJlbmNlcy4gVGhlIG9yZ2FuaXphdGlvbiBwcmVmZXJlbmNlcyAqKm5hbWUqKiBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbiBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiwiJy92MWJldGExL29yZ2FuaXphdGlvbnMve2lkfS9wcmVmZXJlbmNlczoBKhKlAgobTGlzdE9yZ2FuaXphdGlvblByZWZlcmVuY2VzEj0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXF1ZXN0Gj4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0T3JnYW5pemF0aW9uUHJlZmVyZW5jZXNSZXNwb25zZSKGAZJBVAoKUHJlZmVyZW5jZRIdTGlzdCBvcmdhbml6YXRpb24gcHJlZmVyZW5jZXMaJ0xpc3QgYW4gb3JnYW5pemF0aW9uIHByZWZlcmVuY2VzIGJ5IElELoLT5JMCKRInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97aWR9L3ByZWZlcmVuY2VzEpwDChhDcmVhdGVQcm9qZWN0UHJlZmVyZW5jZXMSOi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QaOy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2plY3RQcmVmZXJlbmNlc1Jlc3BvbnNlIoYCkkHVAQoKUHJlZmVyZW5jZRIaQ3JlYXRlIHByb2plY3QgcHJlZmVyZW5jZXMaqgFDcmVhdGUgYSBuZXcgcHJvamVjdCBwcmVmZXJlbmNlcy4gVGhlIHByb2plY3QgcHJlZmVyZW5jZXMgKipuYW1lKiogbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBwcm9qZWN0IGFuZCBjYW4gY29udGFpbiBvbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLCBkYXNoZXMgYW5kIHVuZGVyc2NvcmVzLoLT5JMCJyIiL3YxYmV0YTEvcHJvamVjdHMve2lkfS9wcmVmZXJlbmNlczoBKhKFAgoWTGlzdFByb2plY3RQcmVmZXJlbmNlcxI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFByb2plY3RQcmVmZXJlbmNlc1JlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RQcm9qZWN0UHJlZmVyZW5jZXNSZXNwb25zZSJ2kkFJCgpQcmVmZXJlbmNlEhhMaXN0IHByb2plY3QgcHJlZmVyZW5jZXMaIUxpc3QgYSBwcm9qZWN0IHByZWZlcmVuY2VzIGJ5IElELoLT5JMCJBIiL3YxYmV0YTEvcHJvamVjdHMve2lkfS9wcmVmZXJlbmNlcxKMAwoWQ3JlYXRlR3JvdXBQcmVmZXJlbmNlcxI4LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlR3JvdXBQcmVmZXJlbmNlc1JlcXVlc3QaOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZSL8AZJBzQEKClByZWZlcmVuY2USGENyZWF0ZSBncm91cCBwcmVmZXJlbmNlcxqkAUNyZWF0ZSBhIG5ldyBncm91cCBwcmVmZXJlbmNlcy4gVGhlIGdyb3VwIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZ3JvdXAgYW5kIGNhbiBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGRhc2hlcyBhbmQgdW5kZXJzY29yZXMugtPkkwIlIiAvdjFiZXRhMS9ncm91cHMve2lkfS9wcmVmZXJlbmNlczoBKhL5AQoUTGlzdEdyb3VwUHJlZmVyZW5jZXMSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RHcm91cFByZWZlcmVuY2VzUmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEdyb3VwUHJlZmVyZW5jZXNSZXNwb25zZSJwkkFFCgpQcmVmZXJlbmNlEhZMaXN0IGdyb3VwIHByZWZlcmVuY2VzGh9MaXN0IGEgZ3JvdXAgcHJlZmVyZW5jZXMgYnkgSUQugtPkkwIiEiAvdjFiZXRhMS9ncm91cHMve2lkfS9wcmVmZXJlbmNlcxKEAwoVQ3JlYXRlVXNlclByZWZlcmVuY2VzEjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0GjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVVc2VyUHJlZmVyZW5jZXNSZXNwb25zZSL3AZJByQEKClByZWZlcmVuY2USF0NyZWF0ZSB1c2VyIHByZWZlcmVuY2VzGqEBQ3JlYXRlIGEgbmV3IHVzZXIgcHJlZmVyZW5jZXMuIFRoZSB1c2VyIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgdXNlciBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiQiHy92MWJldGExL3VzZXJzL3tpZH0vcHJlZmVyZW5jZXM6ASoS8wEKE0xpc3RVc2VyUHJlZmVyZW5jZXMSNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0GjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0VXNlclByZWZlcmVuY2VzUmVzcG9uc2UibZJBQwoKUHJlZmVyZW5jZRIVTGlzdCB1c2VyIHByZWZlcmVuY2VzGh5MaXN0IGEgdXNlciBwcmVmZXJlbmNlcyBieSBJRC6C0+STAiESHy92MWJldGExL3VzZXJzL3tpZH0vcHJlZmVyZW5jZXMSoQMKHENyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXMSPi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUN1cnJlbnRVc2VyUHJlZmVyZW5jZXNSZXF1ZXN0Gj8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVDdXJyZW50VXNlclByZWZlcmVuY2VzUmVzcG9uc2Ui/wGSQdEBCgpQcmVmZXJlbmNlEh9DcmVhdGUgY3VycmVudCB1c2VyIHByZWZlcmVuY2VzGqEBQ3JlYXRlIGEgbmV3IHVzZXIgcHJlZmVyZW5jZXMuIFRoZSB1c2VyIHByZWZlcmVuY2VzICoqbmFtZSoqIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgdXNlciBhbmQgY2FuIGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgZGFzaGVzIGFuZCB1bmRlcnNjb3Jlcy6C0+STAiQiHy92MWJldGExL3VzZXJzL3NlbGYvcHJlZmVyZW5jZXM6ASoSkAIKGkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzEjwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0Q3VycmVudFVzZXJQcmVmZXJlbmNlc1JlcXVlc3QaPS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDdXJyZW50VXNlclByZWZlcmVuY2VzUmVzcG9uc2UidZJBSwoKUHJlZmVyZW5jZRIdTGlzdCBjdXJyZW50IHVzZXIgcHJlZmVyZW5jZXMaHkxpc3QgYSB1c2VyIHByZWZlcmVuY2VzIGJ5IElELoLT5JMCIRIfL3YxYmV0YTEvdXNlcnMvc2VsZi9wcmVmZXJlbmNlcxKTAgoUQ3JlYXRlQmlsbGluZ0FjY291bnQSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ0FjY291bnRSZXNwb25zZSKJAZJBVAoHQmlsbGluZxIWQ3JlYXRlIGJpbGxpbmcgYWNjb3VudBoxQ3JlYXRlIGEgbmV3IGJpbGxpbmcgYWNjb3VudCBmb3IgYW4gb3JnYW5pemF0aW9uLoLT5JMCLCInL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nOgEqEvMBChFHZXRCaWxsaW5nQWNjb3VudBIzLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0FjY291bnRSZXF1ZXN0GjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRCaWxsaW5nQWNjb3VudFJlc3BvbnNlInOSQTwKB0JpbGxpbmcSE0dldCBiaWxsaW5nIGFjY291bnQaHEdldCBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC6C0+STAi4SLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9EoUCChRVcGRhdGVCaWxsaW5nQWNjb3VudBI2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlQmlsbGluZ0FjY291bnRSZXF1ZXN0GjcucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlInySQUIKB0JpbGxpbmcSFlVwZGF0ZSBiaWxsaW5nIGFjY291bnQaH1VwZGF0ZSBhIGJpbGxpbmcgYWNjb3VudCBieSBJRC6C0+STAjEaLC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9OgEqEsECChZSZWdpc3RlckJpbGxpbmdBY2NvdW50EjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5SZWdpc3RlckJpbGxpbmdBY2NvdW50UmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuUmVnaXN0ZXJCaWxsaW5nQWNjb3VudFJlc3BvbnNlIrEBkkFuCgdCaWxsaW5nEiRSZWdpc3RlciBiaWxsaW5nIGFjY291bnQgdG8gcHJvdmlkZXIaPVJlZ2lzdGVyIGEgYmlsbGluZyBhY2NvdW50IHRvIGEgcHJvdmlkZXIgaWYgaXQncyBub3QgYWxyZWFkeS6C0+STAjoiNS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97aWR9L3JlZ2lzdGVyOgEqEoMCChNMaXN0QmlsbGluZ0FjY291bnRzEjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0QmlsbGluZ0FjY291bnRzUmVxdWVzdBo2LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEJpbGxpbmdBY2NvdW50c1Jlc3BvbnNlIn2SQUsKB0JpbGxpbmcSFUxpc3QgYmlsbGluZyBhY2NvdW50cxopTGlzdCBiaWxsaW5nIGFjY291bnRzIG9mIGFuIG9yZ2FuaXphdGlvbi6C0+STAikSJy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZxKCAgoURGVsZXRlQmlsbGluZ0FjY291bnQSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRlbGV0ZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRGVsZXRlQmlsbGluZ0FjY291bnRSZXNwb25zZSJ5kkFCCgdCaWxsaW5nEhZEZWxldGUgYmlsbGluZyBhY2NvdW50Gh9EZWxldGUgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQugtPkkwIuKiwvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2lkfRKNAgoURW5hYmxlQmlsbGluZ0FjY291bnQSNi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkVuYWJsZUJpbGxpbmdBY2NvdW50UmVxdWVzdBo3LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuRW5hYmxlQmlsbGluZ0FjY291bnRSZXNwb25zZSKDAZJBQgoHQmlsbGluZxIWRW5hYmxlIGJpbGxpbmcgYWNjb3VudBofRW5hYmxlIGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCOCIzL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZW5hYmxlOgEqEukCChVEaXNhYmxlQmlsbGluZ0FjY291bnQSNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVCaWxsaW5nQWNjb3VudFJlcXVlc3QaOC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkRpc2FibGVCaWxsaW5nQWNjb3VudFJlc3BvbnNlItwBkkGZAQoHQmlsbGluZxIXRGlzYWJsZSBiaWxsaW5nIGFjY291bnQadURpc2FibGUgYSBiaWxsaW5nIGFjY291bnQgYnkgSUQuIERpc2FibGluZyBhIGJpbGxpbmcgYWNjb3VudCBkb2Vzbid0IGF1dG9tYXRpY2FsbHkgZGlzYWJsZSBpdCdzIGFjdGl2ZSBzdWJzY3JpcHRpb25zLoLT5JMCOSI0L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vZGlzYWJsZToBKhKLAgoRR2V0QmlsbGluZ0JhbGFuY2USMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEJpbGxpbmdCYWxhbmNlUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0QmlsbGluZ0JhbGFuY2VSZXNwb25zZSKKAZJBSwoHQmlsbGluZxITR2V0IGJpbGxpbmcgYmFsYW5jZRorR2V0IHRoZSBiYWxhbmNlIG9mIGEgYmlsbGluZyBhY2NvdW50IGJ5IElELoLT5JMCNhI0L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vYmFsYW5jZRL6AQoKSGFzVHJpYWxlZBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuSGFzVHJpYWxlZFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkhhc1RyaWFsZWRSZXNwb25zZSKOAZJBPwoHQmlsbGluZxILSGFzIHRyaWFsZWQaJ0NoZWNrIGlmIGEgYmlsbGluZyBhY2NvdW50IGhhcyB0cmlhbGVkLoLT5JMCRhJEL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tpZH0vcGxhbnMve3BsYW5faWR9L3RyaWFsZWQSxwIKD0dldFN1YnNjcmlwdGlvbhIxLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U3Vic2NyaXB0aW9uUmVxdWVzdBoyLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0U3Vic2NyaXB0aW9uUmVzcG9uc2UizAGSQTsKDFN1YnNjcmlwdGlvbhIQR2V0IHN1YnNjcmlwdGlvbhoZR2V0IGEgc3Vic2NyaXB0aW9uIGJ5IElELoLT5JMChwESRy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9ucy97aWR9WjwSOi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy9zdWJzY3JpcHRpb25zL3tpZH0S6gIKEkNhbmNlbFN1YnNjcmlwdGlvbhI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2FuY2VsU3Vic2NyaXB0aW9uUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2FuY2VsU3Vic2NyaXB0aW9uUmVzcG9uc2Ui5gGSQUEKDFN1YnNjcmlwdGlvbhITQ2FuY2VsIHN1YnNjcmlwdGlvbhocQ2FuY2VsIGEgc3Vic2NyaXB0aW9uIGJ5IElELoLT5JMCmwEiTi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9ucy97aWR9L2NhbmNlbDoBKlpGIkEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucy97aWR9L2NhbmNlbDoBKhLTAgoRTGlzdFN1YnNjcmlwdGlvbnMSMy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdBo0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZSLSAZJBTAoMU3Vic2NyaXB0aW9uEhJMaXN0IHN1YnNjcmlwdGlvbnMaKExpc3Qgc3Vic2NyaXB0aW9ucyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAn0SQi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9uc1o3EjUvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucxL0AgoSQ2hhbmdlU3Vic2NyaXB0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGFuZ2VTdWJzY3JpcHRpb25SZXNwb25zZSLwAZJBSwoMU3Vic2NyaXB0aW9uEhhDaGFuZ2Ugc3Vic2NyaXB0aW9uIHBsYW4aIUNoYW5nZSBhIHN1YnNjcmlwdGlvbiBwbGFuIGJ5IElELoLT5JMCmwEiTi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vc3Vic2NyaXB0aW9ucy97aWR9L2NoYW5nZToBKlpGIkEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvc3Vic2NyaXB0aW9ucy97aWR9L2NoYW5nZToBKhLcAgoSVXBkYXRlU3Vic2NyaXB0aW9uEjQucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVTdWJzY3JpcHRpb25SZXF1ZXN0GjUucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVTdWJzY3JpcHRpb25SZXNwb25zZSLYAZJBQQoMU3Vic2NyaXB0aW9uEhNVcGRhdGUgc3Vic2NyaXB0aW9uGhxVcGRhdGUgYSBzdWJzY3JpcHRpb24gYnkgSUQugtPkkwKNARpHL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9zdWJzY3JpcHRpb25zL3tpZH06ASpaPyI6L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3N1YnNjcmlwdGlvbnMve2lkfToBKhLYAQoNQ3JlYXRlUHJvZHVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUHJvZHVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb2R1Y3RSZXNwb25zZSJkkkE9CgdQcm9kdWN0Eg5DcmVhdGUgcHJvZHVjdBoiQ3JlYXRlIGEgbmV3IHByb2R1Y3QgZm9yIHBsYXRmb3JtLoLT5JMCHiIZL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0czoBKhLAAQoKR2V0UHJvZHVjdBIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0UHJvZHVjdFJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFByb2R1Y3RSZXNwb25zZSJVkkEsCgdQcm9kdWN0EgtHZXQgcHJvZHVjdBoUR2V0IGEgcHJvZHVjdCBieSBJRC6C0+STAiASHi92MWJldGExL2JpbGxpbmcvcHJvZHVjdHMve2lkfRLPAQoMTGlzdFByb2R1Y3RzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvZHVjdHNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UHJvZHVjdHNSZXNwb25zZSJekkE6CgdQcm9kdWN0Eg1MaXN0IHByb2R1Y3RzGiBMaXN0IGFsbCBwcm9kdWN0cyBvZiBhIHBsYXRmb3JtLoLT5JMCGxIZL3YxYmV0YTEvYmlsbGluZy9wcm9kdWN0cxLSAQoNVXBkYXRlUHJvZHVjdBIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlUHJvZHVjdFJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVByb2R1Y3RSZXNwb25zZSJekkEyCgdQcm9kdWN0Eg5VcGRhdGUgcHJvZHVjdBoXVXBkYXRlIGEgcHJvZHVjdCBieSBJRC6C0+STAiMaHi92MWJldGExL2JpbGxpbmcvcHJvZHVjdHMve2lkfToBKhLYAQoNQ3JlYXRlRmVhdHVyZRIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlRmVhdHVyZVJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUZlYXR1cmVSZXNwb25zZSJkkkE9CgdGZWF0dXJlEg5DcmVhdGUgZmVhdHVyZRoiQ3JlYXRlIGEgbmV3IGZlYXR1cmUgZm9yIHBsYXRmb3JtLoLT5JMCHiIZL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlczoBKhLAAQoKR2V0RmVhdHVyZRIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0RmVhdHVyZVJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldEZlYXR1cmVSZXNwb25zZSJVkkEsCgdGZWF0dXJlEgtHZXQgZmVhdHVyZRoUR2V0IGEgZmVhdHVyZSBieSBJRC6C0+STAiASHi92MWJldGExL2JpbGxpbmcvZmVhdHVyZXMve2lkfRLSAQoNVXBkYXRlRmVhdHVyZRIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVXBkYXRlRmVhdHVyZVJlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZUZlYXR1cmVSZXNwb25zZSJekkEyCgdGZWF0dXJlEg5VcGRhdGUgZmVhdHVyZRoXVXBkYXRlIGEgZmVhdHVyZSBieSBJRC6C0+STAiMaHi92MWJldGExL2JpbGxpbmcvZmVhdHVyZXMve2lkfToBKhLAAQoMTGlzdEZlYXR1cmVzEi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0RmVhdHVyZXNSZXF1ZXN0Gi8ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0RmVhdHVyZXNSZXNwb25zZSJPkkErCgdGZWF0dXJlEg1MaXN0IGZlYXR1cmVzGhFMaXN0IGFsbCBmZWF0dXJlc4LT5JMCGxIZL3YxYmV0YTEvYmlsbGluZy9mZWF0dXJlcxLDAQoKQ3JlYXRlUGxhbhIsLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlUGxhblJlcXVlc3QaLS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVBsYW5SZXNwb25zZSJYkkE0CgRQbGFuEgtDcmVhdGUgcGxhbhofQ3JlYXRlIGEgbmV3IHBsYW4gZm9yIHBsYXRmb3JtLoLT5JMCGyIWL3YxYmV0YTEvYmlsbGluZy9wbGFuczoBKhKsAQoJTGlzdFBsYW5zEisucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhbnNSZXF1ZXN0GiwucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5MaXN0UGxhbnNSZXNwb25zZSJEkkEjCgRQbGFuEgpMaXN0IHBsYW5zGg9MaXN0IGFsbCBwbGFucy6C0+STAhgSFi92MWJldGExL2JpbGxpbmcvcGxhbnMSqwEKB0dldFBsYW4SKS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFBsYW5SZXF1ZXN0GioucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRQbGFuUmVzcG9uc2UiSZJBIwoEUGxhbhIIR2V0IHBsYW4aEUdldCBhIHBsYW4gYnkgSUQugtPkkwIdEhsvdjFiZXRhMS9iaWxsaW5nL3BsYW5zL3tpZH0SvQEKClVwZGF0ZVBsYW4SLC5yYXlzdGFjay5mcm9udGllci52MWJldGExLlVwZGF0ZVBsYW5SZXF1ZXN0Gi0ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5VcGRhdGVQbGFuUmVzcG9uc2UiUpJBKQoEUGxhbhILVXBkYXRlIHBsYW4aFFVwZGF0ZSBhIHBsYW4gYnkgSUQugtPkkwIgGhsvdjFiZXRhMS9iaWxsaW5nL3BsYW5zL3tpZH06ASoShQMKDkNyZWF0ZUNoZWNrb3V0EjAucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVDaGVja291dFJlcXVlc3QaMS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUNoZWNrb3V0UmVzcG9uc2UijQKSQYgBCghDaGVja291dBIiQ2hlY2tvdXQgYSBwcm9kdWN0IG9yIHN1YnNjcmlwdGlvbhpYQ2hlY2tvdXQgYSBwcm9kdWN0IHRvIGJ1eSBpdCBvbmUgdGltZSBvciBzdGFydCBhIHN1YnNjcmlwdGlvbiBwbGFuIG9uIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCeyI+L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS9jaGVja291dHM6ASpaNiIxL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2NoZWNrb3V0czoBKhK3AgoNTGlzdENoZWNrb3V0cxIvLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdENoZWNrb3V0c1JlcXVlc3QaMC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RDaGVja291dHNSZXNwb25zZSLCAZJBRAoIQ2hlY2tvdXQSDkxpc3QgY2hlY2tvdXRzGihMaXN0IGFsbCBjaGVja291dHMgb2YgYSBiaWxsaW5nIGFjY291bnQugtPkkwJ1Ej4vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2NoZWNrb3V0c1ozEjEvdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcvY2hlY2tvdXRzEqYCCgtHZXRDaGVja291dBItLnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuR2V0Q2hlY2tvdXRSZXF1ZXN0Gi4ucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5HZXRDaGVja291dFJlc3BvbnNlIrcBkkEvCghDaGVja291dBIMR2V0IGNoZWNrb3V0GhVHZXQgYSBjaGVja291dCBieSBJRC6C0+STAn8SQy92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2tvdXRzL3tpZH1aOBI2L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2NoZWNrb3V0cy97aWR9EtwCChdDaGVja0ZlYXR1cmVFbnRpdGxlbWVudBI5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tGZWF0dXJlRW50aXRsZW1lbnRSZXF1ZXN0GjoucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0ZlYXR1cmVFbnRpdGxlbWVudFJlc3BvbnNlIskBkkFWCgtFbnRpdGxlbWVudBIRQ2hlY2sgZW50aXRsZW1lbnQaNENoZWNrIGlmIGEgYmlsbGluZyBhY2NvdW50IGlzIGVudGl0bGVkIHRvIGEgZmVhdHVyZS6C0+STAmoiOi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vY2hlY2s6ASpaKSIkL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL2NoZWNrOgEqEp8CChZDaGVja0NyZWRpdEVudGl0bGVtZW50EjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DaGVja0NyZWRpdEVudGl0bGVtZW50UmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ2hlY2tDcmVkaXRFbnRpdGxlbWVudFJlc3BvbnNlIo8BkkFrCgtFbnRpdGxlbWVudBIYQ2hlY2sgY3JlZGl0IGVudGl0bGVtZW50GkJDaGVjayBpZiBhIGJpbGxpbmcgYWNjb3VudCBoYXMgZW5vdWdoIGNyZWRpdHMgdG8gY292ZXIgdGhlIGFtb3VudC6C0+STAhsiFi92MWJldGExL2JpbGxpbmcvY2hlY2s6ASoSyQIKEkNyZWF0ZUJpbGxpbmdVc2FnZRI0LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ1VzYWdlUmVxdWVzdBo1LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQ3JlYXRlQmlsbGluZ1VzYWdlUmVzcG9uc2UixQGSQVAKBVVzYWdlEhRDcmVhdGUgYmlsbGluZyB1c2FnZRoxUmVwb3J0IGEgbmV3IGJpbGxpbmcgdXNhZ2UgZm9yIGEgYmlsbGluZyBhY2NvdW50LoLT5JMCbCI7L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL3tiaWxsaW5nX2lkfS91c2FnZXM6ASpaKiIlL3YxYmV0YTEvb3JnYW5pemF0aW9ucy9iaWxsaW5nL3VzYWdlczoBKhLsAgoXTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnMSOS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RCaWxsaW5nVHJhbnNhY3Rpb25zUmVxdWVzdBo6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuTGlzdEJpbGxpbmdUcmFuc2FjdGlvbnNSZXNwb25zZSLZAZJBVQoLVHJhbnNhY3Rpb24SGUxpc3QgYmlsbGluZyB0cmFuc2FjdGlvbnMaK0xpc3QgYWxsIHRyYW5zYWN0aW9ucyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAnsSQS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vdHJhbnNhY3Rpb25zWjYSNC92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy90cmFuc2FjdGlvbnMS7wIKGFRvdGFsRGViaXRlZFRyYW5zYWN0aW9ucxI6LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVxdWVzdBo7LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuVG90YWxEZWJpdGVkVHJhbnNhY3Rpb25zUmVzcG9uc2Ui2QGSQX8KC1RyYW5zYWN0aW9uEjdTdW0gb2YgYW1vdW50IG9mIGRlYml0ZWQgdHJhbnNhY3Rpb25zIGluY2x1ZGluZyByZWZ1bmRzGjdTdW0gb2YgYW1vdW50IG9mIGRlYml0ZWQgdHJhbnNhY3Rpb25zIGluY2x1ZGluZyByZWZ1bmRzgtPkkwJREk8vdjFiZXRhMS9vcmdhbml6YXRpb25zL3tvcmdfaWR9L2JpbGxpbmcve2JpbGxpbmdfaWR9L2RlYml0ZWRfdHJhbnNhY3Rpb25zX3RvdGFsEq8CCgxMaXN0SW52b2ljZXMSLi5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RJbnZvaWNlc1JlcXVlc3QaLy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkxpc3RJbnZvaWNlc1Jlc3BvbnNlIr0BkkFBCgdJbnZvaWNlEg1MaXN0IGludm9pY2VzGidMaXN0IGFsbCBpbnZvaWNlcyBvZiBhIGJpbGxpbmcgYWNjb3VudC6C0+STAnMSPS92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vaW52b2ljZXNaMhIwL3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2ludm9pY2VzEuICChJHZXRVcGNvbWluZ0ludm9pY2USNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVwY29taW5nSW52b2ljZVJlcXVlc3QaNS5yYXlzdGFjay5mcm9udGllci52MWJldGExLkdldFVwY29taW5nSW52b2ljZVJlc3BvbnNlIt4BkkFPCgdJbnZvaWNlEhRHZXQgdXBjb21pbmcgaW52b2ljZRouR2V0IHRoZSB1cGNvbWluZyBpbnZvaWNlIG9mIGEgYmlsbGluZyBhY2NvdW50LoLT5JMChQESRi92MWJldGExL29yZ2FuaXphdGlvbnMve29yZ19pZH0vYmlsbGluZy97YmlsbGluZ19pZH0vaW52b2ljZXMvdXBjb21pbmdaOxI5L3YxYmV0YTEvb3JnYW5pemF0aW9ucy97b3JnX2lkfS9iaWxsaW5nL2ludm9pY2VzL3VwY29taW5nEpwCChZCaWxsaW5nV2ViaG9va0NhbGxiYWNrEjgucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5CaWxsaW5nV2ViaG9va0NhbGxiYWNrUmVxdWVzdBo5LnJheXN0YWNrLmZyb250aWVyLnYxYmV0YTEuQmlsbGluZ1dlYmhvb2tDYWxsYmFja1Jlc3BvbnNlIowBkkFOCgdXZWJob29rEhZBY2NlcHQgQmlsbGluZyB3ZWJob29rGitBY2NlcHRzIGEgQmlsbGluZyB3ZWJob29rIGFuZCBwcm9jZXNzZXMgaXQugtPkkwI1Ii0vdjFiZXRhMS9iaWxsaW5nL3dlYmhvb2tzL2NhbGxiYWNrL3twcm92aWRlcn06BGJvZHkSkQIKFENyZWF0ZVByb3NwZWN0UHVibGljEjYucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVQcm9zcGVjdFB1YmxpY1JlcXVlc3QaNy5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZVByb3NwZWN0UHVibGljUmVzcG9uc2UihwGSQWcKCFByb3NwZWN0Eg9DcmVhdGUgcHJvc3BlY3QaSkNyZWF0ZSBwcm9zcGVjdCBmb3IgZ2l2ZW4gZW1haWwgYW5kIGFjdGl2aXR5LiBBdmFpbGFibGUgZm9yIHB1YmxpYyBhY2Nlc3MugtPkkwIXIhIvdjFiZXRhMS9wcm9zcGVjdHM6ASoSgAEKEUNyZWF0ZUF1ZGl0UmVjb3JkEjMucmF5c3RhY2suZnJvbnRpZXIudjFiZXRhMS5DcmVhdGVBdWRpdFJlY29yZFJlcXVlc3QaNC5yYXlzdGFjay5mcm9udGllci52MWJldGExLkNyZWF0ZUF1ZGl0UmVjb3JkUmVzcG9uc2UiAELyDQojaW8ucmF5c3RhY2sucHJvdG9uLmZyb250aWVyLnYxYmV0YTFCCEZyb250aWVyWjtnaXRodWIuY29tL3JheXN0YWNrL3Byb3Rvbi9mcm9udGllci92MWJldGExO2Zyb250aWVydjFiZXRhMZJBgg0SHgoVRnJvbnRpZXIgR2VuZXJhbCBBUElzMgUwLjIuMBoOMTI3LjAuMC4xOjc0MDAqAQEyEGFwcGxpY2F0aW9uL2pzb246EGFwcGxpY2F0aW9uL2pzb25SPAoDMjAwEjUKG09LIC0gQSBzdWNjZXNzZnVsIHJlc3BvbnNlLhIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JpCgM0MDASYgpIQmFkIFJlcXVlc3QgLSBUaGUgcmVxdWVzdCB3YXMgbWFsZm9ybWVkIG9yIGNvbnRhaW5lZCBpbnZhbGlkIHBhcmFtZXRlcnMuEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUkoKAzQwMRJDCilVbmF1dGhvcml6ZWQgLSBBdXRoZW50aWNhdGlvbiBpcyByZXF1aXJlZBIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JhCgM0MDMSWgpARm9yYmlkZGVuIC0gVXNlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoZSByZXNvdXJjZRIWChQaEi5nb29nbGUucnBjLlN0YXR1c1JRCgM0MDQSSgowTm90IEZvdW5kIC0gVGhlIHJlcXVlc3RlZCByZXNvdXJjZSB3YXMgbm90IGZvdW5kEhYKFBoSLmdvb2dsZS5ycGMuU3RhdHVzUnUKAzUwMBJuClRJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IuIFJldHVybmVkIHdoZW4gdGhlcmVzIGlzIHNvbWV0aGluZyB3cm9uZyB3aXRoIEZyb250aWVyIHNlcnZlci4SFgoUGhIuZ29vZ2xlLnJwYy5TdGF0dXNatgEKRAoFQmFzaWMSOwgBEh9DbGllbnQgSUQvU2VjcmV0IGF1dGhlbnRpY2F0aW9uGhRCYXNpYyBBdXRoZW50aWNhdGlvbiACCm4KBkJlYXJlchJkCAIST1RoZSBBdXRob3JpemF0aW9uIGhlYWRlciBtdXN0IGJlIHNldCB0byBCZWFyZXIgZm9sbG93ZWQgYnkgYSBzcGFjZSBhbmQgYSB0b2tlbi4aDUF1dGhvcml6YXRpb24gAmITCgcKBUJhc2ljCggKBkJlYXJlcmoGCgRVc2VyaoIDCgVHcm91cBL4Akdyb3VwcyBpbiBGcm9udGllciBhcmUgdXNlZCB0byBtYW5hZ2UgdXNlcnMgYW5kIHRoZWlyIGFjY2VzcyB0byByZXNvdXJjZXMuIEVhY2ggZ3JvdXAgaGFzIGEgdW5pcXVlIG5hbWUgYW5kIGlkIHRoYXQgY2FuIGJlIHVzZWQgdG8gZ3JhbnQgYWNjZXNzIHRvIHJlc291cmNlcy4gV2hlbiBhIHVzZXIgaXMgYWRkZWQgdG8gYSBncm91cCwgdGhleSBpbmhlcml0IHRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgdGhhdCBoYXZlIGJlZW4gZ3JhbnRlZCB0byB0aGUgZ3JvdXAuIFRoaXMgYWxsb3dzIHlvdSB0byBtYW5hZ2UgYWNjZXNzIHRvIHJlc291cmNlcyBhdCBzY2FsZSwgd2l0aG91dCBoYXZpbmcgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gaW5kaXZpZHVhbCB1c2Vycy5qBgoEUm9sZWoOCgxPcmdhbml6YXRpb25qCQoHUHJvamVjdGoICgZQb2xpY3lqCgoIUmVsYXRpb25qDAoKUGVybWlzc2lvbmoLCglOYW1lc3BhY2VqCgoIUmVzb3VyY2VqGwoFQXV0aHoSEkF1dGhvcml6YXRpb24gQVBJc2ocCgVBdXRobhITQXV0aGVudGljYXRpb24gQVBJc2qQAgoKTWV0YVNjaGVtYRKBAk1hbmFnZSBNZXRhZGF0YSBTY2hlbWFzIHdoaWNoIGFyZSB1c2VkIHRvIHZhbGlkYXRlIG1ldGFkYXRhIG9iamVjdCB3aGlsZSBjcmVhdGluZyB1c2VyL29yZy9ncm91cC9yb2xlLiBGcm9udGllciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBkZWZhdWx0IG1ldGFzY2hlbWFzIHdpdGggYGxhYmVsYCBhbmQgYGRlc2NyaXB0aW9uYCBmaWVsZHMuIFlvdSBjYW4gYWxzbyB1cGRhdGUgdGhlc2UgbWV0YXNjaGVtYXMgdG8gYWRkL2VkaXQgbW9yZSBmaWVsZHMuYgZwcm90bzM", [file_google_api_annotations, file_google_api_field_behavior, file_google_protobuf_struct, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_raystack_frontier_v1beta1_models, file_validate_validate]);
22
22
 
23
23
  /**
24
24
  * @generated from message raystack.frontier.v1beta1.BillingAccountRequestBody
@@ -689,14 +689,19 @@ export const TotalDebitedTransactionsResponseSchema: GenMessage<TotalDebitedTran
689
689
  */
690
690
  export type GetSubscriptionRequest = Message<"raystack.frontier.v1beta1.GetSubscriptionRequest"> & {
691
691
  /**
692
- * @generated from field: string org_id = 1;
692
+ * DEPRECATED: org_id will be inferred from subscription id
693
+ *
694
+ * @generated from field: string org_id = 1 [deprecated = true];
695
+ * @deprecated
693
696
  */
694
697
  orgId: string;
695
698
 
696
699
  /**
700
+ * DEPRECATED: billing_id will be inferred from subscription id
697
701
  * ID of the billing account to get the subscription for
698
702
  *
699
- * @generated from field: string billing_id = 2;
703
+ * @generated from field: string billing_id = 2 [deprecated = true];
704
+ * @deprecated
700
705
  */
701
706
  billingId: string;
702
707
 
@@ -747,9 +752,11 @@ export type ListSubscriptionsRequest = Message<"raystack.frontier.v1beta1.ListSu
747
752
  orgId: string;
748
753
 
749
754
  /**
755
+ * DEPRECATED: billing_id will be inferred from org_id
750
756
  * ID of the billing account to list subscriptions for
751
757
  *
752
- * @generated from field: string billing_id = 2;
758
+ * @generated from field: string billing_id = 2 [deprecated = true];
759
+ * @deprecated
753
760
  */
754
761
  billingId: string;
755
762
 
@@ -802,14 +809,19 @@ export const ListSubscriptionsResponseSchema: GenMessage<ListSubscriptionsRespon
802
809
  */
803
810
  export type UpdateSubscriptionRequest = Message<"raystack.frontier.v1beta1.UpdateSubscriptionRequest"> & {
804
811
  /**
805
- * @generated from field: string org_id = 1;
812
+ * DEPRECATED: org_id will be inferred from subscription id
813
+ *
814
+ * @generated from field: string org_id = 1 [deprecated = true];
815
+ * @deprecated
806
816
  */
807
817
  orgId: string;
808
818
 
809
819
  /**
820
+ * DEPRECATED: billing_id will be inferred from subscription id
810
821
  * ID of the billing account to update the subscription for
811
822
  *
812
- * @generated from field: string billing_id = 2;
823
+ * @generated from field: string billing_id = 2 [deprecated = true];
824
+ * @deprecated
813
825
  */
814
826
  billingId: string;
815
827
 
@@ -857,14 +869,19 @@ export const UpdateSubscriptionResponseSchema: GenMessage<UpdateSubscriptionResp
857
869
  */
858
870
  export type ChangeSubscriptionRequest = Message<"raystack.frontier.v1beta1.ChangeSubscriptionRequest"> & {
859
871
  /**
860
- * @generated from field: string org_id = 1;
872
+ * DEPRECATED: org_id will be inferred from subscription id
873
+ *
874
+ * @generated from field: string org_id = 1 [deprecated = true];
875
+ * @deprecated
861
876
  */
862
877
  orgId: string;
863
878
 
864
879
  /**
880
+ * DEPRECATED: billing_id will be inferred from subscription id
865
881
  * ID of the billing account to update the subscription for
866
882
  *
867
- * @generated from field: string billing_id = 2;
883
+ * @generated from field: string billing_id = 2 [deprecated = true];
884
+ * @deprecated
868
885
  */
869
886
  billingId: string;
870
887
 
@@ -985,14 +1002,19 @@ export const ChangeSubscriptionResponseSchema: GenMessage<ChangeSubscriptionResp
985
1002
  */
986
1003
  export type CancelSubscriptionRequest = Message<"raystack.frontier.v1beta1.CancelSubscriptionRequest"> & {
987
1004
  /**
988
- * @generated from field: string org_id = 1;
1005
+ * DEPRECATED: org_id will be inferred from subscription id
1006
+ *
1007
+ * @generated from field: string org_id = 1 [deprecated = true];
1008
+ * @deprecated
989
1009
  */
990
1010
  orgId: string;
991
1011
 
992
1012
  /**
1013
+ * DEPRECATED: billing_id will be inferred from subscription id
993
1014
  * ID of the billing account to update the subscription for
994
1015
  *
995
- * @generated from field: string billing_id = 2;
1016
+ * @generated from field: string billing_id = 2 [deprecated = true];
1017
+ * @deprecated
996
1018
  */
997
1019
  billingId: string;
998
1020
 
@@ -1166,9 +1188,11 @@ export type CreateCheckoutRequest = Message<"raystack.frontier.v1beta1.CreateChe
1166
1188
  orgId: string;
1167
1189
 
1168
1190
  /**
1191
+ * DEPRECATED: billing_id will be inferred from org_id
1169
1192
  * ID of the billing account to update the subscription for
1170
1193
  *
1171
- * @generated from field: string billing_id = 2;
1194
+ * @generated from field: string billing_id = 2 [deprecated = true];
1195
+ * @deprecated
1172
1196
  */
1173
1197
  billingId: string;
1174
1198
 
@@ -1240,9 +1264,11 @@ export type ListCheckoutsRequest = Message<"raystack.frontier.v1beta1.ListChecko
1240
1264
  orgId: string;
1241
1265
 
1242
1266
  /**
1267
+ * DEPRECATED: billing_id will be inferred from org_id
1243
1268
  * ID of the billing account to get the subscriptions for
1244
1269
  *
1245
- * @generated from field: string billing_id = 2;
1270
+ * @generated from field: string billing_id = 2 [deprecated = true];
1271
+ * @deprecated
1246
1272
  */
1247
1273
  billingId: string;
1248
1274
  };
@@ -1278,14 +1304,18 @@ export const ListCheckoutsResponseSchema: GenMessage<ListCheckoutsResponse> = /*
1278
1304
  */
1279
1305
  export type GetCheckoutRequest = Message<"raystack.frontier.v1beta1.GetCheckoutRequest"> & {
1280
1306
  /**
1281
- * @generated from field: string org_id = 1;
1307
+ * DEPRECATED: org_id is not needed, checkout can be fetched by id alone
1308
+ *
1309
+ * @generated from field: string org_id = 1 [deprecated = true];
1310
+ * @deprecated
1282
1311
  */
1283
1312
  orgId: string;
1284
1313
 
1285
1314
  /**
1286
- * ID of the billing account to get the subscriptions for
1315
+ * DEPRECATED: billing_id is not needed, checkout can be fetched by id alone
1287
1316
  *
1288
- * @generated from field: string billing_id = 2;
1317
+ * @generated from field: string billing_id = 2 [deprecated = true];
1318
+ * @deprecated
1289
1319
  */
1290
1320
  billingId: string;
1291
1321
 
@@ -3212,50 +3242,6 @@ export type GetServiceUserResponse = Message<"raystack.frontier.v1beta1.GetServi
3212
3242
  export const GetServiceUserResponseSchema: GenMessage<GetServiceUserResponse> = /*@__PURE__*/
3213
3243
  messageDesc(file_raystack_frontier_v1beta1_frontier, 132);
3214
3244
 
3215
- /**
3216
- * @generated from message raystack.frontier.v1beta1.UpdateServiceUserRequest
3217
- */
3218
- export type UpdateServiceUserRequest = Message<"raystack.frontier.v1beta1.UpdateServiceUserRequest"> & {
3219
- /**
3220
- * @generated from field: string id = 1;
3221
- */
3222
- id: string;
3223
-
3224
- /**
3225
- * @generated from field: raystack.frontier.v1beta1.ServiceUserRequestBody body = 2;
3226
- */
3227
- body?: ServiceUserRequestBody;
3228
-
3229
- /**
3230
- * @generated from field: string org_id = 3;
3231
- */
3232
- orgId: string;
3233
- };
3234
-
3235
- /**
3236
- * Describes the message raystack.frontier.v1beta1.UpdateServiceUserRequest.
3237
- * Use `create(UpdateServiceUserRequestSchema)` to create a new message.
3238
- */
3239
- export const UpdateServiceUserRequestSchema: GenMessage<UpdateServiceUserRequest> = /*@__PURE__*/
3240
- messageDesc(file_raystack_frontier_v1beta1_frontier, 133);
3241
-
3242
- /**
3243
- * @generated from message raystack.frontier.v1beta1.UpdateServiceUserResponse
3244
- */
3245
- export type UpdateServiceUserResponse = Message<"raystack.frontier.v1beta1.UpdateServiceUserResponse"> & {
3246
- /**
3247
- * @generated from field: raystack.frontier.v1beta1.ServiceUser serviceuser = 1;
3248
- */
3249
- serviceuser?: ServiceUser;
3250
- };
3251
-
3252
- /**
3253
- * Describes the message raystack.frontier.v1beta1.UpdateServiceUserResponse.
3254
- * Use `create(UpdateServiceUserResponseSchema)` to create a new message.
3255
- */
3256
- export const UpdateServiceUserResponseSchema: GenMessage<UpdateServiceUserResponse> = /*@__PURE__*/
3257
- messageDesc(file_raystack_frontier_v1beta1_frontier, 134);
3258
-
3259
3245
  /**
3260
3246
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserRequest
3261
3247
  */
@@ -3276,7 +3262,7 @@ export type DeleteServiceUserRequest = Message<"raystack.frontier.v1beta1.Delete
3276
3262
  * Use `create(DeleteServiceUserRequestSchema)` to create a new message.
3277
3263
  */
3278
3264
  export const DeleteServiceUserRequestSchema: GenMessage<DeleteServiceUserRequest> = /*@__PURE__*/
3279
- messageDesc(file_raystack_frontier_v1beta1_frontier, 135);
3265
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 133);
3280
3266
 
3281
3267
  /**
3282
3268
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserResponse
@@ -3289,7 +3275,7 @@ export type DeleteServiceUserResponse = Message<"raystack.frontier.v1beta1.Delet
3289
3275
  * Use `create(DeleteServiceUserResponseSchema)` to create a new message.
3290
3276
  */
3291
3277
  export const DeleteServiceUserResponseSchema: GenMessage<DeleteServiceUserResponse> = /*@__PURE__*/
3292
- messageDesc(file_raystack_frontier_v1beta1_frontier, 136);
3278
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 134);
3293
3279
 
3294
3280
  /**
3295
3281
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserJWKRequest
@@ -3316,7 +3302,7 @@ export type CreateServiceUserJWKRequest = Message<"raystack.frontier.v1beta1.Cre
3316
3302
  * Use `create(CreateServiceUserJWKRequestSchema)` to create a new message.
3317
3303
  */
3318
3304
  export const CreateServiceUserJWKRequestSchema: GenMessage<CreateServiceUserJWKRequest> = /*@__PURE__*/
3319
- messageDesc(file_raystack_frontier_v1beta1_frontier, 137);
3305
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 135);
3320
3306
 
3321
3307
  /**
3322
3308
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserJWKResponse
@@ -3333,7 +3319,7 @@ export type CreateServiceUserJWKResponse = Message<"raystack.frontier.v1beta1.Cr
3333
3319
  * Use `create(CreateServiceUserJWKResponseSchema)` to create a new message.
3334
3320
  */
3335
3321
  export const CreateServiceUserJWKResponseSchema: GenMessage<CreateServiceUserJWKResponse> = /*@__PURE__*/
3336
- messageDesc(file_raystack_frontier_v1beta1_frontier, 138);
3322
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 136);
3337
3323
 
3338
3324
  /**
3339
3325
  * @generated from message raystack.frontier.v1beta1.GetServiceUserJWKRequest
@@ -3360,7 +3346,7 @@ export type GetServiceUserJWKRequest = Message<"raystack.frontier.v1beta1.GetSer
3360
3346
  * Use `create(GetServiceUserJWKRequestSchema)` to create a new message.
3361
3347
  */
3362
3348
  export const GetServiceUserJWKRequestSchema: GenMessage<GetServiceUserJWKRequest> = /*@__PURE__*/
3363
- messageDesc(file_raystack_frontier_v1beta1_frontier, 139);
3349
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 137);
3364
3350
 
3365
3351
  /**
3366
3352
  * @generated from message raystack.frontier.v1beta1.GetServiceUserJWKResponse
@@ -3377,7 +3363,7 @@ export type GetServiceUserJWKResponse = Message<"raystack.frontier.v1beta1.GetSe
3377
3363
  * Use `create(GetServiceUserJWKResponseSchema)` to create a new message.
3378
3364
  */
3379
3365
  export const GetServiceUserJWKResponseSchema: GenMessage<GetServiceUserJWKResponse> = /*@__PURE__*/
3380
- messageDesc(file_raystack_frontier_v1beta1_frontier, 140);
3366
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 138);
3381
3367
 
3382
3368
  /**
3383
3369
  * @generated from message raystack.frontier.v1beta1.ListServiceUserJWKsRequest
@@ -3399,7 +3385,7 @@ export type ListServiceUserJWKsRequest = Message<"raystack.frontier.v1beta1.List
3399
3385
  * Use `create(ListServiceUserJWKsRequestSchema)` to create a new message.
3400
3386
  */
3401
3387
  export const ListServiceUserJWKsRequestSchema: GenMessage<ListServiceUserJWKsRequest> = /*@__PURE__*/
3402
- messageDesc(file_raystack_frontier_v1beta1_frontier, 141);
3388
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 139);
3403
3389
 
3404
3390
  /**
3405
3391
  * @generated from message raystack.frontier.v1beta1.ListServiceUserJWKsResponse
@@ -3416,7 +3402,7 @@ export type ListServiceUserJWKsResponse = Message<"raystack.frontier.v1beta1.Lis
3416
3402
  * Use `create(ListServiceUserJWKsResponseSchema)` to create a new message.
3417
3403
  */
3418
3404
  export const ListServiceUserJWKsResponseSchema: GenMessage<ListServiceUserJWKsResponse> = /*@__PURE__*/
3419
- messageDesc(file_raystack_frontier_v1beta1_frontier, 142);
3405
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 140);
3420
3406
 
3421
3407
  /**
3422
3408
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserJWKRequest
@@ -3443,7 +3429,7 @@ export type DeleteServiceUserJWKRequest = Message<"raystack.frontier.v1beta1.Del
3443
3429
  * Use `create(DeleteServiceUserJWKRequestSchema)` to create a new message.
3444
3430
  */
3445
3431
  export const DeleteServiceUserJWKRequestSchema: GenMessage<DeleteServiceUserJWKRequest> = /*@__PURE__*/
3446
- messageDesc(file_raystack_frontier_v1beta1_frontier, 143);
3432
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 141);
3447
3433
 
3448
3434
  /**
3449
3435
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserJWKResponse
@@ -3456,7 +3442,7 @@ export type DeleteServiceUserJWKResponse = Message<"raystack.frontier.v1beta1.De
3456
3442
  * Use `create(DeleteServiceUserJWKResponseSchema)` to create a new message.
3457
3443
  */
3458
3444
  export const DeleteServiceUserJWKResponseSchema: GenMessage<DeleteServiceUserJWKResponse> = /*@__PURE__*/
3459
- messageDesc(file_raystack_frontier_v1beta1_frontier, 144);
3445
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 142);
3460
3446
 
3461
3447
  /**
3462
3448
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserCredentialRequest
@@ -3483,7 +3469,7 @@ export type CreateServiceUserCredentialRequest = Message<"raystack.frontier.v1be
3483
3469
  * Use `create(CreateServiceUserCredentialRequestSchema)` to create a new message.
3484
3470
  */
3485
3471
  export const CreateServiceUserCredentialRequestSchema: GenMessage<CreateServiceUserCredentialRequest> = /*@__PURE__*/
3486
- messageDesc(file_raystack_frontier_v1beta1_frontier, 145);
3472
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 143);
3487
3473
 
3488
3474
  /**
3489
3475
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserCredentialResponse
@@ -3500,7 +3486,7 @@ export type CreateServiceUserCredentialResponse = Message<"raystack.frontier.v1b
3500
3486
  * Use `create(CreateServiceUserCredentialResponseSchema)` to create a new message.
3501
3487
  */
3502
3488
  export const CreateServiceUserCredentialResponseSchema: GenMessage<CreateServiceUserCredentialResponse> = /*@__PURE__*/
3503
- messageDesc(file_raystack_frontier_v1beta1_frontier, 146);
3489
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 144);
3504
3490
 
3505
3491
  /**
3506
3492
  * @generated from message raystack.frontier.v1beta1.ListServiceUserCredentialsRequest
@@ -3522,7 +3508,7 @@ export type ListServiceUserCredentialsRequest = Message<"raystack.frontier.v1bet
3522
3508
  * Use `create(ListServiceUserCredentialsRequestSchema)` to create a new message.
3523
3509
  */
3524
3510
  export const ListServiceUserCredentialsRequestSchema: GenMessage<ListServiceUserCredentialsRequest> = /*@__PURE__*/
3525
- messageDesc(file_raystack_frontier_v1beta1_frontier, 147);
3511
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 145);
3526
3512
 
3527
3513
  /**
3528
3514
  * @generated from message raystack.frontier.v1beta1.ListServiceUserCredentialsResponse
@@ -3541,7 +3527,7 @@ export type ListServiceUserCredentialsResponse = Message<"raystack.frontier.v1be
3541
3527
  * Use `create(ListServiceUserCredentialsResponseSchema)` to create a new message.
3542
3528
  */
3543
3529
  export const ListServiceUserCredentialsResponseSchema: GenMessage<ListServiceUserCredentialsResponse> = /*@__PURE__*/
3544
- messageDesc(file_raystack_frontier_v1beta1_frontier, 148);
3530
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 146);
3545
3531
 
3546
3532
  /**
3547
3533
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserCredentialRequest
@@ -3568,7 +3554,7 @@ export type DeleteServiceUserCredentialRequest = Message<"raystack.frontier.v1be
3568
3554
  * Use `create(DeleteServiceUserCredentialRequestSchema)` to create a new message.
3569
3555
  */
3570
3556
  export const DeleteServiceUserCredentialRequestSchema: GenMessage<DeleteServiceUserCredentialRequest> = /*@__PURE__*/
3571
- messageDesc(file_raystack_frontier_v1beta1_frontier, 149);
3557
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 147);
3572
3558
 
3573
3559
  /**
3574
3560
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserCredentialResponse
@@ -3581,7 +3567,7 @@ export type DeleteServiceUserCredentialResponse = Message<"raystack.frontier.v1b
3581
3567
  * Use `create(DeleteServiceUserCredentialResponseSchema)` to create a new message.
3582
3568
  */
3583
3569
  export const DeleteServiceUserCredentialResponseSchema: GenMessage<DeleteServiceUserCredentialResponse> = /*@__PURE__*/
3584
- messageDesc(file_raystack_frontier_v1beta1_frontier, 150);
3570
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 148);
3585
3571
 
3586
3572
  /**
3587
3573
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserTokenRequest
@@ -3608,7 +3594,7 @@ export type CreateServiceUserTokenRequest = Message<"raystack.frontier.v1beta1.C
3608
3594
  * Use `create(CreateServiceUserTokenRequestSchema)` to create a new message.
3609
3595
  */
3610
3596
  export const CreateServiceUserTokenRequestSchema: GenMessage<CreateServiceUserTokenRequest> = /*@__PURE__*/
3611
- messageDesc(file_raystack_frontier_v1beta1_frontier, 151);
3597
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 149);
3612
3598
 
3613
3599
  /**
3614
3600
  * @generated from message raystack.frontier.v1beta1.CreateServiceUserTokenResponse
@@ -3625,7 +3611,7 @@ export type CreateServiceUserTokenResponse = Message<"raystack.frontier.v1beta1.
3625
3611
  * Use `create(CreateServiceUserTokenResponseSchema)` to create a new message.
3626
3612
  */
3627
3613
  export const CreateServiceUserTokenResponseSchema: GenMessage<CreateServiceUserTokenResponse> = /*@__PURE__*/
3628
- messageDesc(file_raystack_frontier_v1beta1_frontier, 152);
3614
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 150);
3629
3615
 
3630
3616
  /**
3631
3617
  * @generated from message raystack.frontier.v1beta1.ListServiceUserTokensRequest
@@ -3647,7 +3633,7 @@ export type ListServiceUserTokensRequest = Message<"raystack.frontier.v1beta1.Li
3647
3633
  * Use `create(ListServiceUserTokensRequestSchema)` to create a new message.
3648
3634
  */
3649
3635
  export const ListServiceUserTokensRequestSchema: GenMessage<ListServiceUserTokensRequest> = /*@__PURE__*/
3650
- messageDesc(file_raystack_frontier_v1beta1_frontier, 153);
3636
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 151);
3651
3637
 
3652
3638
  /**
3653
3639
  * @generated from message raystack.frontier.v1beta1.ListServiceUserTokensResponse
@@ -3664,7 +3650,7 @@ export type ListServiceUserTokensResponse = Message<"raystack.frontier.v1beta1.L
3664
3650
  * Use `create(ListServiceUserTokensResponseSchema)` to create a new message.
3665
3651
  */
3666
3652
  export const ListServiceUserTokensResponseSchema: GenMessage<ListServiceUserTokensResponse> = /*@__PURE__*/
3667
- messageDesc(file_raystack_frontier_v1beta1_frontier, 154);
3653
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 152);
3668
3654
 
3669
3655
  /**
3670
3656
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserTokenRequest
@@ -3691,7 +3677,7 @@ export type DeleteServiceUserTokenRequest = Message<"raystack.frontier.v1beta1.D
3691
3677
  * Use `create(DeleteServiceUserTokenRequestSchema)` to create a new message.
3692
3678
  */
3693
3679
  export const DeleteServiceUserTokenRequestSchema: GenMessage<DeleteServiceUserTokenRequest> = /*@__PURE__*/
3694
- messageDesc(file_raystack_frontier_v1beta1_frontier, 155);
3680
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 153);
3695
3681
 
3696
3682
  /**
3697
3683
  * @generated from message raystack.frontier.v1beta1.DeleteServiceUserTokenResponse
@@ -3704,7 +3690,7 @@ export type DeleteServiceUserTokenResponse = Message<"raystack.frontier.v1beta1.
3704
3690
  * Use `create(DeleteServiceUserTokenResponseSchema)` to create a new message.
3705
3691
  */
3706
3692
  export const DeleteServiceUserTokenResponseSchema: GenMessage<DeleteServiceUserTokenResponse> = /*@__PURE__*/
3707
- messageDesc(file_raystack_frontier_v1beta1_frontier, 156);
3693
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 154);
3708
3694
 
3709
3695
  /**
3710
3696
  * @generated from message raystack.frontier.v1beta1.ListServiceUserProjectsRequest
@@ -3735,7 +3721,7 @@ export type ListServiceUserProjectsRequest = Message<"raystack.frontier.v1beta1.
3735
3721
  * Use `create(ListServiceUserProjectsRequestSchema)` to create a new message.
3736
3722
  */
3737
3723
  export const ListServiceUserProjectsRequestSchema: GenMessage<ListServiceUserProjectsRequest> = /*@__PURE__*/
3738
- messageDesc(file_raystack_frontier_v1beta1_frontier, 157);
3724
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 155);
3739
3725
 
3740
3726
  /**
3741
3727
  * @generated from message raystack.frontier.v1beta1.ListServiceUserProjectsResponse
@@ -3757,7 +3743,7 @@ export type ListServiceUserProjectsResponse = Message<"raystack.frontier.v1beta1
3757
3743
  * Use `create(ListServiceUserProjectsResponseSchema)` to create a new message.
3758
3744
  */
3759
3745
  export const ListServiceUserProjectsResponseSchema: GenMessage<ListServiceUserProjectsResponse> = /*@__PURE__*/
3760
- messageDesc(file_raystack_frontier_v1beta1_frontier, 158);
3746
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 156);
3761
3747
 
3762
3748
  /**
3763
3749
  * @generated from message raystack.frontier.v1beta1.ListServiceUserProjectsResponse.AccessPair
@@ -3779,7 +3765,7 @@ export type ListServiceUserProjectsResponse_AccessPair = Message<"raystack.front
3779
3765
  * Use `create(ListServiceUserProjectsResponse_AccessPairSchema)` to create a new message.
3780
3766
  */
3781
3767
  export const ListServiceUserProjectsResponse_AccessPairSchema: GenMessage<ListServiceUserProjectsResponse_AccessPair> = /*@__PURE__*/
3782
- messageDesc(file_raystack_frontier_v1beta1_frontier, 158, 0);
3768
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 156, 0);
3783
3769
 
3784
3770
  /**
3785
3771
  * @generated from message raystack.frontier.v1beta1.ListOrganizationGroupsRequest
@@ -3816,7 +3802,7 @@ export type ListOrganizationGroupsRequest = Message<"raystack.frontier.v1beta1.L
3816
3802
  * Use `create(ListOrganizationGroupsRequestSchema)` to create a new message.
3817
3803
  */
3818
3804
  export const ListOrganizationGroupsRequestSchema: GenMessage<ListOrganizationGroupsRequest> = /*@__PURE__*/
3819
- messageDesc(file_raystack_frontier_v1beta1_frontier, 159);
3805
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 157);
3820
3806
 
3821
3807
  /**
3822
3808
  * @generated from message raystack.frontier.v1beta1.ListOrganizationGroupsResponse
@@ -3833,7 +3819,7 @@ export type ListOrganizationGroupsResponse = Message<"raystack.frontier.v1beta1.
3833
3819
  * Use `create(ListOrganizationGroupsResponseSchema)` to create a new message.
3834
3820
  */
3835
3821
  export const ListOrganizationGroupsResponseSchema: GenMessage<ListOrganizationGroupsResponse> = /*@__PURE__*/
3836
- messageDesc(file_raystack_frontier_v1beta1_frontier, 160);
3822
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 158);
3837
3823
 
3838
3824
  /**
3839
3825
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationRoleRequest
@@ -3855,7 +3841,7 @@ export type CreateOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.C
3855
3841
  * Use `create(CreateOrganizationRoleRequestSchema)` to create a new message.
3856
3842
  */
3857
3843
  export const CreateOrganizationRoleRequestSchema: GenMessage<CreateOrganizationRoleRequest> = /*@__PURE__*/
3858
- messageDesc(file_raystack_frontier_v1beta1_frontier, 161);
3844
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 159);
3859
3845
 
3860
3846
  /**
3861
3847
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationRoleResponse
@@ -3872,7 +3858,7 @@ export type CreateOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.
3872
3858
  * Use `create(CreateOrganizationRoleResponseSchema)` to create a new message.
3873
3859
  */
3874
3860
  export const CreateOrganizationRoleResponseSchema: GenMessage<CreateOrganizationRoleResponse> = /*@__PURE__*/
3875
- messageDesc(file_raystack_frontier_v1beta1_frontier, 162);
3861
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 160);
3876
3862
 
3877
3863
  /**
3878
3864
  * @generated from message raystack.frontier.v1beta1.GetOrganizationRoleRequest
@@ -3894,7 +3880,7 @@ export type GetOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.GetO
3894
3880
  * Use `create(GetOrganizationRoleRequestSchema)` to create a new message.
3895
3881
  */
3896
3882
  export const GetOrganizationRoleRequestSchema: GenMessage<GetOrganizationRoleRequest> = /*@__PURE__*/
3897
- messageDesc(file_raystack_frontier_v1beta1_frontier, 163);
3883
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 161);
3898
3884
 
3899
3885
  /**
3900
3886
  * @generated from message raystack.frontier.v1beta1.GetOrganizationRoleResponse
@@ -3911,7 +3897,7 @@ export type GetOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.Get
3911
3897
  * Use `create(GetOrganizationRoleResponseSchema)` to create a new message.
3912
3898
  */
3913
3899
  export const GetOrganizationRoleResponseSchema: GenMessage<GetOrganizationRoleResponse> = /*@__PURE__*/
3914
- messageDesc(file_raystack_frontier_v1beta1_frontier, 164);
3900
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 162);
3915
3901
 
3916
3902
  /**
3917
3903
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationRoleRequest
@@ -3938,7 +3924,7 @@ export type UpdateOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.U
3938
3924
  * Use `create(UpdateOrganizationRoleRequestSchema)` to create a new message.
3939
3925
  */
3940
3926
  export const UpdateOrganizationRoleRequestSchema: GenMessage<UpdateOrganizationRoleRequest> = /*@__PURE__*/
3941
- messageDesc(file_raystack_frontier_v1beta1_frontier, 165);
3927
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 163);
3942
3928
 
3943
3929
  /**
3944
3930
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationRoleResponse
@@ -3955,7 +3941,7 @@ export type UpdateOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.
3955
3941
  * Use `create(UpdateOrganizationRoleResponseSchema)` to create a new message.
3956
3942
  */
3957
3943
  export const UpdateOrganizationRoleResponseSchema: GenMessage<UpdateOrganizationRoleResponse> = /*@__PURE__*/
3958
- messageDesc(file_raystack_frontier_v1beta1_frontier, 166);
3944
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 164);
3959
3945
 
3960
3946
  /**
3961
3947
  * @generated from message raystack.frontier.v1beta1.ListRolesRequest
@@ -3977,7 +3963,7 @@ export type ListRolesRequest = Message<"raystack.frontier.v1beta1.ListRolesReque
3977
3963
  * Use `create(ListRolesRequestSchema)` to create a new message.
3978
3964
  */
3979
3965
  export const ListRolesRequestSchema: GenMessage<ListRolesRequest> = /*@__PURE__*/
3980
- messageDesc(file_raystack_frontier_v1beta1_frontier, 167);
3966
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 165);
3981
3967
 
3982
3968
  /**
3983
3969
  * @generated from message raystack.frontier.v1beta1.ListRolesResponse
@@ -3994,7 +3980,7 @@ export type ListRolesResponse = Message<"raystack.frontier.v1beta1.ListRolesResp
3994
3980
  * Use `create(ListRolesResponseSchema)` to create a new message.
3995
3981
  */
3996
3982
  export const ListRolesResponseSchema: GenMessage<ListRolesResponse> = /*@__PURE__*/
3997
- messageDesc(file_raystack_frontier_v1beta1_frontier, 168);
3983
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 166);
3998
3984
 
3999
3985
  /**
4000
3986
  * @generated from message raystack.frontier.v1beta1.ListOrganizationRolesRequest
@@ -4021,7 +4007,7 @@ export type ListOrganizationRolesRequest = Message<"raystack.frontier.v1beta1.Li
4021
4007
  * Use `create(ListOrganizationRolesRequestSchema)` to create a new message.
4022
4008
  */
4023
4009
  export const ListOrganizationRolesRequestSchema: GenMessage<ListOrganizationRolesRequest> = /*@__PURE__*/
4024
- messageDesc(file_raystack_frontier_v1beta1_frontier, 169);
4010
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 167);
4025
4011
 
4026
4012
  /**
4027
4013
  * @generated from message raystack.frontier.v1beta1.ListOrganizationRolesResponse
@@ -4038,7 +4024,7 @@ export type ListOrganizationRolesResponse = Message<"raystack.frontier.v1beta1.L
4038
4024
  * Use `create(ListOrganizationRolesResponseSchema)` to create a new message.
4039
4025
  */
4040
4026
  export const ListOrganizationRolesResponseSchema: GenMessage<ListOrganizationRolesResponse> = /*@__PURE__*/
4041
- messageDesc(file_raystack_frontier_v1beta1_frontier, 170);
4027
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 168);
4042
4028
 
4043
4029
  /**
4044
4030
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationRoleRequest
@@ -4060,7 +4046,7 @@ export type DeleteOrganizationRoleRequest = Message<"raystack.frontier.v1beta1.D
4060
4046
  * Use `create(DeleteOrganizationRoleRequestSchema)` to create a new message.
4061
4047
  */
4062
4048
  export const DeleteOrganizationRoleRequestSchema: GenMessage<DeleteOrganizationRoleRequest> = /*@__PURE__*/
4063
- messageDesc(file_raystack_frontier_v1beta1_frontier, 171);
4049
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 169);
4064
4050
 
4065
4051
  /**
4066
4052
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationRoleResponse
@@ -4073,7 +4059,7 @@ export type DeleteOrganizationRoleResponse = Message<"raystack.frontier.v1beta1.
4073
4059
  * Use `create(DeleteOrganizationRoleResponseSchema)` to create a new message.
4074
4060
  */
4075
4061
  export const DeleteOrganizationRoleResponseSchema: GenMessage<DeleteOrganizationRoleResponse> = /*@__PURE__*/
4076
- messageDesc(file_raystack_frontier_v1beta1_frontier, 172);
4062
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 170);
4077
4063
 
4078
4064
  /**
4079
4065
  * @generated from message raystack.frontier.v1beta1.OrganizationRequestBody
@@ -4105,7 +4091,7 @@ export type OrganizationRequestBody = Message<"raystack.frontier.v1beta1.Organiz
4105
4091
  * Use `create(OrganizationRequestBodySchema)` to create a new message.
4106
4092
  */
4107
4093
  export const OrganizationRequestBodySchema: GenMessage<OrganizationRequestBody> = /*@__PURE__*/
4108
- messageDesc(file_raystack_frontier_v1beta1_frontier, 173);
4094
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 171);
4109
4095
 
4110
4096
  /**
4111
4097
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsRequest
@@ -4137,7 +4123,7 @@ export type ListOrganizationsRequest = Message<"raystack.frontier.v1beta1.ListOr
4137
4123
  * Use `create(ListOrganizationsRequestSchema)` to create a new message.
4138
4124
  */
4139
4125
  export const ListOrganizationsRequestSchema: GenMessage<ListOrganizationsRequest> = /*@__PURE__*/
4140
- messageDesc(file_raystack_frontier_v1beta1_frontier, 174);
4126
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 172);
4141
4127
 
4142
4128
  /**
4143
4129
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsResponse
@@ -4154,7 +4140,7 @@ export type ListOrganizationsResponse = Message<"raystack.frontier.v1beta1.ListO
4154
4140
  * Use `create(ListOrganizationsResponseSchema)` to create a new message.
4155
4141
  */
4156
4142
  export const ListOrganizationsResponseSchema: GenMessage<ListOrganizationsResponse> = /*@__PURE__*/
4157
- messageDesc(file_raystack_frontier_v1beta1_frontier, 175);
4143
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 173);
4158
4144
 
4159
4145
  /**
4160
4146
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationRequest
@@ -4171,7 +4157,7 @@ export type CreateOrganizationRequest = Message<"raystack.frontier.v1beta1.Creat
4171
4157
  * Use `create(CreateOrganizationRequestSchema)` to create a new message.
4172
4158
  */
4173
4159
  export const CreateOrganizationRequestSchema: GenMessage<CreateOrganizationRequest> = /*@__PURE__*/
4174
- messageDesc(file_raystack_frontier_v1beta1_frontier, 176);
4160
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 174);
4175
4161
 
4176
4162
  /**
4177
4163
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationResponse
@@ -4188,7 +4174,7 @@ export type CreateOrganizationResponse = Message<"raystack.frontier.v1beta1.Crea
4188
4174
  * Use `create(CreateOrganizationResponseSchema)` to create a new message.
4189
4175
  */
4190
4176
  export const CreateOrganizationResponseSchema: GenMessage<CreateOrganizationResponse> = /*@__PURE__*/
4191
- messageDesc(file_raystack_frontier_v1beta1_frontier, 177);
4177
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 175);
4192
4178
 
4193
4179
  /**
4194
4180
  * @generated from message raystack.frontier.v1beta1.GetOrganizationResponse
@@ -4205,7 +4191,7 @@ export type GetOrganizationResponse = Message<"raystack.frontier.v1beta1.GetOrga
4205
4191
  * Use `create(GetOrganizationResponseSchema)` to create a new message.
4206
4192
  */
4207
4193
  export const GetOrganizationResponseSchema: GenMessage<GetOrganizationResponse> = /*@__PURE__*/
4208
- messageDesc(file_raystack_frontier_v1beta1_frontier, 178);
4194
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 176);
4209
4195
 
4210
4196
  /**
4211
4197
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationResponse
@@ -4222,7 +4208,7 @@ export type UpdateOrganizationResponse = Message<"raystack.frontier.v1beta1.Upda
4222
4208
  * Use `create(UpdateOrganizationResponseSchema)` to create a new message.
4223
4209
  */
4224
4210
  export const UpdateOrganizationResponseSchema: GenMessage<UpdateOrganizationResponse> = /*@__PURE__*/
4225
- messageDesc(file_raystack_frontier_v1beta1_frontier, 179);
4211
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 177);
4226
4212
 
4227
4213
  /**
4228
4214
  * @generated from message raystack.frontier.v1beta1.GetOrganizationRequest
@@ -4239,7 +4225,7 @@ export type GetOrganizationRequest = Message<"raystack.frontier.v1beta1.GetOrgan
4239
4225
  * Use `create(GetOrganizationRequestSchema)` to create a new message.
4240
4226
  */
4241
4227
  export const GetOrganizationRequestSchema: GenMessage<GetOrganizationRequest> = /*@__PURE__*/
4242
- messageDesc(file_raystack_frontier_v1beta1_frontier, 180);
4228
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 178);
4243
4229
 
4244
4230
  /**
4245
4231
  * @generated from message raystack.frontier.v1beta1.UpdateOrganizationRequest
@@ -4261,7 +4247,7 @@ export type UpdateOrganizationRequest = Message<"raystack.frontier.v1beta1.Updat
4261
4247
  * Use `create(UpdateOrganizationRequestSchema)` to create a new message.
4262
4248
  */
4263
4249
  export const UpdateOrganizationRequestSchema: GenMessage<UpdateOrganizationRequest> = /*@__PURE__*/
4264
- messageDesc(file_raystack_frontier_v1beta1_frontier, 181);
4250
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 179);
4265
4251
 
4266
4252
  /**
4267
4253
  * @generated from message raystack.frontier.v1beta1.ListOrganizationAdminsRequest
@@ -4278,7 +4264,7 @@ export type ListOrganizationAdminsRequest = Message<"raystack.frontier.v1beta1.L
4278
4264
  * Use `create(ListOrganizationAdminsRequestSchema)` to create a new message.
4279
4265
  */
4280
4266
  export const ListOrganizationAdminsRequestSchema: GenMessage<ListOrganizationAdminsRequest> = /*@__PURE__*/
4281
- messageDesc(file_raystack_frontier_v1beta1_frontier, 182);
4267
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 180);
4282
4268
 
4283
4269
  /**
4284
4270
  * @generated from message raystack.frontier.v1beta1.ListOrganizationAdminsResponse
@@ -4295,7 +4281,7 @@ export type ListOrganizationAdminsResponse = Message<"raystack.frontier.v1beta1.
4295
4281
  * Use `create(ListOrganizationAdminsResponseSchema)` to create a new message.
4296
4282
  */
4297
4283
  export const ListOrganizationAdminsResponseSchema: GenMessage<ListOrganizationAdminsResponse> = /*@__PURE__*/
4298
- messageDesc(file_raystack_frontier_v1beta1_frontier, 183);
4284
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 181);
4299
4285
 
4300
4286
  /**
4301
4287
  * @generated from message raystack.frontier.v1beta1.ListOrganizationUsersRequest
@@ -4328,7 +4314,7 @@ export type ListOrganizationUsersRequest = Message<"raystack.frontier.v1beta1.Li
4328
4314
  * Use `create(ListOrganizationUsersRequestSchema)` to create a new message.
4329
4315
  */
4330
4316
  export const ListOrganizationUsersRequestSchema: GenMessage<ListOrganizationUsersRequest> = /*@__PURE__*/
4331
- messageDesc(file_raystack_frontier_v1beta1_frontier, 184);
4317
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 182);
4332
4318
 
4333
4319
  /**
4334
4320
  * @generated from message raystack.frontier.v1beta1.ListOrganizationUsersResponse
@@ -4350,7 +4336,7 @@ export type ListOrganizationUsersResponse = Message<"raystack.frontier.v1beta1.L
4350
4336
  * Use `create(ListOrganizationUsersResponseSchema)` to create a new message.
4351
4337
  */
4352
4338
  export const ListOrganizationUsersResponseSchema: GenMessage<ListOrganizationUsersResponse> = /*@__PURE__*/
4353
- messageDesc(file_raystack_frontier_v1beta1_frontier, 185);
4339
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 183);
4354
4340
 
4355
4341
  /**
4356
4342
  * @generated from message raystack.frontier.v1beta1.ListOrganizationUsersResponse.RolePair
@@ -4372,7 +4358,7 @@ export type ListOrganizationUsersResponse_RolePair = Message<"raystack.frontier.
4372
4358
  * Use `create(ListOrganizationUsersResponse_RolePairSchema)` to create a new message.
4373
4359
  */
4374
4360
  export const ListOrganizationUsersResponse_RolePairSchema: GenMessage<ListOrganizationUsersResponse_RolePair> = /*@__PURE__*/
4375
- messageDesc(file_raystack_frontier_v1beta1_frontier, 185, 0);
4361
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 183, 0);
4376
4362
 
4377
4363
  /**
4378
4364
  * @generated from message raystack.frontier.v1beta1.AddOrganizationUsersRequest
@@ -4394,7 +4380,7 @@ export type AddOrganizationUsersRequest = Message<"raystack.frontier.v1beta1.Add
4394
4380
  * Use `create(AddOrganizationUsersRequestSchema)` to create a new message.
4395
4381
  */
4396
4382
  export const AddOrganizationUsersRequestSchema: GenMessage<AddOrganizationUsersRequest> = /*@__PURE__*/
4397
- messageDesc(file_raystack_frontier_v1beta1_frontier, 186);
4383
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 184);
4398
4384
 
4399
4385
  /**
4400
4386
  * @generated from message raystack.frontier.v1beta1.AddOrganizationUsersResponse
@@ -4407,7 +4393,7 @@ export type AddOrganizationUsersResponse = Message<"raystack.frontier.v1beta1.Ad
4407
4393
  * Use `create(AddOrganizationUsersResponseSchema)` to create a new message.
4408
4394
  */
4409
4395
  export const AddOrganizationUsersResponseSchema: GenMessage<AddOrganizationUsersResponse> = /*@__PURE__*/
4410
- messageDesc(file_raystack_frontier_v1beta1_frontier, 187);
4396
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 185);
4411
4397
 
4412
4398
  /**
4413
4399
  * @generated from message raystack.frontier.v1beta1.RemoveOrganizationUserRequest
@@ -4429,7 +4415,7 @@ export type RemoveOrganizationUserRequest = Message<"raystack.frontier.v1beta1.R
4429
4415
  * Use `create(RemoveOrganizationUserRequestSchema)` to create a new message.
4430
4416
  */
4431
4417
  export const RemoveOrganizationUserRequestSchema: GenMessage<RemoveOrganizationUserRequest> = /*@__PURE__*/
4432
- messageDesc(file_raystack_frontier_v1beta1_frontier, 188);
4418
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 186);
4433
4419
 
4434
4420
  /**
4435
4421
  * @generated from message raystack.frontier.v1beta1.RemoveOrganizationUserResponse
@@ -4442,7 +4428,7 @@ export type RemoveOrganizationUserResponse = Message<"raystack.frontier.v1beta1.
4442
4428
  * Use `create(RemoveOrganizationUserResponseSchema)` to create a new message.
4443
4429
  */
4444
4430
  export const RemoveOrganizationUserResponseSchema: GenMessage<RemoveOrganizationUserResponse> = /*@__PURE__*/
4445
- messageDesc(file_raystack_frontier_v1beta1_frontier, 189);
4431
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 187);
4446
4432
 
4447
4433
  /**
4448
4434
  * @generated from message raystack.frontier.v1beta1.ListOrganizationServiceUsersRequest
@@ -4459,7 +4445,7 @@ export type ListOrganizationServiceUsersRequest = Message<"raystack.frontier.v1b
4459
4445
  * Use `create(ListOrganizationServiceUsersRequestSchema)` to create a new message.
4460
4446
  */
4461
4447
  export const ListOrganizationServiceUsersRequestSchema: GenMessage<ListOrganizationServiceUsersRequest> = /*@__PURE__*/
4462
- messageDesc(file_raystack_frontier_v1beta1_frontier, 190);
4448
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 188);
4463
4449
 
4464
4450
  /**
4465
4451
  * @generated from message raystack.frontier.v1beta1.ListOrganizationServiceUsersResponse
@@ -4476,7 +4462,7 @@ export type ListOrganizationServiceUsersResponse = Message<"raystack.frontier.v1
4476
4462
  * Use `create(ListOrganizationServiceUsersResponseSchema)` to create a new message.
4477
4463
  */
4478
4464
  export const ListOrganizationServiceUsersResponseSchema: GenMessage<ListOrganizationServiceUsersResponse> = /*@__PURE__*/
4479
- messageDesc(file_raystack_frontier_v1beta1_frontier, 191);
4465
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 189);
4480
4466
 
4481
4467
  /**
4482
4468
  * @generated from message raystack.frontier.v1beta1.ListOrganizationInvitationsRequest
@@ -4498,7 +4484,7 @@ export type ListOrganizationInvitationsRequest = Message<"raystack.frontier.v1be
4498
4484
  * Use `create(ListOrganizationInvitationsRequestSchema)` to create a new message.
4499
4485
  */
4500
4486
  export const ListOrganizationInvitationsRequestSchema: GenMessage<ListOrganizationInvitationsRequest> = /*@__PURE__*/
4501
- messageDesc(file_raystack_frontier_v1beta1_frontier, 192);
4487
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 190);
4502
4488
 
4503
4489
  /**
4504
4490
  * @generated from message raystack.frontier.v1beta1.ListOrganizationInvitationsResponse
@@ -4515,7 +4501,7 @@ export type ListOrganizationInvitationsResponse = Message<"raystack.frontier.v1b
4515
4501
  * Use `create(ListOrganizationInvitationsResponseSchema)` to create a new message.
4516
4502
  */
4517
4503
  export const ListOrganizationInvitationsResponseSchema: GenMessage<ListOrganizationInvitationsResponse> = /*@__PURE__*/
4518
- messageDesc(file_raystack_frontier_v1beta1_frontier, 193);
4504
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 191);
4519
4505
 
4520
4506
  /**
4521
4507
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationInvitationRequest
@@ -4547,7 +4533,7 @@ export type CreateOrganizationInvitationRequest = Message<"raystack.frontier.v1b
4547
4533
  * Use `create(CreateOrganizationInvitationRequestSchema)` to create a new message.
4548
4534
  */
4549
4535
  export const CreateOrganizationInvitationRequestSchema: GenMessage<CreateOrganizationInvitationRequest> = /*@__PURE__*/
4550
- messageDesc(file_raystack_frontier_v1beta1_frontier, 194);
4536
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 192);
4551
4537
 
4552
4538
  /**
4553
4539
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationInvitationResponse
@@ -4564,7 +4550,7 @@ export type CreateOrganizationInvitationResponse = Message<"raystack.frontier.v1
4564
4550
  * Use `create(CreateOrganizationInvitationResponseSchema)` to create a new message.
4565
4551
  */
4566
4552
  export const CreateOrganizationInvitationResponseSchema: GenMessage<CreateOrganizationInvitationResponse> = /*@__PURE__*/
4567
- messageDesc(file_raystack_frontier_v1beta1_frontier, 195);
4553
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 193);
4568
4554
 
4569
4555
  /**
4570
4556
  * @generated from message raystack.frontier.v1beta1.GetOrganizationInvitationRequest
@@ -4586,7 +4572,7 @@ export type GetOrganizationInvitationRequest = Message<"raystack.frontier.v1beta
4586
4572
  * Use `create(GetOrganizationInvitationRequestSchema)` to create a new message.
4587
4573
  */
4588
4574
  export const GetOrganizationInvitationRequestSchema: GenMessage<GetOrganizationInvitationRequest> = /*@__PURE__*/
4589
- messageDesc(file_raystack_frontier_v1beta1_frontier, 196);
4575
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 194);
4590
4576
 
4591
4577
  /**
4592
4578
  * @generated from message raystack.frontier.v1beta1.GetOrganizationInvitationResponse
@@ -4603,7 +4589,7 @@ export type GetOrganizationInvitationResponse = Message<"raystack.frontier.v1bet
4603
4589
  * Use `create(GetOrganizationInvitationResponseSchema)` to create a new message.
4604
4590
  */
4605
4591
  export const GetOrganizationInvitationResponseSchema: GenMessage<GetOrganizationInvitationResponse> = /*@__PURE__*/
4606
- messageDesc(file_raystack_frontier_v1beta1_frontier, 197);
4592
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 195);
4607
4593
 
4608
4594
  /**
4609
4595
  * @generated from message raystack.frontier.v1beta1.AcceptOrganizationInvitationRequest
@@ -4625,7 +4611,7 @@ export type AcceptOrganizationInvitationRequest = Message<"raystack.frontier.v1b
4625
4611
  * Use `create(AcceptOrganizationInvitationRequestSchema)` to create a new message.
4626
4612
  */
4627
4613
  export const AcceptOrganizationInvitationRequestSchema: GenMessage<AcceptOrganizationInvitationRequest> = /*@__PURE__*/
4628
- messageDesc(file_raystack_frontier_v1beta1_frontier, 198);
4614
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 196);
4629
4615
 
4630
4616
  /**
4631
4617
  * @generated from message raystack.frontier.v1beta1.AcceptOrganizationInvitationResponse
@@ -4638,7 +4624,7 @@ export type AcceptOrganizationInvitationResponse = Message<"raystack.frontier.v1
4638
4624
  * Use `create(AcceptOrganizationInvitationResponseSchema)` to create a new message.
4639
4625
  */
4640
4626
  export const AcceptOrganizationInvitationResponseSchema: GenMessage<AcceptOrganizationInvitationResponse> = /*@__PURE__*/
4641
- messageDesc(file_raystack_frontier_v1beta1_frontier, 199);
4627
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 197);
4642
4628
 
4643
4629
  /**
4644
4630
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationInvitationRequest
@@ -4660,7 +4646,7 @@ export type DeleteOrganizationInvitationRequest = Message<"raystack.frontier.v1b
4660
4646
  * Use `create(DeleteOrganizationInvitationRequestSchema)` to create a new message.
4661
4647
  */
4662
4648
  export const DeleteOrganizationInvitationRequestSchema: GenMessage<DeleteOrganizationInvitationRequest> = /*@__PURE__*/
4663
- messageDesc(file_raystack_frontier_v1beta1_frontier, 200);
4649
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 198);
4664
4650
 
4665
4651
  /**
4666
4652
  * @generated from message raystack.frontier.v1beta1.ListOrganizationDomainsRequest
@@ -4682,7 +4668,7 @@ export type ListOrganizationDomainsRequest = Message<"raystack.frontier.v1beta1.
4682
4668
  * Use `create(ListOrganizationDomainsRequestSchema)` to create a new message.
4683
4669
  */
4684
4670
  export const ListOrganizationDomainsRequestSchema: GenMessage<ListOrganizationDomainsRequest> = /*@__PURE__*/
4685
- messageDesc(file_raystack_frontier_v1beta1_frontier, 201);
4671
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 199);
4686
4672
 
4687
4673
  /**
4688
4674
  * @generated from message raystack.frontier.v1beta1.ListOrganizationDomainsResponse
@@ -4699,7 +4685,7 @@ export type ListOrganizationDomainsResponse = Message<"raystack.frontier.v1beta1
4699
4685
  * Use `create(ListOrganizationDomainsResponseSchema)` to create a new message.
4700
4686
  */
4701
4687
  export const ListOrganizationDomainsResponseSchema: GenMessage<ListOrganizationDomainsResponse> = /*@__PURE__*/
4702
- messageDesc(file_raystack_frontier_v1beta1_frontier, 202);
4688
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 200);
4703
4689
 
4704
4690
  /**
4705
4691
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsByDomainRequest
@@ -4716,7 +4702,7 @@ export type ListOrganizationsByDomainRequest = Message<"raystack.frontier.v1beta
4716
4702
  * Use `create(ListOrganizationsByDomainRequestSchema)` to create a new message.
4717
4703
  */
4718
4704
  export const ListOrganizationsByDomainRequestSchema: GenMessage<ListOrganizationsByDomainRequest> = /*@__PURE__*/
4719
- messageDesc(file_raystack_frontier_v1beta1_frontier, 203);
4705
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 201);
4720
4706
 
4721
4707
  /**
4722
4708
  * @generated from message raystack.frontier.v1beta1.ListOrganizationsByDomainResponse
@@ -4733,7 +4719,7 @@ export type ListOrganizationsByDomainResponse = Message<"raystack.frontier.v1bet
4733
4719
  * Use `create(ListOrganizationsByDomainResponseSchema)` to create a new message.
4734
4720
  */
4735
4721
  export const ListOrganizationsByDomainResponseSchema: GenMessage<ListOrganizationsByDomainResponse> = /*@__PURE__*/
4736
- messageDesc(file_raystack_frontier_v1beta1_frontier, 204);
4722
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 202);
4737
4723
 
4738
4724
  /**
4739
4725
  * @generated from message raystack.frontier.v1beta1.JoinOrganizationRequest
@@ -4750,7 +4736,7 @@ export type JoinOrganizationRequest = Message<"raystack.frontier.v1beta1.JoinOrg
4750
4736
  * Use `create(JoinOrganizationRequestSchema)` to create a new message.
4751
4737
  */
4752
4738
  export const JoinOrganizationRequestSchema: GenMessage<JoinOrganizationRequest> = /*@__PURE__*/
4753
- messageDesc(file_raystack_frontier_v1beta1_frontier, 205);
4739
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 203);
4754
4740
 
4755
4741
  /**
4756
4742
  * @generated from message raystack.frontier.v1beta1.JoinOrganizationResponse
@@ -4763,7 +4749,7 @@ export type JoinOrganizationResponse = Message<"raystack.frontier.v1beta1.JoinOr
4763
4749
  * Use `create(JoinOrganizationResponseSchema)` to create a new message.
4764
4750
  */
4765
4751
  export const JoinOrganizationResponseSchema: GenMessage<JoinOrganizationResponse> = /*@__PURE__*/
4766
- messageDesc(file_raystack_frontier_v1beta1_frontier, 206);
4752
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 204);
4767
4753
 
4768
4754
  /**
4769
4755
  * @generated from message raystack.frontier.v1beta1.GetOrganizationDomainRequest
@@ -4785,7 +4771,7 @@ export type GetOrganizationDomainRequest = Message<"raystack.frontier.v1beta1.Ge
4785
4771
  * Use `create(GetOrganizationDomainRequestSchema)` to create a new message.
4786
4772
  */
4787
4773
  export const GetOrganizationDomainRequestSchema: GenMessage<GetOrganizationDomainRequest> = /*@__PURE__*/
4788
- messageDesc(file_raystack_frontier_v1beta1_frontier, 207);
4774
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 205);
4789
4775
 
4790
4776
  /**
4791
4777
  * @generated from message raystack.frontier.v1beta1.GetOrganizationDomainResponse
@@ -4802,7 +4788,7 @@ export type GetOrganizationDomainResponse = Message<"raystack.frontier.v1beta1.G
4802
4788
  * Use `create(GetOrganizationDomainResponseSchema)` to create a new message.
4803
4789
  */
4804
4790
  export const GetOrganizationDomainResponseSchema: GenMessage<GetOrganizationDomainResponse> = /*@__PURE__*/
4805
- messageDesc(file_raystack_frontier_v1beta1_frontier, 208);
4791
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 206);
4806
4792
 
4807
4793
  /**
4808
4794
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationDomainRequest
@@ -4824,7 +4810,7 @@ export type CreateOrganizationDomainRequest = Message<"raystack.frontier.v1beta1
4824
4810
  * Use `create(CreateOrganizationDomainRequestSchema)` to create a new message.
4825
4811
  */
4826
4812
  export const CreateOrganizationDomainRequestSchema: GenMessage<CreateOrganizationDomainRequest> = /*@__PURE__*/
4827
- messageDesc(file_raystack_frontier_v1beta1_frontier, 209);
4813
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 207);
4828
4814
 
4829
4815
  /**
4830
4816
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationDomainResponse
@@ -4841,7 +4827,7 @@ export type CreateOrganizationDomainResponse = Message<"raystack.frontier.v1beta
4841
4827
  * Use `create(CreateOrganizationDomainResponseSchema)` to create a new message.
4842
4828
  */
4843
4829
  export const CreateOrganizationDomainResponseSchema: GenMessage<CreateOrganizationDomainResponse> = /*@__PURE__*/
4844
- messageDesc(file_raystack_frontier_v1beta1_frontier, 210);
4830
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 208);
4845
4831
 
4846
4832
  /**
4847
4833
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationDomainRequest
@@ -4863,7 +4849,7 @@ export type DeleteOrganizationDomainRequest = Message<"raystack.frontier.v1beta1
4863
4849
  * Use `create(DeleteOrganizationDomainRequestSchema)` to create a new message.
4864
4850
  */
4865
4851
  export const DeleteOrganizationDomainRequestSchema: GenMessage<DeleteOrganizationDomainRequest> = /*@__PURE__*/
4866
- messageDesc(file_raystack_frontier_v1beta1_frontier, 211);
4852
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 209);
4867
4853
 
4868
4854
  /**
4869
4855
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationDomainResponse
@@ -4876,7 +4862,7 @@ export type DeleteOrganizationDomainResponse = Message<"raystack.frontier.v1beta
4876
4862
  * Use `create(DeleteOrganizationDomainResponseSchema)` to create a new message.
4877
4863
  */
4878
4864
  export const DeleteOrganizationDomainResponseSchema: GenMessage<DeleteOrganizationDomainResponse> = /*@__PURE__*/
4879
- messageDesc(file_raystack_frontier_v1beta1_frontier, 212);
4865
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 210);
4880
4866
 
4881
4867
  /**
4882
4868
  * @generated from message raystack.frontier.v1beta1.VerifyOrganizationDomainRequest
@@ -4898,7 +4884,7 @@ export type VerifyOrganizationDomainRequest = Message<"raystack.frontier.v1beta1
4898
4884
  * Use `create(VerifyOrganizationDomainRequestSchema)` to create a new message.
4899
4885
  */
4900
4886
  export const VerifyOrganizationDomainRequestSchema: GenMessage<VerifyOrganizationDomainRequest> = /*@__PURE__*/
4901
- messageDesc(file_raystack_frontier_v1beta1_frontier, 213);
4887
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 211);
4902
4888
 
4903
4889
  /**
4904
4890
  * @generated from message raystack.frontier.v1beta1.VerifyOrganizationDomainResponse
@@ -4915,7 +4901,7 @@ export type VerifyOrganizationDomainResponse = Message<"raystack.frontier.v1beta
4915
4901
  * Use `create(VerifyOrganizationDomainResponseSchema)` to create a new message.
4916
4902
  */
4917
4903
  export const VerifyOrganizationDomainResponseSchema: GenMessage<VerifyOrganizationDomainResponse> = /*@__PURE__*/
4918
- messageDesc(file_raystack_frontier_v1beta1_frontier, 214);
4904
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 212);
4919
4905
 
4920
4906
  /**
4921
4907
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationInvitationResponse
@@ -4928,7 +4914,7 @@ export type DeleteOrganizationInvitationResponse = Message<"raystack.frontier.v1
4928
4914
  * Use `create(DeleteOrganizationInvitationResponseSchema)` to create a new message.
4929
4915
  */
4930
4916
  export const DeleteOrganizationInvitationResponseSchema: GenMessage<DeleteOrganizationInvitationResponse> = /*@__PURE__*/
4931
- messageDesc(file_raystack_frontier_v1beta1_frontier, 215);
4917
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 213);
4932
4918
 
4933
4919
  /**
4934
4920
  * @generated from message raystack.frontier.v1beta1.EnableOrganizationRequest
@@ -4945,7 +4931,7 @@ export type EnableOrganizationRequest = Message<"raystack.frontier.v1beta1.Enabl
4945
4931
  * Use `create(EnableOrganizationRequestSchema)` to create a new message.
4946
4932
  */
4947
4933
  export const EnableOrganizationRequestSchema: GenMessage<EnableOrganizationRequest> = /*@__PURE__*/
4948
- messageDesc(file_raystack_frontier_v1beta1_frontier, 216);
4934
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 214);
4949
4935
 
4950
4936
  /**
4951
4937
  * @generated from message raystack.frontier.v1beta1.EnableOrganizationResponse
@@ -4958,7 +4944,7 @@ export type EnableOrganizationResponse = Message<"raystack.frontier.v1beta1.Enab
4958
4944
  * Use `create(EnableOrganizationResponseSchema)` to create a new message.
4959
4945
  */
4960
4946
  export const EnableOrganizationResponseSchema: GenMessage<EnableOrganizationResponse> = /*@__PURE__*/
4961
- messageDesc(file_raystack_frontier_v1beta1_frontier, 217);
4947
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 215);
4962
4948
 
4963
4949
  /**
4964
4950
  * @generated from message raystack.frontier.v1beta1.DisableOrganizationRequest
@@ -4975,7 +4961,7 @@ export type DisableOrganizationRequest = Message<"raystack.frontier.v1beta1.Disa
4975
4961
  * Use `create(DisableOrganizationRequestSchema)` to create a new message.
4976
4962
  */
4977
4963
  export const DisableOrganizationRequestSchema: GenMessage<DisableOrganizationRequest> = /*@__PURE__*/
4978
- messageDesc(file_raystack_frontier_v1beta1_frontier, 218);
4964
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 216);
4979
4965
 
4980
4966
  /**
4981
4967
  * @generated from message raystack.frontier.v1beta1.DisableOrganizationResponse
@@ -4988,7 +4974,7 @@ export type DisableOrganizationResponse = Message<"raystack.frontier.v1beta1.Dis
4988
4974
  * Use `create(DisableOrganizationResponseSchema)` to create a new message.
4989
4975
  */
4990
4976
  export const DisableOrganizationResponseSchema: GenMessage<DisableOrganizationResponse> = /*@__PURE__*/
4991
- messageDesc(file_raystack_frontier_v1beta1_frontier, 219);
4977
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 217);
4992
4978
 
4993
4979
  /**
4994
4980
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationRequest
@@ -5005,7 +4991,7 @@ export type DeleteOrganizationRequest = Message<"raystack.frontier.v1beta1.Delet
5005
4991
  * Use `create(DeleteOrganizationRequestSchema)` to create a new message.
5006
4992
  */
5007
4993
  export const DeleteOrganizationRequestSchema: GenMessage<DeleteOrganizationRequest> = /*@__PURE__*/
5008
- messageDesc(file_raystack_frontier_v1beta1_frontier, 220);
4994
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 218);
5009
4995
 
5010
4996
  /**
5011
4997
  * @generated from message raystack.frontier.v1beta1.DeleteOrganizationResponse
@@ -5018,7 +5004,7 @@ export type DeleteOrganizationResponse = Message<"raystack.frontier.v1beta1.Dele
5018
5004
  * Use `create(DeleteOrganizationResponseSchema)` to create a new message.
5019
5005
  */
5020
5006
  export const DeleteOrganizationResponseSchema: GenMessage<DeleteOrganizationResponse> = /*@__PURE__*/
5021
- messageDesc(file_raystack_frontier_v1beta1_frontier, 221);
5007
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 219);
5022
5008
 
5023
5009
  /**
5024
5010
  * @generated from message raystack.frontier.v1beta1.GetOrganizationKycRequest
@@ -5035,7 +5021,7 @@ export type GetOrganizationKycRequest = Message<"raystack.frontier.v1beta1.GetOr
5035
5021
  * Use `create(GetOrganizationKycRequestSchema)` to create a new message.
5036
5022
  */
5037
5023
  export const GetOrganizationKycRequestSchema: GenMessage<GetOrganizationKycRequest> = /*@__PURE__*/
5038
- messageDesc(file_raystack_frontier_v1beta1_frontier, 222);
5024
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 220);
5039
5025
 
5040
5026
  /**
5041
5027
  * @generated from message raystack.frontier.v1beta1.GetOrganizationKycResponse
@@ -5052,7 +5038,7 @@ export type GetOrganizationKycResponse = Message<"raystack.frontier.v1beta1.GetO
5052
5038
  * Use `create(GetOrganizationKycResponseSchema)` to create a new message.
5053
5039
  */
5054
5040
  export const GetOrganizationKycResponseSchema: GenMessage<GetOrganizationKycResponse> = /*@__PURE__*/
5055
- messageDesc(file_raystack_frontier_v1beta1_frontier, 223);
5041
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 221);
5056
5042
 
5057
5043
  /**
5058
5044
  * @generated from message raystack.frontier.v1beta1.ProjectRequestBody
@@ -5084,7 +5070,7 @@ export type ProjectRequestBody = Message<"raystack.frontier.v1beta1.ProjectReque
5084
5070
  * Use `create(ProjectRequestBodySchema)` to create a new message.
5085
5071
  */
5086
5072
  export const ProjectRequestBodySchema: GenMessage<ProjectRequestBody> = /*@__PURE__*/
5087
- messageDesc(file_raystack_frontier_v1beta1_frontier, 224);
5073
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 222);
5088
5074
 
5089
5075
  /**
5090
5076
  * @generated from message raystack.frontier.v1beta1.CreateProjectRequest
@@ -5101,7 +5087,7 @@ export type CreateProjectRequest = Message<"raystack.frontier.v1beta1.CreateProj
5101
5087
  * Use `create(CreateProjectRequestSchema)` to create a new message.
5102
5088
  */
5103
5089
  export const CreateProjectRequestSchema: GenMessage<CreateProjectRequest> = /*@__PURE__*/
5104
- messageDesc(file_raystack_frontier_v1beta1_frontier, 225);
5090
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 223);
5105
5091
 
5106
5092
  /**
5107
5093
  * @generated from message raystack.frontier.v1beta1.CreateProjectResponse
@@ -5118,7 +5104,7 @@ export type CreateProjectResponse = Message<"raystack.frontier.v1beta1.CreatePro
5118
5104
  * Use `create(CreateProjectResponseSchema)` to create a new message.
5119
5105
  */
5120
5106
  export const CreateProjectResponseSchema: GenMessage<CreateProjectResponse> = /*@__PURE__*/
5121
- messageDesc(file_raystack_frontier_v1beta1_frontier, 226);
5107
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 224);
5122
5108
 
5123
5109
  /**
5124
5110
  * @generated from message raystack.frontier.v1beta1.ListOrganizationProjectsRequest
@@ -5145,7 +5131,7 @@ export type ListOrganizationProjectsRequest = Message<"raystack.frontier.v1beta1
5145
5131
  * Use `create(ListOrganizationProjectsRequestSchema)` to create a new message.
5146
5132
  */
5147
5133
  export const ListOrganizationProjectsRequestSchema: GenMessage<ListOrganizationProjectsRequest> = /*@__PURE__*/
5148
- messageDesc(file_raystack_frontier_v1beta1_frontier, 227);
5134
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 225);
5149
5135
 
5150
5136
  /**
5151
5137
  * @generated from message raystack.frontier.v1beta1.ListOrganizationProjectsResponse
@@ -5162,7 +5148,7 @@ export type ListOrganizationProjectsResponse = Message<"raystack.frontier.v1beta
5162
5148
  * Use `create(ListOrganizationProjectsResponseSchema)` to create a new message.
5163
5149
  */
5164
5150
  export const ListOrganizationProjectsResponseSchema: GenMessage<ListOrganizationProjectsResponse> = /*@__PURE__*/
5165
- messageDesc(file_raystack_frontier_v1beta1_frontier, 228);
5151
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 226);
5166
5152
 
5167
5153
  /**
5168
5154
  * @generated from message raystack.frontier.v1beta1.GetProjectRequest
@@ -5179,7 +5165,7 @@ export type GetProjectRequest = Message<"raystack.frontier.v1beta1.GetProjectReq
5179
5165
  * Use `create(GetProjectRequestSchema)` to create a new message.
5180
5166
  */
5181
5167
  export const GetProjectRequestSchema: GenMessage<GetProjectRequest> = /*@__PURE__*/
5182
- messageDesc(file_raystack_frontier_v1beta1_frontier, 229);
5168
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 227);
5183
5169
 
5184
5170
  /**
5185
5171
  * @generated from message raystack.frontier.v1beta1.GetProjectResponse
@@ -5196,7 +5182,7 @@ export type GetProjectResponse = Message<"raystack.frontier.v1beta1.GetProjectRe
5196
5182
  * Use `create(GetProjectResponseSchema)` to create a new message.
5197
5183
  */
5198
5184
  export const GetProjectResponseSchema: GenMessage<GetProjectResponse> = /*@__PURE__*/
5199
- messageDesc(file_raystack_frontier_v1beta1_frontier, 230);
5185
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 228);
5200
5186
 
5201
5187
  /**
5202
5188
  * @generated from message raystack.frontier.v1beta1.UpdateProjectRequest
@@ -5218,7 +5204,7 @@ export type UpdateProjectRequest = Message<"raystack.frontier.v1beta1.UpdateProj
5218
5204
  * Use `create(UpdateProjectRequestSchema)` to create a new message.
5219
5205
  */
5220
5206
  export const UpdateProjectRequestSchema: GenMessage<UpdateProjectRequest> = /*@__PURE__*/
5221
- messageDesc(file_raystack_frontier_v1beta1_frontier, 231);
5207
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 229);
5222
5208
 
5223
5209
  /**
5224
5210
  * @generated from message raystack.frontier.v1beta1.UpdateProjectResponse
@@ -5235,7 +5221,7 @@ export type UpdateProjectResponse = Message<"raystack.frontier.v1beta1.UpdatePro
5235
5221
  * Use `create(UpdateProjectResponseSchema)` to create a new message.
5236
5222
  */
5237
5223
  export const UpdateProjectResponseSchema: GenMessage<UpdateProjectResponse> = /*@__PURE__*/
5238
- messageDesc(file_raystack_frontier_v1beta1_frontier, 232);
5224
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 230);
5239
5225
 
5240
5226
  /**
5241
5227
  * @generated from message raystack.frontier.v1beta1.ListProjectAdminsRequest
@@ -5252,7 +5238,7 @@ export type ListProjectAdminsRequest = Message<"raystack.frontier.v1beta1.ListPr
5252
5238
  * Use `create(ListProjectAdminsRequestSchema)` to create a new message.
5253
5239
  */
5254
5240
  export const ListProjectAdminsRequestSchema: GenMessage<ListProjectAdminsRequest> = /*@__PURE__*/
5255
- messageDesc(file_raystack_frontier_v1beta1_frontier, 233);
5241
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 231);
5256
5242
 
5257
5243
  /**
5258
5244
  * @generated from message raystack.frontier.v1beta1.ListProjectAdminsResponse
@@ -5269,7 +5255,7 @@ export type ListProjectAdminsResponse = Message<"raystack.frontier.v1beta1.ListP
5269
5255
  * Use `create(ListProjectAdminsResponseSchema)` to create a new message.
5270
5256
  */
5271
5257
  export const ListProjectAdminsResponseSchema: GenMessage<ListProjectAdminsResponse> = /*@__PURE__*/
5272
- messageDesc(file_raystack_frontier_v1beta1_frontier, 234);
5258
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 232);
5273
5259
 
5274
5260
  /**
5275
5261
  * @generated from message raystack.frontier.v1beta1.ListProjectUsersRequest
@@ -5296,7 +5282,7 @@ export type ListProjectUsersRequest = Message<"raystack.frontier.v1beta1.ListPro
5296
5282
  * Use `create(ListProjectUsersRequestSchema)` to create a new message.
5297
5283
  */
5298
5284
  export const ListProjectUsersRequestSchema: GenMessage<ListProjectUsersRequest> = /*@__PURE__*/
5299
- messageDesc(file_raystack_frontier_v1beta1_frontier, 235);
5285
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 233);
5300
5286
 
5301
5287
  /**
5302
5288
  * @generated from message raystack.frontier.v1beta1.ListProjectUsersResponse
@@ -5318,7 +5304,7 @@ export type ListProjectUsersResponse = Message<"raystack.frontier.v1beta1.ListPr
5318
5304
  * Use `create(ListProjectUsersResponseSchema)` to create a new message.
5319
5305
  */
5320
5306
  export const ListProjectUsersResponseSchema: GenMessage<ListProjectUsersResponse> = /*@__PURE__*/
5321
- messageDesc(file_raystack_frontier_v1beta1_frontier, 236);
5307
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 234);
5322
5308
 
5323
5309
  /**
5324
5310
  * @generated from message raystack.frontier.v1beta1.ListProjectUsersResponse.RolePair
@@ -5340,7 +5326,7 @@ export type ListProjectUsersResponse_RolePair = Message<"raystack.frontier.v1bet
5340
5326
  * Use `create(ListProjectUsersResponse_RolePairSchema)` to create a new message.
5341
5327
  */
5342
5328
  export const ListProjectUsersResponse_RolePairSchema: GenMessage<ListProjectUsersResponse_RolePair> = /*@__PURE__*/
5343
- messageDesc(file_raystack_frontier_v1beta1_frontier, 236, 0);
5329
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 234, 0);
5344
5330
 
5345
5331
  /**
5346
5332
  * @generated from message raystack.frontier.v1beta1.ListProjectServiceUsersRequest
@@ -5362,7 +5348,7 @@ export type ListProjectServiceUsersRequest = Message<"raystack.frontier.v1beta1.
5362
5348
  * Use `create(ListProjectServiceUsersRequestSchema)` to create a new message.
5363
5349
  */
5364
5350
  export const ListProjectServiceUsersRequestSchema: GenMessage<ListProjectServiceUsersRequest> = /*@__PURE__*/
5365
- messageDesc(file_raystack_frontier_v1beta1_frontier, 237);
5351
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 235);
5366
5352
 
5367
5353
  /**
5368
5354
  * @generated from message raystack.frontier.v1beta1.ListProjectServiceUsersResponse
@@ -5384,7 +5370,7 @@ export type ListProjectServiceUsersResponse = Message<"raystack.frontier.v1beta1
5384
5370
  * Use `create(ListProjectServiceUsersResponseSchema)` to create a new message.
5385
5371
  */
5386
5372
  export const ListProjectServiceUsersResponseSchema: GenMessage<ListProjectServiceUsersResponse> = /*@__PURE__*/
5387
- messageDesc(file_raystack_frontier_v1beta1_frontier, 238);
5373
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 236);
5388
5374
 
5389
5375
  /**
5390
5376
  * @generated from message raystack.frontier.v1beta1.ListProjectServiceUsersResponse.RolePair
@@ -5406,7 +5392,7 @@ export type ListProjectServiceUsersResponse_RolePair = Message<"raystack.frontie
5406
5392
  * Use `create(ListProjectServiceUsersResponse_RolePairSchema)` to create a new message.
5407
5393
  */
5408
5394
  export const ListProjectServiceUsersResponse_RolePairSchema: GenMessage<ListProjectServiceUsersResponse_RolePair> = /*@__PURE__*/
5409
- messageDesc(file_raystack_frontier_v1beta1_frontier, 238, 0);
5395
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 236, 0);
5410
5396
 
5411
5397
  /**
5412
5398
  * @generated from message raystack.frontier.v1beta1.ListProjectGroupsRequest
@@ -5428,7 +5414,7 @@ export type ListProjectGroupsRequest = Message<"raystack.frontier.v1beta1.ListPr
5428
5414
  * Use `create(ListProjectGroupsRequestSchema)` to create a new message.
5429
5415
  */
5430
5416
  export const ListProjectGroupsRequestSchema: GenMessage<ListProjectGroupsRequest> = /*@__PURE__*/
5431
- messageDesc(file_raystack_frontier_v1beta1_frontier, 239);
5417
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 237);
5432
5418
 
5433
5419
  /**
5434
5420
  * @generated from message raystack.frontier.v1beta1.ListProjectGroupsResponse
@@ -5450,7 +5436,7 @@ export type ListProjectGroupsResponse = Message<"raystack.frontier.v1beta1.ListP
5450
5436
  * Use `create(ListProjectGroupsResponseSchema)` to create a new message.
5451
5437
  */
5452
5438
  export const ListProjectGroupsResponseSchema: GenMessage<ListProjectGroupsResponse> = /*@__PURE__*/
5453
- messageDesc(file_raystack_frontier_v1beta1_frontier, 240);
5439
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 238);
5454
5440
 
5455
5441
  /**
5456
5442
  * @generated from message raystack.frontier.v1beta1.ListProjectGroupsResponse.RolePair
@@ -5472,7 +5458,7 @@ export type ListProjectGroupsResponse_RolePair = Message<"raystack.frontier.v1be
5472
5458
  * Use `create(ListProjectGroupsResponse_RolePairSchema)` to create a new message.
5473
5459
  */
5474
5460
  export const ListProjectGroupsResponse_RolePairSchema: GenMessage<ListProjectGroupsResponse_RolePair> = /*@__PURE__*/
5475
- messageDesc(file_raystack_frontier_v1beta1_frontier, 240, 0);
5461
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 238, 0);
5476
5462
 
5477
5463
  /**
5478
5464
  * @generated from message raystack.frontier.v1beta1.EnableProjectRequest
@@ -5489,7 +5475,7 @@ export type EnableProjectRequest = Message<"raystack.frontier.v1beta1.EnableProj
5489
5475
  * Use `create(EnableProjectRequestSchema)` to create a new message.
5490
5476
  */
5491
5477
  export const EnableProjectRequestSchema: GenMessage<EnableProjectRequest> = /*@__PURE__*/
5492
- messageDesc(file_raystack_frontier_v1beta1_frontier, 241);
5478
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 239);
5493
5479
 
5494
5480
  /**
5495
5481
  * @generated from message raystack.frontier.v1beta1.EnableProjectResponse
@@ -5502,7 +5488,7 @@ export type EnableProjectResponse = Message<"raystack.frontier.v1beta1.EnablePro
5502
5488
  * Use `create(EnableProjectResponseSchema)` to create a new message.
5503
5489
  */
5504
5490
  export const EnableProjectResponseSchema: GenMessage<EnableProjectResponse> = /*@__PURE__*/
5505
- messageDesc(file_raystack_frontier_v1beta1_frontier, 242);
5491
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 240);
5506
5492
 
5507
5493
  /**
5508
5494
  * @generated from message raystack.frontier.v1beta1.DisableProjectRequest
@@ -5519,7 +5505,7 @@ export type DisableProjectRequest = Message<"raystack.frontier.v1beta1.DisablePr
5519
5505
  * Use `create(DisableProjectRequestSchema)` to create a new message.
5520
5506
  */
5521
5507
  export const DisableProjectRequestSchema: GenMessage<DisableProjectRequest> = /*@__PURE__*/
5522
- messageDesc(file_raystack_frontier_v1beta1_frontier, 243);
5508
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 241);
5523
5509
 
5524
5510
  /**
5525
5511
  * @generated from message raystack.frontier.v1beta1.DisableProjectResponse
@@ -5532,7 +5518,7 @@ export type DisableProjectResponse = Message<"raystack.frontier.v1beta1.DisableP
5532
5518
  * Use `create(DisableProjectResponseSchema)` to create a new message.
5533
5519
  */
5534
5520
  export const DisableProjectResponseSchema: GenMessage<DisableProjectResponse> = /*@__PURE__*/
5535
- messageDesc(file_raystack_frontier_v1beta1_frontier, 244);
5521
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 242);
5536
5522
 
5537
5523
  /**
5538
5524
  * @generated from message raystack.frontier.v1beta1.DeleteProjectRequest
@@ -5549,7 +5535,7 @@ export type DeleteProjectRequest = Message<"raystack.frontier.v1beta1.DeleteProj
5549
5535
  * Use `create(DeleteProjectRequestSchema)` to create a new message.
5550
5536
  */
5551
5537
  export const DeleteProjectRequestSchema: GenMessage<DeleteProjectRequest> = /*@__PURE__*/
5552
- messageDesc(file_raystack_frontier_v1beta1_frontier, 245);
5538
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 243);
5553
5539
 
5554
5540
  /**
5555
5541
  * @generated from message raystack.frontier.v1beta1.DeleteProjectResponse
@@ -5562,7 +5548,7 @@ export type DeleteProjectResponse = Message<"raystack.frontier.v1beta1.DeletePro
5562
5548
  * Use `create(DeleteProjectResponseSchema)` to create a new message.
5563
5549
  */
5564
5550
  export const DeleteProjectResponseSchema: GenMessage<DeleteProjectResponse> = /*@__PURE__*/
5565
- messageDesc(file_raystack_frontier_v1beta1_frontier, 246);
5551
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 244);
5566
5552
 
5567
5553
  /**
5568
5554
  * @generated from message raystack.frontier.v1beta1.PolicyRequestBody
@@ -5599,7 +5585,7 @@ export type PolicyRequestBody = Message<"raystack.frontier.v1beta1.PolicyRequest
5599
5585
  * Use `create(PolicyRequestBodySchema)` to create a new message.
5600
5586
  */
5601
5587
  export const PolicyRequestBodySchema: GenMessage<PolicyRequestBody> = /*@__PURE__*/
5602
- messageDesc(file_raystack_frontier_v1beta1_frontier, 247);
5588
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 245);
5603
5589
 
5604
5590
  /**
5605
5591
  * @generated from message raystack.frontier.v1beta1.CreatePolicyForProjectBody
@@ -5626,7 +5612,7 @@ export type CreatePolicyForProjectBody = Message<"raystack.frontier.v1beta1.Crea
5626
5612
  * Use `create(CreatePolicyForProjectBodySchema)` to create a new message.
5627
5613
  */
5628
5614
  export const CreatePolicyForProjectBodySchema: GenMessage<CreatePolicyForProjectBody> = /*@__PURE__*/
5629
- messageDesc(file_raystack_frontier_v1beta1_frontier, 248);
5615
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 246);
5630
5616
 
5631
5617
  /**
5632
5618
  * @generated from message raystack.frontier.v1beta1.GetPermissionRequest
@@ -5643,7 +5629,7 @@ export type GetPermissionRequest = Message<"raystack.frontier.v1beta1.GetPermiss
5643
5629
  * Use `create(GetPermissionRequestSchema)` to create a new message.
5644
5630
  */
5645
5631
  export const GetPermissionRequestSchema: GenMessage<GetPermissionRequest> = /*@__PURE__*/
5646
- messageDesc(file_raystack_frontier_v1beta1_frontier, 249);
5632
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 247);
5647
5633
 
5648
5634
  /**
5649
5635
  * @generated from message raystack.frontier.v1beta1.GetPermissionResponse
@@ -5660,7 +5646,7 @@ export type GetPermissionResponse = Message<"raystack.frontier.v1beta1.GetPermis
5660
5646
  * Use `create(GetPermissionResponseSchema)` to create a new message.
5661
5647
  */
5662
5648
  export const GetPermissionResponseSchema: GenMessage<GetPermissionResponse> = /*@__PURE__*/
5663
- messageDesc(file_raystack_frontier_v1beta1_frontier, 250);
5649
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 248);
5664
5650
 
5665
5651
  /**
5666
5652
  * @generated from message raystack.frontier.v1beta1.ListPermissionsRequest
@@ -5673,7 +5659,7 @@ export type ListPermissionsRequest = Message<"raystack.frontier.v1beta1.ListPerm
5673
5659
  * Use `create(ListPermissionsRequestSchema)` to create a new message.
5674
5660
  */
5675
5661
  export const ListPermissionsRequestSchema: GenMessage<ListPermissionsRequest> = /*@__PURE__*/
5676
- messageDesc(file_raystack_frontier_v1beta1_frontier, 251);
5662
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 249);
5677
5663
 
5678
5664
  /**
5679
5665
  * @generated from message raystack.frontier.v1beta1.ListPermissionsResponse
@@ -5690,7 +5676,7 @@ export type ListPermissionsResponse = Message<"raystack.frontier.v1beta1.ListPer
5690
5676
  * Use `create(ListPermissionsResponseSchema)` to create a new message.
5691
5677
  */
5692
5678
  export const ListPermissionsResponseSchema: GenMessage<ListPermissionsResponse> = /*@__PURE__*/
5693
- messageDesc(file_raystack_frontier_v1beta1_frontier, 252);
5679
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 250);
5694
5680
 
5695
5681
  /**
5696
5682
  * @generated from message raystack.frontier.v1beta1.ListNamespacesRequest
@@ -5703,7 +5689,7 @@ export type ListNamespacesRequest = Message<"raystack.frontier.v1beta1.ListNames
5703
5689
  * Use `create(ListNamespacesRequestSchema)` to create a new message.
5704
5690
  */
5705
5691
  export const ListNamespacesRequestSchema: GenMessage<ListNamespacesRequest> = /*@__PURE__*/
5706
- messageDesc(file_raystack_frontier_v1beta1_frontier, 253);
5692
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 251);
5707
5693
 
5708
5694
  /**
5709
5695
  * @generated from message raystack.frontier.v1beta1.ListNamespacesResponse
@@ -5720,7 +5706,7 @@ export type ListNamespacesResponse = Message<"raystack.frontier.v1beta1.ListName
5720
5706
  * Use `create(ListNamespacesResponseSchema)` to create a new message.
5721
5707
  */
5722
5708
  export const ListNamespacesResponseSchema: GenMessage<ListNamespacesResponse> = /*@__PURE__*/
5723
- messageDesc(file_raystack_frontier_v1beta1_frontier, 254);
5709
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 252);
5724
5710
 
5725
5711
  /**
5726
5712
  * @generated from message raystack.frontier.v1beta1.GetNamespaceRequest
@@ -5737,7 +5723,7 @@ export type GetNamespaceRequest = Message<"raystack.frontier.v1beta1.GetNamespac
5737
5723
  * Use `create(GetNamespaceRequestSchema)` to create a new message.
5738
5724
  */
5739
5725
  export const GetNamespaceRequestSchema: GenMessage<GetNamespaceRequest> = /*@__PURE__*/
5740
- messageDesc(file_raystack_frontier_v1beta1_frontier, 255);
5726
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 253);
5741
5727
 
5742
5728
  /**
5743
5729
  * @generated from message raystack.frontier.v1beta1.GetNamespaceResponse
@@ -5754,7 +5740,7 @@ export type GetNamespaceResponse = Message<"raystack.frontier.v1beta1.GetNamespa
5754
5740
  * Use `create(GetNamespaceResponseSchema)` to create a new message.
5755
5741
  */
5756
5742
  export const GetNamespaceResponseSchema: GenMessage<GetNamespaceResponse> = /*@__PURE__*/
5757
- messageDesc(file_raystack_frontier_v1beta1_frontier, 256);
5743
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 254);
5758
5744
 
5759
5745
  /**
5760
5746
  * @generated from message raystack.frontier.v1beta1.CreatePolicyRequest
@@ -5771,7 +5757,7 @@ export type CreatePolicyRequest = Message<"raystack.frontier.v1beta1.CreatePolic
5771
5757
  * Use `create(CreatePolicyRequestSchema)` to create a new message.
5772
5758
  */
5773
5759
  export const CreatePolicyRequestSchema: GenMessage<CreatePolicyRequest> = /*@__PURE__*/
5774
- messageDesc(file_raystack_frontier_v1beta1_frontier, 257);
5760
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 255);
5775
5761
 
5776
5762
  /**
5777
5763
  * @generated from message raystack.frontier.v1beta1.CreatePolicyResponse
@@ -5788,7 +5774,7 @@ export type CreatePolicyResponse = Message<"raystack.frontier.v1beta1.CreatePoli
5788
5774
  * Use `create(CreatePolicyResponseSchema)` to create a new message.
5789
5775
  */
5790
5776
  export const CreatePolicyResponseSchema: GenMessage<CreatePolicyResponse> = /*@__PURE__*/
5791
- messageDesc(file_raystack_frontier_v1beta1_frontier, 258);
5777
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 256);
5792
5778
 
5793
5779
  /**
5794
5780
  * @generated from message raystack.frontier.v1beta1.GetPolicyRequest
@@ -5805,7 +5791,7 @@ export type GetPolicyRequest = Message<"raystack.frontier.v1beta1.GetPolicyReque
5805
5791
  * Use `create(GetPolicyRequestSchema)` to create a new message.
5806
5792
  */
5807
5793
  export const GetPolicyRequestSchema: GenMessage<GetPolicyRequest> = /*@__PURE__*/
5808
- messageDesc(file_raystack_frontier_v1beta1_frontier, 259);
5794
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 257);
5809
5795
 
5810
5796
  /**
5811
5797
  * @generated from message raystack.frontier.v1beta1.GetPolicyResponse
@@ -5822,7 +5808,7 @@ export type GetPolicyResponse = Message<"raystack.frontier.v1beta1.GetPolicyResp
5822
5808
  * Use `create(GetPolicyResponseSchema)` to create a new message.
5823
5809
  */
5824
5810
  export const GetPolicyResponseSchema: GenMessage<GetPolicyResponse> = /*@__PURE__*/
5825
- messageDesc(file_raystack_frontier_v1beta1_frontier, 260);
5811
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 258);
5826
5812
 
5827
5813
  /**
5828
5814
  * @generated from message raystack.frontier.v1beta1.ListPoliciesRequest
@@ -5859,7 +5845,7 @@ export type ListPoliciesRequest = Message<"raystack.frontier.v1beta1.ListPolicie
5859
5845
  * Use `create(ListPoliciesRequestSchema)` to create a new message.
5860
5846
  */
5861
5847
  export const ListPoliciesRequestSchema: GenMessage<ListPoliciesRequest> = /*@__PURE__*/
5862
- messageDesc(file_raystack_frontier_v1beta1_frontier, 261);
5848
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 259);
5863
5849
 
5864
5850
  /**
5865
5851
  * @generated from message raystack.frontier.v1beta1.ListPoliciesResponse
@@ -5876,7 +5862,7 @@ export type ListPoliciesResponse = Message<"raystack.frontier.v1beta1.ListPolici
5876
5862
  * Use `create(ListPoliciesResponseSchema)` to create a new message.
5877
5863
  */
5878
5864
  export const ListPoliciesResponseSchema: GenMessage<ListPoliciesResponse> = /*@__PURE__*/
5879
- messageDesc(file_raystack_frontier_v1beta1_frontier, 262);
5865
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 260);
5880
5866
 
5881
5867
  /**
5882
5868
  * @generated from message raystack.frontier.v1beta1.UpdatePolicyRequest
@@ -5898,7 +5884,7 @@ export type UpdatePolicyRequest = Message<"raystack.frontier.v1beta1.UpdatePolic
5898
5884
  * Use `create(UpdatePolicyRequestSchema)` to create a new message.
5899
5885
  */
5900
5886
  export const UpdatePolicyRequestSchema: GenMessage<UpdatePolicyRequest> = /*@__PURE__*/
5901
- messageDesc(file_raystack_frontier_v1beta1_frontier, 263);
5887
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 261);
5902
5888
 
5903
5889
  /**
5904
5890
  * @generated from message raystack.frontier.v1beta1.UpdatePolicyResponse
@@ -5915,7 +5901,7 @@ export type UpdatePolicyResponse = Message<"raystack.frontier.v1beta1.UpdatePoli
5915
5901
  * Use `create(UpdatePolicyResponseSchema)` to create a new message.
5916
5902
  */
5917
5903
  export const UpdatePolicyResponseSchema: GenMessage<UpdatePolicyResponse> = /*@__PURE__*/
5918
- messageDesc(file_raystack_frontier_v1beta1_frontier, 264);
5904
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 262);
5919
5905
 
5920
5906
  /**
5921
5907
  * @generated from message raystack.frontier.v1beta1.DeletePolicyRequest
@@ -5932,7 +5918,7 @@ export type DeletePolicyRequest = Message<"raystack.frontier.v1beta1.DeletePolic
5932
5918
  * Use `create(DeletePolicyRequestSchema)` to create a new message.
5933
5919
  */
5934
5920
  export const DeletePolicyRequestSchema: GenMessage<DeletePolicyRequest> = /*@__PURE__*/
5935
- messageDesc(file_raystack_frontier_v1beta1_frontier, 265);
5921
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 263);
5936
5922
 
5937
5923
  /**
5938
5924
  * @generated from message raystack.frontier.v1beta1.DeletePolicyResponse
@@ -5945,7 +5931,7 @@ export type DeletePolicyResponse = Message<"raystack.frontier.v1beta1.DeletePoli
5945
5931
  * Use `create(DeletePolicyResponseSchema)` to create a new message.
5946
5932
  */
5947
5933
  export const DeletePolicyResponseSchema: GenMessage<DeletePolicyResponse> = /*@__PURE__*/
5948
- messageDesc(file_raystack_frontier_v1beta1_frontier, 266);
5934
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 264);
5949
5935
 
5950
5936
  /**
5951
5937
  * @generated from message raystack.frontier.v1beta1.CreatePolicyForProjectRequest
@@ -5967,7 +5953,7 @@ export type CreatePolicyForProjectRequest = Message<"raystack.frontier.v1beta1.C
5967
5953
  * Use `create(CreatePolicyForProjectRequestSchema)` to create a new message.
5968
5954
  */
5969
5955
  export const CreatePolicyForProjectRequestSchema: GenMessage<CreatePolicyForProjectRequest> = /*@__PURE__*/
5970
- messageDesc(file_raystack_frontier_v1beta1_frontier, 267);
5956
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 265);
5971
5957
 
5972
5958
  /**
5973
5959
  * @generated from message raystack.frontier.v1beta1.CreatePolicyForProjectResponse
@@ -5980,7 +5966,7 @@ export type CreatePolicyForProjectResponse = Message<"raystack.frontier.v1beta1.
5980
5966
  * Use `create(CreatePolicyForProjectResponseSchema)` to create a new message.
5981
5967
  */
5982
5968
  export const CreatePolicyForProjectResponseSchema: GenMessage<CreatePolicyForProjectResponse> = /*@__PURE__*/
5983
- messageDesc(file_raystack_frontier_v1beta1_frontier, 268);
5969
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 266);
5984
5970
 
5985
5971
  /**
5986
5972
  * @generated from message raystack.frontier.v1beta1.RelationRequestBody
@@ -6016,7 +6002,7 @@ export type RelationRequestBody = Message<"raystack.frontier.v1beta1.RelationReq
6016
6002
  * Use `create(RelationRequestBodySchema)` to create a new message.
6017
6003
  */
6018
6004
  export const RelationRequestBodySchema: GenMessage<RelationRequestBody> = /*@__PURE__*/
6019
- messageDesc(file_raystack_frontier_v1beta1_frontier, 269);
6005
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 267);
6020
6006
 
6021
6007
  /**
6022
6008
  * @generated from message raystack.frontier.v1beta1.CreateRelationRequest
@@ -6033,7 +6019,7 @@ export type CreateRelationRequest = Message<"raystack.frontier.v1beta1.CreateRel
6033
6019
  * Use `create(CreateRelationRequestSchema)` to create a new message.
6034
6020
  */
6035
6021
  export const CreateRelationRequestSchema: GenMessage<CreateRelationRequest> = /*@__PURE__*/
6036
- messageDesc(file_raystack_frontier_v1beta1_frontier, 270);
6022
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 268);
6037
6023
 
6038
6024
  /**
6039
6025
  * @generated from message raystack.frontier.v1beta1.CreateRelationResponse
@@ -6050,7 +6036,7 @@ export type CreateRelationResponse = Message<"raystack.frontier.v1beta1.CreateRe
6050
6036
  * Use `create(CreateRelationResponseSchema)` to create a new message.
6051
6037
  */
6052
6038
  export const CreateRelationResponseSchema: GenMessage<CreateRelationResponse> = /*@__PURE__*/
6053
- messageDesc(file_raystack_frontier_v1beta1_frontier, 271);
6039
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 269);
6054
6040
 
6055
6041
  /**
6056
6042
  * @generated from message raystack.frontier.v1beta1.GetRelationRequest
@@ -6067,7 +6053,7 @@ export type GetRelationRequest = Message<"raystack.frontier.v1beta1.GetRelationR
6067
6053
  * Use `create(GetRelationRequestSchema)` to create a new message.
6068
6054
  */
6069
6055
  export const GetRelationRequestSchema: GenMessage<GetRelationRequest> = /*@__PURE__*/
6070
- messageDesc(file_raystack_frontier_v1beta1_frontier, 272);
6056
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 270);
6071
6057
 
6072
6058
  /**
6073
6059
  * @generated from message raystack.frontier.v1beta1.GetRelationResponse
@@ -6084,7 +6070,7 @@ export type GetRelationResponse = Message<"raystack.frontier.v1beta1.GetRelation
6084
6070
  * Use `create(GetRelationResponseSchema)` to create a new message.
6085
6071
  */
6086
6072
  export const GetRelationResponseSchema: GenMessage<GetRelationResponse> = /*@__PURE__*/
6087
- messageDesc(file_raystack_frontier_v1beta1_frontier, 273);
6073
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 271);
6088
6074
 
6089
6075
  /**
6090
6076
  * @generated from message raystack.frontier.v1beta1.UpdateRelationRequest
@@ -6106,7 +6092,7 @@ export type UpdateRelationRequest = Message<"raystack.frontier.v1beta1.UpdateRel
6106
6092
  * Use `create(UpdateRelationRequestSchema)` to create a new message.
6107
6093
  */
6108
6094
  export const UpdateRelationRequestSchema: GenMessage<UpdateRelationRequest> = /*@__PURE__*/
6109
- messageDesc(file_raystack_frontier_v1beta1_frontier, 274);
6095
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 272);
6110
6096
 
6111
6097
  /**
6112
6098
  * @generated from message raystack.frontier.v1beta1.UpdateRelationResponse
@@ -6123,7 +6109,7 @@ export type UpdateRelationResponse = Message<"raystack.frontier.v1beta1.UpdateRe
6123
6109
  * Use `create(UpdateRelationResponseSchema)` to create a new message.
6124
6110
  */
6125
6111
  export const UpdateRelationResponseSchema: GenMessage<UpdateRelationResponse> = /*@__PURE__*/
6126
- messageDesc(file_raystack_frontier_v1beta1_frontier, 275);
6112
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 273);
6127
6113
 
6128
6114
  /**
6129
6115
  * @generated from message raystack.frontier.v1beta1.GroupRequestBody
@@ -6150,7 +6136,7 @@ export type GroupRequestBody = Message<"raystack.frontier.v1beta1.GroupRequestBo
6150
6136
  * Use `create(GroupRequestBodySchema)` to create a new message.
6151
6137
  */
6152
6138
  export const GroupRequestBodySchema: GenMessage<GroupRequestBody> = /*@__PURE__*/
6153
- messageDesc(file_raystack_frontier_v1beta1_frontier, 276);
6139
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 274);
6154
6140
 
6155
6141
  /**
6156
6142
  * @generated from message raystack.frontier.v1beta1.CreateGroupRequest
@@ -6172,7 +6158,7 @@ export type CreateGroupRequest = Message<"raystack.frontier.v1beta1.CreateGroupR
6172
6158
  * Use `create(CreateGroupRequestSchema)` to create a new message.
6173
6159
  */
6174
6160
  export const CreateGroupRequestSchema: GenMessage<CreateGroupRequest> = /*@__PURE__*/
6175
- messageDesc(file_raystack_frontier_v1beta1_frontier, 277);
6161
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 275);
6176
6162
 
6177
6163
  /**
6178
6164
  * @generated from message raystack.frontier.v1beta1.GetGroupRequest
@@ -6199,7 +6185,7 @@ export type GetGroupRequest = Message<"raystack.frontier.v1beta1.GetGroupRequest
6199
6185
  * Use `create(GetGroupRequestSchema)` to create a new message.
6200
6186
  */
6201
6187
  export const GetGroupRequestSchema: GenMessage<GetGroupRequest> = /*@__PURE__*/
6202
- messageDesc(file_raystack_frontier_v1beta1_frontier, 278);
6188
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 276);
6203
6189
 
6204
6190
  /**
6205
6191
  * @generated from message raystack.frontier.v1beta1.CreateGroupResponse
@@ -6216,7 +6202,7 @@ export type CreateGroupResponse = Message<"raystack.frontier.v1beta1.CreateGroup
6216
6202
  * Use `create(CreateGroupResponseSchema)` to create a new message.
6217
6203
  */
6218
6204
  export const CreateGroupResponseSchema: GenMessage<CreateGroupResponse> = /*@__PURE__*/
6219
- messageDesc(file_raystack_frontier_v1beta1_frontier, 279);
6205
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 277);
6220
6206
 
6221
6207
  /**
6222
6208
  * @generated from message raystack.frontier.v1beta1.GetGroupResponse
@@ -6233,7 +6219,7 @@ export type GetGroupResponse = Message<"raystack.frontier.v1beta1.GetGroupRespon
6233
6219
  * Use `create(GetGroupResponseSchema)` to create a new message.
6234
6220
  */
6235
6221
  export const GetGroupResponseSchema: GenMessage<GetGroupResponse> = /*@__PURE__*/
6236
- messageDesc(file_raystack_frontier_v1beta1_frontier, 280);
6222
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 278);
6237
6223
 
6238
6224
  /**
6239
6225
  * @generated from message raystack.frontier.v1beta1.UpdateGroupResponse
@@ -6250,7 +6236,7 @@ export type UpdateGroupResponse = Message<"raystack.frontier.v1beta1.UpdateGroup
6250
6236
  * Use `create(UpdateGroupResponseSchema)` to create a new message.
6251
6237
  */
6252
6238
  export const UpdateGroupResponseSchema: GenMessage<UpdateGroupResponse> = /*@__PURE__*/
6253
- messageDesc(file_raystack_frontier_v1beta1_frontier, 281);
6239
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 279);
6254
6240
 
6255
6241
  /**
6256
6242
  * @generated from message raystack.frontier.v1beta1.UpdateGroupRequest
@@ -6277,7 +6263,7 @@ export type UpdateGroupRequest = Message<"raystack.frontier.v1beta1.UpdateGroupR
6277
6263
  * Use `create(UpdateGroupRequestSchema)` to create a new message.
6278
6264
  */
6279
6265
  export const UpdateGroupRequestSchema: GenMessage<UpdateGroupRequest> = /*@__PURE__*/
6280
- messageDesc(file_raystack_frontier_v1beta1_frontier, 282);
6266
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 280);
6281
6267
 
6282
6268
  /**
6283
6269
  * @generated from message raystack.frontier.v1beta1.ListGroupUsersRequest
@@ -6304,7 +6290,7 @@ export type ListGroupUsersRequest = Message<"raystack.frontier.v1beta1.ListGroup
6304
6290
  * Use `create(ListGroupUsersRequestSchema)` to create a new message.
6305
6291
  */
6306
6292
  export const ListGroupUsersRequestSchema: GenMessage<ListGroupUsersRequest> = /*@__PURE__*/
6307
- messageDesc(file_raystack_frontier_v1beta1_frontier, 283);
6293
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 281);
6308
6294
 
6309
6295
  /**
6310
6296
  * @generated from message raystack.frontier.v1beta1.ListGroupUsersResponse
@@ -6326,7 +6312,7 @@ export type ListGroupUsersResponse = Message<"raystack.frontier.v1beta1.ListGrou
6326
6312
  * Use `create(ListGroupUsersResponseSchema)` to create a new message.
6327
6313
  */
6328
6314
  export const ListGroupUsersResponseSchema: GenMessage<ListGroupUsersResponse> = /*@__PURE__*/
6329
- messageDesc(file_raystack_frontier_v1beta1_frontier, 284);
6315
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 282);
6330
6316
 
6331
6317
  /**
6332
6318
  * @generated from message raystack.frontier.v1beta1.ListGroupUsersResponse.RolePair
@@ -6348,7 +6334,7 @@ export type ListGroupUsersResponse_RolePair = Message<"raystack.frontier.v1beta1
6348
6334
  * Use `create(ListGroupUsersResponse_RolePairSchema)` to create a new message.
6349
6335
  */
6350
6336
  export const ListGroupUsersResponse_RolePairSchema: GenMessage<ListGroupUsersResponse_RolePair> = /*@__PURE__*/
6351
- messageDesc(file_raystack_frontier_v1beta1_frontier, 284, 0);
6337
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 282, 0);
6352
6338
 
6353
6339
  /**
6354
6340
  * @generated from message raystack.frontier.v1beta1.EnableGroupRequest
@@ -6370,7 +6356,7 @@ export type EnableGroupRequest = Message<"raystack.frontier.v1beta1.EnableGroupR
6370
6356
  * Use `create(EnableGroupRequestSchema)` to create a new message.
6371
6357
  */
6372
6358
  export const EnableGroupRequestSchema: GenMessage<EnableGroupRequest> = /*@__PURE__*/
6373
- messageDesc(file_raystack_frontier_v1beta1_frontier, 285);
6359
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 283);
6374
6360
 
6375
6361
  /**
6376
6362
  * @generated from message raystack.frontier.v1beta1.EnableGroupResponse
@@ -6383,7 +6369,7 @@ export type EnableGroupResponse = Message<"raystack.frontier.v1beta1.EnableGroup
6383
6369
  * Use `create(EnableGroupResponseSchema)` to create a new message.
6384
6370
  */
6385
6371
  export const EnableGroupResponseSchema: GenMessage<EnableGroupResponse> = /*@__PURE__*/
6386
- messageDesc(file_raystack_frontier_v1beta1_frontier, 286);
6372
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 284);
6387
6373
 
6388
6374
  /**
6389
6375
  * @generated from message raystack.frontier.v1beta1.DisableGroupRequest
@@ -6405,7 +6391,7 @@ export type DisableGroupRequest = Message<"raystack.frontier.v1beta1.DisableGrou
6405
6391
  * Use `create(DisableGroupRequestSchema)` to create a new message.
6406
6392
  */
6407
6393
  export const DisableGroupRequestSchema: GenMessage<DisableGroupRequest> = /*@__PURE__*/
6408
- messageDesc(file_raystack_frontier_v1beta1_frontier, 287);
6394
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 285);
6409
6395
 
6410
6396
  /**
6411
6397
  * @generated from message raystack.frontier.v1beta1.DisableGroupResponse
@@ -6418,7 +6404,7 @@ export type DisableGroupResponse = Message<"raystack.frontier.v1beta1.DisableGro
6418
6404
  * Use `create(DisableGroupResponseSchema)` to create a new message.
6419
6405
  */
6420
6406
  export const DisableGroupResponseSchema: GenMessage<DisableGroupResponse> = /*@__PURE__*/
6421
- messageDesc(file_raystack_frontier_v1beta1_frontier, 288);
6407
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 286);
6422
6408
 
6423
6409
  /**
6424
6410
  * @generated from message raystack.frontier.v1beta1.DeleteGroupRequest
@@ -6440,7 +6426,7 @@ export type DeleteGroupRequest = Message<"raystack.frontier.v1beta1.DeleteGroupR
6440
6426
  * Use `create(DeleteGroupRequestSchema)` to create a new message.
6441
6427
  */
6442
6428
  export const DeleteGroupRequestSchema: GenMessage<DeleteGroupRequest> = /*@__PURE__*/
6443
- messageDesc(file_raystack_frontier_v1beta1_frontier, 289);
6429
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 287);
6444
6430
 
6445
6431
  /**
6446
6432
  * @generated from message raystack.frontier.v1beta1.DeleteGroupResponse
@@ -6453,7 +6439,7 @@ export type DeleteGroupResponse = Message<"raystack.frontier.v1beta1.DeleteGroup
6453
6439
  * Use `create(DeleteGroupResponseSchema)` to create a new message.
6454
6440
  */
6455
6441
  export const DeleteGroupResponseSchema: GenMessage<DeleteGroupResponse> = /*@__PURE__*/
6456
- messageDesc(file_raystack_frontier_v1beta1_frontier, 290);
6442
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 288);
6457
6443
 
6458
6444
  /**
6459
6445
  * @generated from message raystack.frontier.v1beta1.AddGroupUsersRequest
@@ -6480,7 +6466,7 @@ export type AddGroupUsersRequest = Message<"raystack.frontier.v1beta1.AddGroupUs
6480
6466
  * Use `create(AddGroupUsersRequestSchema)` to create a new message.
6481
6467
  */
6482
6468
  export const AddGroupUsersRequestSchema: GenMessage<AddGroupUsersRequest> = /*@__PURE__*/
6483
- messageDesc(file_raystack_frontier_v1beta1_frontier, 291);
6469
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 289);
6484
6470
 
6485
6471
  /**
6486
6472
  * @generated from message raystack.frontier.v1beta1.AddGroupUsersResponse
@@ -6493,7 +6479,7 @@ export type AddGroupUsersResponse = Message<"raystack.frontier.v1beta1.AddGroupU
6493
6479
  * Use `create(AddGroupUsersResponseSchema)` to create a new message.
6494
6480
  */
6495
6481
  export const AddGroupUsersResponseSchema: GenMessage<AddGroupUsersResponse> = /*@__PURE__*/
6496
- messageDesc(file_raystack_frontier_v1beta1_frontier, 292);
6482
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 290);
6497
6483
 
6498
6484
  /**
6499
6485
  * @generated from message raystack.frontier.v1beta1.RemoveGroupUserRequest
@@ -6520,7 +6506,7 @@ export type RemoveGroupUserRequest = Message<"raystack.frontier.v1beta1.RemoveGr
6520
6506
  * Use `create(RemoveGroupUserRequestSchema)` to create a new message.
6521
6507
  */
6522
6508
  export const RemoveGroupUserRequestSchema: GenMessage<RemoveGroupUserRequest> = /*@__PURE__*/
6523
- messageDesc(file_raystack_frontier_v1beta1_frontier, 293);
6509
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 291);
6524
6510
 
6525
6511
  /**
6526
6512
  * @generated from message raystack.frontier.v1beta1.RemoveGroupUserResponse
@@ -6533,7 +6519,7 @@ export type RemoveGroupUserResponse = Message<"raystack.frontier.v1beta1.RemoveG
6533
6519
  * Use `create(RemoveGroupUserResponseSchema)` to create a new message.
6534
6520
  */
6535
6521
  export const RemoveGroupUserResponseSchema: GenMessage<RemoveGroupUserResponse> = /*@__PURE__*/
6536
- messageDesc(file_raystack_frontier_v1beta1_frontier, 294);
6522
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 292);
6537
6523
 
6538
6524
  /**
6539
6525
  * @generated from message raystack.frontier.v1beta1.DeleteRelationRequest
@@ -6564,7 +6550,7 @@ export type DeleteRelationRequest = Message<"raystack.frontier.v1beta1.DeleteRel
6564
6550
  * Use `create(DeleteRelationRequestSchema)` to create a new message.
6565
6551
  */
6566
6552
  export const DeleteRelationRequestSchema: GenMessage<DeleteRelationRequest> = /*@__PURE__*/
6567
- messageDesc(file_raystack_frontier_v1beta1_frontier, 295);
6553
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 293);
6568
6554
 
6569
6555
  /**
6570
6556
  * @generated from message raystack.frontier.v1beta1.DeleteRelationResponse
@@ -6577,7 +6563,7 @@ export type DeleteRelationResponse = Message<"raystack.frontier.v1beta1.DeleteRe
6577
6563
  * Use `create(DeleteRelationResponseSchema)` to create a new message.
6578
6564
  */
6579
6565
  export const DeleteRelationResponseSchema: GenMessage<DeleteRelationResponse> = /*@__PURE__*/
6580
- messageDesc(file_raystack_frontier_v1beta1_frontier, 296);
6566
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 294);
6581
6567
 
6582
6568
  /**
6583
6569
  * @generated from message raystack.frontier.v1beta1.ListProjectResourcesRequest
@@ -6599,7 +6585,7 @@ export type ListProjectResourcesRequest = Message<"raystack.frontier.v1beta1.Lis
6599
6585
  * Use `create(ListProjectResourcesRequestSchema)` to create a new message.
6600
6586
  */
6601
6587
  export const ListProjectResourcesRequestSchema: GenMessage<ListProjectResourcesRequest> = /*@__PURE__*/
6602
- messageDesc(file_raystack_frontier_v1beta1_frontier, 297);
6588
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 295);
6603
6589
 
6604
6590
  /**
6605
6591
  * @generated from message raystack.frontier.v1beta1.ListProjectResourcesResponse
@@ -6616,7 +6602,7 @@ export type ListProjectResourcesResponse = Message<"raystack.frontier.v1beta1.Li
6616
6602
  * Use `create(ListProjectResourcesResponseSchema)` to create a new message.
6617
6603
  */
6618
6604
  export const ListProjectResourcesResponseSchema: GenMessage<ListProjectResourcesResponse> = /*@__PURE__*/
6619
- messageDesc(file_raystack_frontier_v1beta1_frontier, 298);
6605
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 296);
6620
6606
 
6621
6607
  /**
6622
6608
  * @generated from message raystack.frontier.v1beta1.ResourceRequestBody
@@ -6655,7 +6641,7 @@ export type ResourceRequestBody = Message<"raystack.frontier.v1beta1.ResourceReq
6655
6641
  * Use `create(ResourceRequestBodySchema)` to create a new message.
6656
6642
  */
6657
6643
  export const ResourceRequestBodySchema: GenMessage<ResourceRequestBody> = /*@__PURE__*/
6658
- messageDesc(file_raystack_frontier_v1beta1_frontier, 299);
6644
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 297);
6659
6645
 
6660
6646
  /**
6661
6647
  * @generated from message raystack.frontier.v1beta1.CreateProjectResourceRequest
@@ -6684,7 +6670,7 @@ export type CreateProjectResourceRequest = Message<"raystack.frontier.v1beta1.Cr
6684
6670
  * Use `create(CreateProjectResourceRequestSchema)` to create a new message.
6685
6671
  */
6686
6672
  export const CreateProjectResourceRequestSchema: GenMessage<CreateProjectResourceRequest> = /*@__PURE__*/
6687
- messageDesc(file_raystack_frontier_v1beta1_frontier, 300);
6673
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 298);
6688
6674
 
6689
6675
  /**
6690
6676
  * @generated from message raystack.frontier.v1beta1.CreateProjectResourceResponse
@@ -6701,7 +6687,7 @@ export type CreateProjectResourceResponse = Message<"raystack.frontier.v1beta1.C
6701
6687
  * Use `create(CreateProjectResourceResponseSchema)` to create a new message.
6702
6688
  */
6703
6689
  export const CreateProjectResourceResponseSchema: GenMessage<CreateProjectResourceResponse> = /*@__PURE__*/
6704
- messageDesc(file_raystack_frontier_v1beta1_frontier, 301);
6690
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 299);
6705
6691
 
6706
6692
  /**
6707
6693
  * @generated from message raystack.frontier.v1beta1.GetProjectResourceRequest
@@ -6723,7 +6709,7 @@ export type GetProjectResourceRequest = Message<"raystack.frontier.v1beta1.GetPr
6723
6709
  * Use `create(GetProjectResourceRequestSchema)` to create a new message.
6724
6710
  */
6725
6711
  export const GetProjectResourceRequestSchema: GenMessage<GetProjectResourceRequest> = /*@__PURE__*/
6726
- messageDesc(file_raystack_frontier_v1beta1_frontier, 302);
6712
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 300);
6727
6713
 
6728
6714
  /**
6729
6715
  * @generated from message raystack.frontier.v1beta1.GetProjectResourceResponse
@@ -6740,7 +6726,7 @@ export type GetProjectResourceResponse = Message<"raystack.frontier.v1beta1.GetP
6740
6726
  * Use `create(GetProjectResourceResponseSchema)` to create a new message.
6741
6727
  */
6742
6728
  export const GetProjectResourceResponseSchema: GenMessage<GetProjectResourceResponse> = /*@__PURE__*/
6743
- messageDesc(file_raystack_frontier_v1beta1_frontier, 303);
6729
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 301);
6744
6730
 
6745
6731
  /**
6746
6732
  * @generated from message raystack.frontier.v1beta1.UpdateProjectResourceRequest
@@ -6767,7 +6753,7 @@ export type UpdateProjectResourceRequest = Message<"raystack.frontier.v1beta1.Up
6767
6753
  * Use `create(UpdateProjectResourceRequestSchema)` to create a new message.
6768
6754
  */
6769
6755
  export const UpdateProjectResourceRequestSchema: GenMessage<UpdateProjectResourceRequest> = /*@__PURE__*/
6770
- messageDesc(file_raystack_frontier_v1beta1_frontier, 304);
6756
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 302);
6771
6757
 
6772
6758
  /**
6773
6759
  * @generated from message raystack.frontier.v1beta1.UpdateProjectResourceResponse
@@ -6784,7 +6770,7 @@ export type UpdateProjectResourceResponse = Message<"raystack.frontier.v1beta1.U
6784
6770
  * Use `create(UpdateProjectResourceResponseSchema)` to create a new message.
6785
6771
  */
6786
6772
  export const UpdateProjectResourceResponseSchema: GenMessage<UpdateProjectResourceResponse> = /*@__PURE__*/
6787
- messageDesc(file_raystack_frontier_v1beta1_frontier, 305);
6773
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 303);
6788
6774
 
6789
6775
  /**
6790
6776
  * @generated from message raystack.frontier.v1beta1.DeleteProjectResourceRequest
@@ -6806,7 +6792,7 @@ export type DeleteProjectResourceRequest = Message<"raystack.frontier.v1beta1.De
6806
6792
  * Use `create(DeleteProjectResourceRequestSchema)` to create a new message.
6807
6793
  */
6808
6794
  export const DeleteProjectResourceRequestSchema: GenMessage<DeleteProjectResourceRequest> = /*@__PURE__*/
6809
- messageDesc(file_raystack_frontier_v1beta1_frontier, 306);
6795
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 304);
6810
6796
 
6811
6797
  /**
6812
6798
  * @generated from message raystack.frontier.v1beta1.DeleteProjectResourceResponse
@@ -6819,7 +6805,7 @@ export type DeleteProjectResourceResponse = Message<"raystack.frontier.v1beta1.D
6819
6805
  * Use `create(DeleteProjectResourceResponseSchema)` to create a new message.
6820
6806
  */
6821
6807
  export const DeleteProjectResourceResponseSchema: GenMessage<DeleteProjectResourceResponse> = /*@__PURE__*/
6822
- messageDesc(file_raystack_frontier_v1beta1_frontier, 307);
6808
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 305);
6823
6809
 
6824
6810
  /**
6825
6811
  * @generated from message raystack.frontier.v1beta1.CheckResourcePermissionRequest
@@ -6853,7 +6839,7 @@ export type CheckResourcePermissionRequest = Message<"raystack.frontier.v1beta1.
6853
6839
  * Use `create(CheckResourcePermissionRequestSchema)` to create a new message.
6854
6840
  */
6855
6841
  export const CheckResourcePermissionRequestSchema: GenMessage<CheckResourcePermissionRequest> = /*@__PURE__*/
6856
- messageDesc(file_raystack_frontier_v1beta1_frontier, 308);
6842
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 306);
6857
6843
 
6858
6844
  /**
6859
6845
  * @generated from message raystack.frontier.v1beta1.CheckResourcePermissionResponse
@@ -6870,7 +6856,7 @@ export type CheckResourcePermissionResponse = Message<"raystack.frontier.v1beta1
6870
6856
  * Use `create(CheckResourcePermissionResponseSchema)` to create a new message.
6871
6857
  */
6872
6858
  export const CheckResourcePermissionResponseSchema: GenMessage<CheckResourcePermissionResponse> = /*@__PURE__*/
6873
- messageDesc(file_raystack_frontier_v1beta1_frontier, 309);
6859
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 307);
6874
6860
 
6875
6861
  /**
6876
6862
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionRequest
@@ -6887,7 +6873,7 @@ export type BatchCheckPermissionRequest = Message<"raystack.frontier.v1beta1.Bat
6887
6873
  * Use `create(BatchCheckPermissionRequestSchema)` to create a new message.
6888
6874
  */
6889
6875
  export const BatchCheckPermissionRequestSchema: GenMessage<BatchCheckPermissionRequest> = /*@__PURE__*/
6890
- messageDesc(file_raystack_frontier_v1beta1_frontier, 310);
6876
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 308);
6891
6877
 
6892
6878
  /**
6893
6879
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionBody
@@ -6909,7 +6895,7 @@ export type BatchCheckPermissionBody = Message<"raystack.frontier.v1beta1.BatchC
6909
6895
  * Use `create(BatchCheckPermissionBodySchema)` to create a new message.
6910
6896
  */
6911
6897
  export const BatchCheckPermissionBodySchema: GenMessage<BatchCheckPermissionBody> = /*@__PURE__*/
6912
- messageDesc(file_raystack_frontier_v1beta1_frontier, 311);
6898
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 309);
6913
6899
 
6914
6900
  /**
6915
6901
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionResponse
@@ -6926,7 +6912,7 @@ export type BatchCheckPermissionResponse = Message<"raystack.frontier.v1beta1.Ba
6926
6912
  * Use `create(BatchCheckPermissionResponseSchema)` to create a new message.
6927
6913
  */
6928
6914
  export const BatchCheckPermissionResponseSchema: GenMessage<BatchCheckPermissionResponse> = /*@__PURE__*/
6929
- messageDesc(file_raystack_frontier_v1beta1_frontier, 312);
6915
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 310);
6930
6916
 
6931
6917
  /**
6932
6918
  * @generated from message raystack.frontier.v1beta1.BatchCheckPermissionResponsePair
@@ -6948,7 +6934,7 @@ export type BatchCheckPermissionResponsePair = Message<"raystack.frontier.v1beta
6948
6934
  * Use `create(BatchCheckPermissionResponsePairSchema)` to create a new message.
6949
6935
  */
6950
6936
  export const BatchCheckPermissionResponsePairSchema: GenMessage<BatchCheckPermissionResponsePair> = /*@__PURE__*/
6951
- messageDesc(file_raystack_frontier_v1beta1_frontier, 313);
6937
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 311);
6952
6938
 
6953
6939
  /**
6954
6940
  * @generated from message raystack.frontier.v1beta1.MetaSchemaRequestBody
@@ -6970,7 +6956,7 @@ export type MetaSchemaRequestBody = Message<"raystack.frontier.v1beta1.MetaSchem
6970
6956
  * Use `create(MetaSchemaRequestBodySchema)` to create a new message.
6971
6957
  */
6972
6958
  export const MetaSchemaRequestBodySchema: GenMessage<MetaSchemaRequestBody> = /*@__PURE__*/
6973
- messageDesc(file_raystack_frontier_v1beta1_frontier, 314);
6959
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 312);
6974
6960
 
6975
6961
  /**
6976
6962
  * @generated from message raystack.frontier.v1beta1.CreateMetaSchemaRequest
@@ -6987,7 +6973,7 @@ export type CreateMetaSchemaRequest = Message<"raystack.frontier.v1beta1.CreateM
6987
6973
  * Use `create(CreateMetaSchemaRequestSchema)` to create a new message.
6988
6974
  */
6989
6975
  export const CreateMetaSchemaRequestSchema: GenMessage<CreateMetaSchemaRequest> = /*@__PURE__*/
6990
- messageDesc(file_raystack_frontier_v1beta1_frontier, 315);
6976
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 313);
6991
6977
 
6992
6978
  /**
6993
6979
  * @generated from message raystack.frontier.v1beta1.CreateMetaSchemaResponse
@@ -7004,7 +6990,7 @@ export type CreateMetaSchemaResponse = Message<"raystack.frontier.v1beta1.Create
7004
6990
  * Use `create(CreateMetaSchemaResponseSchema)` to create a new message.
7005
6991
  */
7006
6992
  export const CreateMetaSchemaResponseSchema: GenMessage<CreateMetaSchemaResponse> = /*@__PURE__*/
7007
- messageDesc(file_raystack_frontier_v1beta1_frontier, 316);
6993
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 314);
7008
6994
 
7009
6995
  /**
7010
6996
  * @generated from message raystack.frontier.v1beta1.GetMetaSchemaRequest
@@ -7021,7 +7007,7 @@ export type GetMetaSchemaRequest = Message<"raystack.frontier.v1beta1.GetMetaSch
7021
7007
  * Use `create(GetMetaSchemaRequestSchema)` to create a new message.
7022
7008
  */
7023
7009
  export const GetMetaSchemaRequestSchema: GenMessage<GetMetaSchemaRequest> = /*@__PURE__*/
7024
- messageDesc(file_raystack_frontier_v1beta1_frontier, 317);
7010
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 315);
7025
7011
 
7026
7012
  /**
7027
7013
  * @generated from message raystack.frontier.v1beta1.GetMetaSchemaResponse
@@ -7038,7 +7024,7 @@ export type GetMetaSchemaResponse = Message<"raystack.frontier.v1beta1.GetMetaSc
7038
7024
  * Use `create(GetMetaSchemaResponseSchema)` to create a new message.
7039
7025
  */
7040
7026
  export const GetMetaSchemaResponseSchema: GenMessage<GetMetaSchemaResponse> = /*@__PURE__*/
7041
- messageDesc(file_raystack_frontier_v1beta1_frontier, 318);
7027
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 316);
7042
7028
 
7043
7029
  /**
7044
7030
  * @generated from message raystack.frontier.v1beta1.UpdateMetaSchemaRequest
@@ -7060,7 +7046,7 @@ export type UpdateMetaSchemaRequest = Message<"raystack.frontier.v1beta1.UpdateM
7060
7046
  * Use `create(UpdateMetaSchemaRequestSchema)` to create a new message.
7061
7047
  */
7062
7048
  export const UpdateMetaSchemaRequestSchema: GenMessage<UpdateMetaSchemaRequest> = /*@__PURE__*/
7063
- messageDesc(file_raystack_frontier_v1beta1_frontier, 319);
7049
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 317);
7064
7050
 
7065
7051
  /**
7066
7052
  * @generated from message raystack.frontier.v1beta1.UpdateMetaSchemaResponse
@@ -7077,7 +7063,7 @@ export type UpdateMetaSchemaResponse = Message<"raystack.frontier.v1beta1.Update
7077
7063
  * Use `create(UpdateMetaSchemaResponseSchema)` to create a new message.
7078
7064
  */
7079
7065
  export const UpdateMetaSchemaResponseSchema: GenMessage<UpdateMetaSchemaResponse> = /*@__PURE__*/
7080
- messageDesc(file_raystack_frontier_v1beta1_frontier, 320);
7066
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 318);
7081
7067
 
7082
7068
  /**
7083
7069
  * @generated from message raystack.frontier.v1beta1.DeleteMetaSchemaRequest
@@ -7094,7 +7080,7 @@ export type DeleteMetaSchemaRequest = Message<"raystack.frontier.v1beta1.DeleteM
7094
7080
  * Use `create(DeleteMetaSchemaRequestSchema)` to create a new message.
7095
7081
  */
7096
7082
  export const DeleteMetaSchemaRequestSchema: GenMessage<DeleteMetaSchemaRequest> = /*@__PURE__*/
7097
- messageDesc(file_raystack_frontier_v1beta1_frontier, 321);
7083
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 319);
7098
7084
 
7099
7085
  /**
7100
7086
  * @generated from message raystack.frontier.v1beta1.DeleteMetaSchemaResponse
@@ -7107,7 +7093,7 @@ export type DeleteMetaSchemaResponse = Message<"raystack.frontier.v1beta1.Delete
7107
7093
  * Use `create(DeleteMetaSchemaResponseSchema)` to create a new message.
7108
7094
  */
7109
7095
  export const DeleteMetaSchemaResponseSchema: GenMessage<DeleteMetaSchemaResponse> = /*@__PURE__*/
7110
- messageDesc(file_raystack_frontier_v1beta1_frontier, 322);
7096
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 320);
7111
7097
 
7112
7098
  /**
7113
7099
  * @generated from message raystack.frontier.v1beta1.ListMetaSchemasRequest
@@ -7120,7 +7106,7 @@ export type ListMetaSchemasRequest = Message<"raystack.frontier.v1beta1.ListMeta
7120
7106
  * Use `create(ListMetaSchemasRequestSchema)` to create a new message.
7121
7107
  */
7122
7108
  export const ListMetaSchemasRequestSchema: GenMessage<ListMetaSchemasRequest> = /*@__PURE__*/
7123
- messageDesc(file_raystack_frontier_v1beta1_frontier, 323);
7109
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 321);
7124
7110
 
7125
7111
  /**
7126
7112
  * @generated from message raystack.frontier.v1beta1.ListMetaSchemasResponse
@@ -7137,142 +7123,7 @@ export type ListMetaSchemasResponse = Message<"raystack.frontier.v1beta1.ListMet
7137
7123
  * Use `create(ListMetaSchemasResponseSchema)` to create a new message.
7138
7124
  */
7139
7125
  export const ListMetaSchemasResponseSchema: GenMessage<ListMetaSchemasResponse> = /*@__PURE__*/
7140
- messageDesc(file_raystack_frontier_v1beta1_frontier, 324);
7141
-
7142
- /**
7143
- * @generated from message raystack.frontier.v1beta1.ListOrganizationAuditLogsRequest
7144
- */
7145
- export type ListOrganizationAuditLogsRequest = Message<"raystack.frontier.v1beta1.ListOrganizationAuditLogsRequest"> & {
7146
- /**
7147
- * @generated from field: string org_id = 1;
7148
- */
7149
- orgId: string;
7150
-
7151
- /**
7152
- * @generated from field: string source = 5;
7153
- */
7154
- source: string;
7155
-
7156
- /**
7157
- * @generated from field: string action = 6;
7158
- */
7159
- action: string;
7160
-
7161
- /**
7162
- * @generated from field: bool ignore_system = 7;
7163
- */
7164
- ignoreSystem: boolean;
7165
-
7166
- /**
7167
- * start_time and end_time are inclusive
7168
- *
7169
- * @generated from field: google.protobuf.Timestamp start_time = 10;
7170
- */
7171
- startTime?: Timestamp;
7172
-
7173
- /**
7174
- * @generated from field: google.protobuf.Timestamp end_time = 11;
7175
- */
7176
- endTime?: Timestamp;
7177
- };
7178
-
7179
- /**
7180
- * Describes the message raystack.frontier.v1beta1.ListOrganizationAuditLogsRequest.
7181
- * Use `create(ListOrganizationAuditLogsRequestSchema)` to create a new message.
7182
- */
7183
- export const ListOrganizationAuditLogsRequestSchema: GenMessage<ListOrganizationAuditLogsRequest> = /*@__PURE__*/
7184
- messageDesc(file_raystack_frontier_v1beta1_frontier, 325);
7185
-
7186
- /**
7187
- * @generated from message raystack.frontier.v1beta1.ListOrganizationAuditLogsResponse
7188
- */
7189
- export type ListOrganizationAuditLogsResponse = Message<"raystack.frontier.v1beta1.ListOrganizationAuditLogsResponse"> & {
7190
- /**
7191
- * @generated from field: repeated raystack.frontier.v1beta1.AuditLog logs = 1;
7192
- */
7193
- logs: AuditLog[];
7194
- };
7195
-
7196
- /**
7197
- * Describes the message raystack.frontier.v1beta1.ListOrganizationAuditLogsResponse.
7198
- * Use `create(ListOrganizationAuditLogsResponseSchema)` to create a new message.
7199
- */
7200
- export const ListOrganizationAuditLogsResponseSchema: GenMessage<ListOrganizationAuditLogsResponse> = /*@__PURE__*/
7201
- messageDesc(file_raystack_frontier_v1beta1_frontier, 326);
7202
-
7203
- /**
7204
- * @generated from message raystack.frontier.v1beta1.CreateOrganizationAuditLogsRequest
7205
- */
7206
- export type CreateOrganizationAuditLogsRequest = Message<"raystack.frontier.v1beta1.CreateOrganizationAuditLogsRequest"> & {
7207
- /**
7208
- * @generated from field: string org_id = 1;
7209
- */
7210
- orgId: string;
7211
-
7212
- /**
7213
- * @generated from field: repeated raystack.frontier.v1beta1.AuditLog logs = 2;
7214
- */
7215
- logs: AuditLog[];
7216
- };
7217
-
7218
- /**
7219
- * Describes the message raystack.frontier.v1beta1.CreateOrganizationAuditLogsRequest.
7220
- * Use `create(CreateOrganizationAuditLogsRequestSchema)` to create a new message.
7221
- */
7222
- export const CreateOrganizationAuditLogsRequestSchema: GenMessage<CreateOrganizationAuditLogsRequest> = /*@__PURE__*/
7223
- messageDesc(file_raystack_frontier_v1beta1_frontier, 327);
7224
-
7225
- /**
7226
- * @generated from message raystack.frontier.v1beta1.CreateOrganizationAuditLogsResponse
7227
- */
7228
- export type CreateOrganizationAuditLogsResponse = Message<"raystack.frontier.v1beta1.CreateOrganizationAuditLogsResponse"> & {
7229
- };
7230
-
7231
- /**
7232
- * Describes the message raystack.frontier.v1beta1.CreateOrganizationAuditLogsResponse.
7233
- * Use `create(CreateOrganizationAuditLogsResponseSchema)` to create a new message.
7234
- */
7235
- export const CreateOrganizationAuditLogsResponseSchema: GenMessage<CreateOrganizationAuditLogsResponse> = /*@__PURE__*/
7236
- messageDesc(file_raystack_frontier_v1beta1_frontier, 328);
7237
-
7238
- /**
7239
- * @generated from message raystack.frontier.v1beta1.GetOrganizationAuditLogRequest
7240
- */
7241
- export type GetOrganizationAuditLogRequest = Message<"raystack.frontier.v1beta1.GetOrganizationAuditLogRequest"> & {
7242
- /**
7243
- * @generated from field: string org_id = 1;
7244
- */
7245
- orgId: string;
7246
-
7247
- /**
7248
- * @generated from field: string id = 2;
7249
- */
7250
- id: string;
7251
- };
7252
-
7253
- /**
7254
- * Describes the message raystack.frontier.v1beta1.GetOrganizationAuditLogRequest.
7255
- * Use `create(GetOrganizationAuditLogRequestSchema)` to create a new message.
7256
- */
7257
- export const GetOrganizationAuditLogRequestSchema: GenMessage<GetOrganizationAuditLogRequest> = /*@__PURE__*/
7258
- messageDesc(file_raystack_frontier_v1beta1_frontier, 329);
7259
-
7260
- /**
7261
- * @generated from message raystack.frontier.v1beta1.GetOrganizationAuditLogResponse
7262
- */
7263
- export type GetOrganizationAuditLogResponse = Message<"raystack.frontier.v1beta1.GetOrganizationAuditLogResponse"> & {
7264
- /**
7265
- * @generated from field: raystack.frontier.v1beta1.AuditLog log = 1;
7266
- */
7267
- log?: AuditLog;
7268
- };
7269
-
7270
- /**
7271
- * Describes the message raystack.frontier.v1beta1.GetOrganizationAuditLogResponse.
7272
- * Use `create(GetOrganizationAuditLogResponseSchema)` to create a new message.
7273
- */
7274
- export const GetOrganizationAuditLogResponseSchema: GenMessage<GetOrganizationAuditLogResponse> = /*@__PURE__*/
7275
- messageDesc(file_raystack_frontier_v1beta1_frontier, 330);
7126
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 322);
7276
7127
 
7277
7128
  /**
7278
7129
  * @generated from message raystack.frontier.v1beta1.DescribePreferencesRequest
@@ -7285,7 +7136,7 @@ export type DescribePreferencesRequest = Message<"raystack.frontier.v1beta1.Desc
7285
7136
  * Use `create(DescribePreferencesRequestSchema)` to create a new message.
7286
7137
  */
7287
7138
  export const DescribePreferencesRequestSchema: GenMessage<DescribePreferencesRequest> = /*@__PURE__*/
7288
- messageDesc(file_raystack_frontier_v1beta1_frontier, 331);
7139
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 323);
7289
7140
 
7290
7141
  /**
7291
7142
  * @generated from message raystack.frontier.v1beta1.DescribePreferencesResponse
@@ -7302,7 +7153,7 @@ export type DescribePreferencesResponse = Message<"raystack.frontier.v1beta1.Des
7302
7153
  * Use `create(DescribePreferencesResponseSchema)` to create a new message.
7303
7154
  */
7304
7155
  export const DescribePreferencesResponseSchema: GenMessage<DescribePreferencesResponse> = /*@__PURE__*/
7305
- messageDesc(file_raystack_frontier_v1beta1_frontier, 332);
7156
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 324);
7306
7157
 
7307
7158
  /**
7308
7159
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationPreferencesRequest
@@ -7324,7 +7175,7 @@ export type CreateOrganizationPreferencesRequest = Message<"raystack.frontier.v1
7324
7175
  * Use `create(CreateOrganizationPreferencesRequestSchema)` to create a new message.
7325
7176
  */
7326
7177
  export const CreateOrganizationPreferencesRequestSchema: GenMessage<CreateOrganizationPreferencesRequest> = /*@__PURE__*/
7327
- messageDesc(file_raystack_frontier_v1beta1_frontier, 333);
7178
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 325);
7328
7179
 
7329
7180
  /**
7330
7181
  * @generated from message raystack.frontier.v1beta1.CreateOrganizationPreferencesResponse
@@ -7341,7 +7192,7 @@ export type CreateOrganizationPreferencesResponse = Message<"raystack.frontier.v
7341
7192
  * Use `create(CreateOrganizationPreferencesResponseSchema)` to create a new message.
7342
7193
  */
7343
7194
  export const CreateOrganizationPreferencesResponseSchema: GenMessage<CreateOrganizationPreferencesResponse> = /*@__PURE__*/
7344
- messageDesc(file_raystack_frontier_v1beta1_frontier, 334);
7195
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 326);
7345
7196
 
7346
7197
  /**
7347
7198
  * @generated from message raystack.frontier.v1beta1.ListOrganizationPreferencesRequest
@@ -7358,7 +7209,7 @@ export type ListOrganizationPreferencesRequest = Message<"raystack.frontier.v1be
7358
7209
  * Use `create(ListOrganizationPreferencesRequestSchema)` to create a new message.
7359
7210
  */
7360
7211
  export const ListOrganizationPreferencesRequestSchema: GenMessage<ListOrganizationPreferencesRequest> = /*@__PURE__*/
7361
- messageDesc(file_raystack_frontier_v1beta1_frontier, 335);
7212
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 327);
7362
7213
 
7363
7214
  /**
7364
7215
  * @generated from message raystack.frontier.v1beta1.ListOrganizationPreferencesResponse
@@ -7375,7 +7226,7 @@ export type ListOrganizationPreferencesResponse = Message<"raystack.frontier.v1b
7375
7226
  * Use `create(ListOrganizationPreferencesResponseSchema)` to create a new message.
7376
7227
  */
7377
7228
  export const ListOrganizationPreferencesResponseSchema: GenMessage<ListOrganizationPreferencesResponse> = /*@__PURE__*/
7378
- messageDesc(file_raystack_frontier_v1beta1_frontier, 336);
7229
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 328);
7379
7230
 
7380
7231
  /**
7381
7232
  * @generated from message raystack.frontier.v1beta1.CreateProjectPreferencesRequest
@@ -7397,7 +7248,7 @@ export type CreateProjectPreferencesRequest = Message<"raystack.frontier.v1beta1
7397
7248
  * Use `create(CreateProjectPreferencesRequestSchema)` to create a new message.
7398
7249
  */
7399
7250
  export const CreateProjectPreferencesRequestSchema: GenMessage<CreateProjectPreferencesRequest> = /*@__PURE__*/
7400
- messageDesc(file_raystack_frontier_v1beta1_frontier, 337);
7251
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 329);
7401
7252
 
7402
7253
  /**
7403
7254
  * @generated from message raystack.frontier.v1beta1.CreateProjectPreferencesResponse
@@ -7414,7 +7265,7 @@ export type CreateProjectPreferencesResponse = Message<"raystack.frontier.v1beta
7414
7265
  * Use `create(CreateProjectPreferencesResponseSchema)` to create a new message.
7415
7266
  */
7416
7267
  export const CreateProjectPreferencesResponseSchema: GenMessage<CreateProjectPreferencesResponse> = /*@__PURE__*/
7417
- messageDesc(file_raystack_frontier_v1beta1_frontier, 338);
7268
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 330);
7418
7269
 
7419
7270
  /**
7420
7271
  * @generated from message raystack.frontier.v1beta1.ListProjectPreferencesRequest
@@ -7431,7 +7282,7 @@ export type ListProjectPreferencesRequest = Message<"raystack.frontier.v1beta1.L
7431
7282
  * Use `create(ListProjectPreferencesRequestSchema)` to create a new message.
7432
7283
  */
7433
7284
  export const ListProjectPreferencesRequestSchema: GenMessage<ListProjectPreferencesRequest> = /*@__PURE__*/
7434
- messageDesc(file_raystack_frontier_v1beta1_frontier, 339);
7285
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 331);
7435
7286
 
7436
7287
  /**
7437
7288
  * @generated from message raystack.frontier.v1beta1.ListProjectPreferencesResponse
@@ -7448,7 +7299,7 @@ export type ListProjectPreferencesResponse = Message<"raystack.frontier.v1beta1.
7448
7299
  * Use `create(ListProjectPreferencesResponseSchema)` to create a new message.
7449
7300
  */
7450
7301
  export const ListProjectPreferencesResponseSchema: GenMessage<ListProjectPreferencesResponse> = /*@__PURE__*/
7451
- messageDesc(file_raystack_frontier_v1beta1_frontier, 340);
7302
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 332);
7452
7303
 
7453
7304
  /**
7454
7305
  * @generated from message raystack.frontier.v1beta1.CreateGroupPreferencesRequest
@@ -7470,7 +7321,7 @@ export type CreateGroupPreferencesRequest = Message<"raystack.frontier.v1beta1.C
7470
7321
  * Use `create(CreateGroupPreferencesRequestSchema)` to create a new message.
7471
7322
  */
7472
7323
  export const CreateGroupPreferencesRequestSchema: GenMessage<CreateGroupPreferencesRequest> = /*@__PURE__*/
7473
- messageDesc(file_raystack_frontier_v1beta1_frontier, 341);
7324
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 333);
7474
7325
 
7475
7326
  /**
7476
7327
  * @generated from message raystack.frontier.v1beta1.CreateGroupPreferencesResponse
@@ -7487,7 +7338,7 @@ export type CreateGroupPreferencesResponse = Message<"raystack.frontier.v1beta1.
7487
7338
  * Use `create(CreateGroupPreferencesResponseSchema)` to create a new message.
7488
7339
  */
7489
7340
  export const CreateGroupPreferencesResponseSchema: GenMessage<CreateGroupPreferencesResponse> = /*@__PURE__*/
7490
- messageDesc(file_raystack_frontier_v1beta1_frontier, 342);
7341
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 334);
7491
7342
 
7492
7343
  /**
7493
7344
  * @generated from message raystack.frontier.v1beta1.ListGroupPreferencesRequest
@@ -7504,7 +7355,7 @@ export type ListGroupPreferencesRequest = Message<"raystack.frontier.v1beta1.Lis
7504
7355
  * Use `create(ListGroupPreferencesRequestSchema)` to create a new message.
7505
7356
  */
7506
7357
  export const ListGroupPreferencesRequestSchema: GenMessage<ListGroupPreferencesRequest> = /*@__PURE__*/
7507
- messageDesc(file_raystack_frontier_v1beta1_frontier, 343);
7358
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 335);
7508
7359
 
7509
7360
  /**
7510
7361
  * @generated from message raystack.frontier.v1beta1.ListGroupPreferencesResponse
@@ -7521,7 +7372,7 @@ export type ListGroupPreferencesResponse = Message<"raystack.frontier.v1beta1.Li
7521
7372
  * Use `create(ListGroupPreferencesResponseSchema)` to create a new message.
7522
7373
  */
7523
7374
  export const ListGroupPreferencesResponseSchema: GenMessage<ListGroupPreferencesResponse> = /*@__PURE__*/
7524
- messageDesc(file_raystack_frontier_v1beta1_frontier, 344);
7375
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 336);
7525
7376
 
7526
7377
  /**
7527
7378
  * @generated from message raystack.frontier.v1beta1.CreateUserPreferencesRequest
@@ -7543,7 +7394,7 @@ export type CreateUserPreferencesRequest = Message<"raystack.frontier.v1beta1.Cr
7543
7394
  * Use `create(CreateUserPreferencesRequestSchema)` to create a new message.
7544
7395
  */
7545
7396
  export const CreateUserPreferencesRequestSchema: GenMessage<CreateUserPreferencesRequest> = /*@__PURE__*/
7546
- messageDesc(file_raystack_frontier_v1beta1_frontier, 345);
7397
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 337);
7547
7398
 
7548
7399
  /**
7549
7400
  * @generated from message raystack.frontier.v1beta1.CreateUserPreferencesResponse
@@ -7560,7 +7411,7 @@ export type CreateUserPreferencesResponse = Message<"raystack.frontier.v1beta1.C
7560
7411
  * Use `create(CreateUserPreferencesResponseSchema)` to create a new message.
7561
7412
  */
7562
7413
  export const CreateUserPreferencesResponseSchema: GenMessage<CreateUserPreferencesResponse> = /*@__PURE__*/
7563
- messageDesc(file_raystack_frontier_v1beta1_frontier, 346);
7414
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 338);
7564
7415
 
7565
7416
  /**
7566
7417
  * @generated from message raystack.frontier.v1beta1.ListUserPreferencesRequest
@@ -7577,7 +7428,7 @@ export type ListUserPreferencesRequest = Message<"raystack.frontier.v1beta1.List
7577
7428
  * Use `create(ListUserPreferencesRequestSchema)` to create a new message.
7578
7429
  */
7579
7430
  export const ListUserPreferencesRequestSchema: GenMessage<ListUserPreferencesRequest> = /*@__PURE__*/
7580
- messageDesc(file_raystack_frontier_v1beta1_frontier, 347);
7431
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 339);
7581
7432
 
7582
7433
  /**
7583
7434
  * @generated from message raystack.frontier.v1beta1.ListUserPreferencesResponse
@@ -7594,7 +7445,7 @@ export type ListUserPreferencesResponse = Message<"raystack.frontier.v1beta1.Lis
7594
7445
  * Use `create(ListUserPreferencesResponseSchema)` to create a new message.
7595
7446
  */
7596
7447
  export const ListUserPreferencesResponseSchema: GenMessage<ListUserPreferencesResponse> = /*@__PURE__*/
7597
- messageDesc(file_raystack_frontier_v1beta1_frontier, 348);
7448
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 340);
7598
7449
 
7599
7450
  /**
7600
7451
  * @generated from message raystack.frontier.v1beta1.CreateCurrentUserPreferencesRequest
@@ -7611,7 +7462,7 @@ export type CreateCurrentUserPreferencesRequest = Message<"raystack.frontier.v1b
7611
7462
  * Use `create(CreateCurrentUserPreferencesRequestSchema)` to create a new message.
7612
7463
  */
7613
7464
  export const CreateCurrentUserPreferencesRequestSchema: GenMessage<CreateCurrentUserPreferencesRequest> = /*@__PURE__*/
7614
- messageDesc(file_raystack_frontier_v1beta1_frontier, 349);
7465
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 341);
7615
7466
 
7616
7467
  /**
7617
7468
  * @generated from message raystack.frontier.v1beta1.CreateCurrentUserPreferencesResponse
@@ -7628,7 +7479,7 @@ export type CreateCurrentUserPreferencesResponse = Message<"raystack.frontier.v1
7628
7479
  * Use `create(CreateCurrentUserPreferencesResponseSchema)` to create a new message.
7629
7480
  */
7630
7481
  export const CreateCurrentUserPreferencesResponseSchema: GenMessage<CreateCurrentUserPreferencesResponse> = /*@__PURE__*/
7631
- messageDesc(file_raystack_frontier_v1beta1_frontier, 350);
7482
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 342);
7632
7483
 
7633
7484
  /**
7634
7485
  * @generated from message raystack.frontier.v1beta1.ListCurrentUserPreferencesRequest
@@ -7641,7 +7492,7 @@ export type ListCurrentUserPreferencesRequest = Message<"raystack.frontier.v1bet
7641
7492
  * Use `create(ListCurrentUserPreferencesRequestSchema)` to create a new message.
7642
7493
  */
7643
7494
  export const ListCurrentUserPreferencesRequestSchema: GenMessage<ListCurrentUserPreferencesRequest> = /*@__PURE__*/
7644
- messageDesc(file_raystack_frontier_v1beta1_frontier, 351);
7495
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 343);
7645
7496
 
7646
7497
  /**
7647
7498
  * @generated from message raystack.frontier.v1beta1.ListCurrentUserPreferencesResponse
@@ -7658,7 +7509,7 @@ export type ListCurrentUserPreferencesResponse = Message<"raystack.frontier.v1be
7658
7509
  * Use `create(ListCurrentUserPreferencesResponseSchema)` to create a new message.
7659
7510
  */
7660
7511
  export const ListCurrentUserPreferencesResponseSchema: GenMessage<ListCurrentUserPreferencesResponse> = /*@__PURE__*/
7661
- messageDesc(file_raystack_frontier_v1beta1_frontier, 352);
7512
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 344);
7662
7513
 
7663
7514
  /**
7664
7515
  * @generated from message raystack.frontier.v1beta1.BillingWebhookCallbackRequest
@@ -7680,7 +7531,7 @@ export type BillingWebhookCallbackRequest = Message<"raystack.frontier.v1beta1.B
7680
7531
  * Use `create(BillingWebhookCallbackRequestSchema)` to create a new message.
7681
7532
  */
7682
7533
  export const BillingWebhookCallbackRequestSchema: GenMessage<BillingWebhookCallbackRequest> = /*@__PURE__*/
7683
- messageDesc(file_raystack_frontier_v1beta1_frontier, 353);
7534
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 345);
7684
7535
 
7685
7536
  /**
7686
7537
  * @generated from message raystack.frontier.v1beta1.BillingWebhookCallbackResponse
@@ -7693,7 +7544,7 @@ export type BillingWebhookCallbackResponse = Message<"raystack.frontier.v1beta1.
7693
7544
  * Use `create(BillingWebhookCallbackResponseSchema)` to create a new message.
7694
7545
  */
7695
7546
  export const BillingWebhookCallbackResponseSchema: GenMessage<BillingWebhookCallbackResponse> = /*@__PURE__*/
7696
- messageDesc(file_raystack_frontier_v1beta1_frontier, 354);
7547
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 346);
7697
7548
 
7698
7549
  /**
7699
7550
  * @generated from message raystack.frontier.v1beta1.CreateProspectPublicRequest
@@ -7735,7 +7586,7 @@ export type CreateProspectPublicRequest = Message<"raystack.frontier.v1beta1.Cre
7735
7586
  * Use `create(CreateProspectPublicRequestSchema)` to create a new message.
7736
7587
  */
7737
7588
  export const CreateProspectPublicRequestSchema: GenMessage<CreateProspectPublicRequest> = /*@__PURE__*/
7738
- messageDesc(file_raystack_frontier_v1beta1_frontier, 355);
7589
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 347);
7739
7590
 
7740
7591
  /**
7741
7592
  * @generated from message raystack.frontier.v1beta1.CreateProspectPublicResponse
@@ -7748,7 +7599,7 @@ export type CreateProspectPublicResponse = Message<"raystack.frontier.v1beta1.Cr
7748
7599
  * Use `create(CreateProspectPublicResponseSchema)` to create a new message.
7749
7600
  */
7750
7601
  export const CreateProspectPublicResponseSchema: GenMessage<CreateProspectPublicResponse> = /*@__PURE__*/
7751
- messageDesc(file_raystack_frontier_v1beta1_frontier, 356);
7602
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 348);
7752
7603
 
7753
7604
  /**
7754
7605
  * @generated from message raystack.frontier.v1beta1.ListSessionsRequest
@@ -7761,7 +7612,7 @@ export type ListSessionsRequest = Message<"raystack.frontier.v1beta1.ListSession
7761
7612
  * Use `create(ListSessionsRequestSchema)` to create a new message.
7762
7613
  */
7763
7614
  export const ListSessionsRequestSchema: GenMessage<ListSessionsRequest> = /*@__PURE__*/
7764
- messageDesc(file_raystack_frontier_v1beta1_frontier, 357);
7615
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 349);
7765
7616
 
7766
7617
  /**
7767
7618
  * @generated from message raystack.frontier.v1beta1.ListSessionsResponse
@@ -7778,7 +7629,7 @@ export type ListSessionsResponse = Message<"raystack.frontier.v1beta1.ListSessio
7778
7629
  * Use `create(ListSessionsResponseSchema)` to create a new message.
7779
7630
  */
7780
7631
  export const ListSessionsResponseSchema: GenMessage<ListSessionsResponse> = /*@__PURE__*/
7781
- messageDesc(file_raystack_frontier_v1beta1_frontier, 358);
7632
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 350);
7782
7633
 
7783
7634
  /**
7784
7635
  * @generated from message raystack.frontier.v1beta1.RevokeSessionRequest
@@ -7795,7 +7646,7 @@ export type RevokeSessionRequest = Message<"raystack.frontier.v1beta1.RevokeSess
7795
7646
  * Use `create(RevokeSessionRequestSchema)` to create a new message.
7796
7647
  */
7797
7648
  export const RevokeSessionRequestSchema: GenMessage<RevokeSessionRequest> = /*@__PURE__*/
7798
- messageDesc(file_raystack_frontier_v1beta1_frontier, 359);
7649
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 351);
7799
7650
 
7800
7651
  /**
7801
7652
  * @generated from message raystack.frontier.v1beta1.RevokeSessionResponse
@@ -7808,7 +7659,7 @@ export type RevokeSessionResponse = Message<"raystack.frontier.v1beta1.RevokeSes
7808
7659
  * Use `create(RevokeSessionResponseSchema)` to create a new message.
7809
7660
  */
7810
7661
  export const RevokeSessionResponseSchema: GenMessage<RevokeSessionResponse> = /*@__PURE__*/
7811
- messageDesc(file_raystack_frontier_v1beta1_frontier, 360);
7662
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 352);
7812
7663
 
7813
7664
  /**
7814
7665
  * @generated from message raystack.frontier.v1beta1.PingUserSessionRequest
@@ -7821,12 +7672,16 @@ export type PingUserSessionRequest = Message<"raystack.frontier.v1beta1.PingUser
7821
7672
  * Use `create(PingUserSessionRequestSchema)` to create a new message.
7822
7673
  */
7823
7674
  export const PingUserSessionRequestSchema: GenMessage<PingUserSessionRequest> = /*@__PURE__*/
7824
- messageDesc(file_raystack_frontier_v1beta1_frontier, 361);
7675
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 353);
7825
7676
 
7826
7677
  /**
7827
7678
  * @generated from message raystack.frontier.v1beta1.PingUserSessionResponse
7828
7679
  */
7829
7680
  export type PingUserSessionResponse = Message<"raystack.frontier.v1beta1.PingUserSessionResponse"> & {
7681
+ /**
7682
+ * @generated from field: raystack.frontier.v1beta1.Session.Meta metadata = 1;
7683
+ */
7684
+ metadata?: Session_Meta;
7830
7685
  };
7831
7686
 
7832
7687
  /**
@@ -7834,7 +7689,7 @@ export type PingUserSessionResponse = Message<"raystack.frontier.v1beta1.PingUse
7834
7689
  * Use `create(PingUserSessionResponseSchema)` to create a new message.
7835
7690
  */
7836
7691
  export const PingUserSessionResponseSchema: GenMessage<PingUserSessionResponse> = /*@__PURE__*/
7837
- messageDesc(file_raystack_frontier_v1beta1_frontier, 362);
7692
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 354);
7838
7693
 
7839
7694
  /**
7840
7695
  * @generated from message raystack.frontier.v1beta1.CreateAuditRecordRequest
@@ -7879,9 +7734,9 @@ export type CreateAuditRecordRequest = Message<"raystack.frontier.v1beta1.Create
7879
7734
  /**
7880
7735
  * Request ID for tracing
7881
7736
  *
7882
- * @generated from field: string req_id = 7;
7737
+ * @generated from field: string request_id = 7;
7883
7738
  */
7884
- reqId: string;
7739
+ requestId: string;
7885
7740
 
7886
7741
  /**
7887
7742
  * Flexible metadata field for any additional data including reason, changes, etc.
@@ -7903,7 +7758,7 @@ export type CreateAuditRecordRequest = Message<"raystack.frontier.v1beta1.Create
7903
7758
  * Use `create(CreateAuditRecordRequestSchema)` to create a new message.
7904
7759
  */
7905
7760
  export const CreateAuditRecordRequestSchema: GenMessage<CreateAuditRecordRequest> = /*@__PURE__*/
7906
- messageDesc(file_raystack_frontier_v1beta1_frontier, 363);
7761
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 355);
7907
7762
 
7908
7763
  /**
7909
7764
  * @generated from message raystack.frontier.v1beta1.CreateAuditRecordResponse
@@ -7920,7 +7775,7 @@ export type CreateAuditRecordResponse = Message<"raystack.frontier.v1beta1.Creat
7920
7775
  * Use `create(CreateAuditRecordResponseSchema)` to create a new message.
7921
7776
  */
7922
7777
  export const CreateAuditRecordResponseSchema: GenMessage<CreateAuditRecordResponse> = /*@__PURE__*/
7923
- messageDesc(file_raystack_frontier_v1beta1_frontier, 364);
7778
+ messageDesc(file_raystack_frontier_v1beta1_frontier, 356);
7924
7779
 
7925
7780
  /**
7926
7781
  * @generated from service raystack.frontier.v1beta1.FrontierService
@@ -8898,35 +8753,6 @@ export const FrontierService: GenService<{
8898
8753
  input: typeof DeleteMetaSchemaRequestSchema;
8899
8754
  output: typeof DeleteMetaSchemaResponseSchema;
8900
8755
  },
8901
- /**
8902
- * Audit logs
8903
- *
8904
- * @generated from rpc raystack.frontier.v1beta1.FrontierService.ListOrganizationAuditLogs
8905
- * @deprecated
8906
- */
8907
- listOrganizationAuditLogs: {
8908
- methodKind: "unary";
8909
- input: typeof ListOrganizationAuditLogsRequestSchema;
8910
- output: typeof ListOrganizationAuditLogsResponseSchema;
8911
- },
8912
- /**
8913
- * @generated from rpc raystack.frontier.v1beta1.FrontierService.CreateOrganizationAuditLogs
8914
- * @deprecated
8915
- */
8916
- createOrganizationAuditLogs: {
8917
- methodKind: "unary";
8918
- input: typeof CreateOrganizationAuditLogsRequestSchema;
8919
- output: typeof CreateOrganizationAuditLogsResponseSchema;
8920
- },
8921
- /**
8922
- * @generated from rpc raystack.frontier.v1beta1.FrontierService.GetOrganizationAuditLog
8923
- * @deprecated
8924
- */
8925
- getOrganizationAuditLog: {
8926
- methodKind: "unary";
8927
- input: typeof GetOrganizationAuditLogRequestSchema;
8928
- output: typeof GetOrganizationAuditLogResponseSchema;
8929
- },
8930
8756
  /**
8931
8757
  * DescribePreferences list down all the supported preferences of entities
8932
8758
  *