@producerflow/producerflowapi 1.0.5 → 1.0.7

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.
@@ -578,7 +578,8 @@ export type NewAgencyRequest_Agency = Message<"producerflow.producer.v1.NewAgenc
578
578
  * The map key is the question identifier/text, and the value is the answer provided.
579
579
  * This field is deprecated and will be removed in a future release.
580
580
  *
581
- * @generated from field: map<string, string> metadata_questions = 21;
581
+ * @generated from field: map<string, string> metadata_questions = 21 [deprecated = true];
582
+ * @deprecated
582
583
  */
583
584
  metadataQuestions: {
584
585
  [key: string]: string;
@@ -1742,7 +1743,8 @@ export type Agency_AgencyInfo = Message<"producerflow.producer.v1.Agency.AgencyI
1742
1743
  * The map key is the question identifier/text, and the value is the answer provided.
1743
1744
  * This field is deprecated and will be removed in a future release.
1744
1745
  *
1745
- * @generated from field: map<string, string> metadata_questions = 11;
1746
+ * @generated from field: map<string, string> metadata_questions = 11 [deprecated = true];
1747
+ * @deprecated
1746
1748
  */
1747
1749
  metadataQuestions: {
1748
1750
  [key: string]: string;
@@ -2709,7 +2711,8 @@ export type Producer = Message<"producerflow.producer.v1.Producer"> & {
2709
2711
  * The map key is the question identifier/text, and the value is the answer provided.
2710
2712
  * This field is deprecated and will be removed in a future release.
2711
2713
  *
2712
- * @generated from field: map<string, string> metadata_questions = 40;
2714
+ * @generated from field: map<string, string> metadata_questions = 40 [deprecated = true];
2715
+ * @deprecated
2713
2716
  */
2714
2717
  metadataQuestions: {
2715
2718
  [key: string]: string;
@@ -2811,6 +2814,19 @@ export type Producer_NIPR = Message<"producerflow.producer.v1.Producer.NIPR"> &
2811
2814
  * @generated from field: repeated producerflow.producer.v1.Producer.NIPR.Appointment appointments = 10;
2812
2815
  */
2813
2816
  appointments: Producer_NIPR_Appointment[];
2817
+ /**
2818
+ * Current synchronization status with NIPR.
2819
+ * Indicates whether NIPR data sync is active, failing, pending, or disabled.
2820
+ *
2821
+ * @generated from field: producerflow.producer.v1.NIPRSyncState nipr_sync_status = 11;
2822
+ */
2823
+ niprSyncStatus: NIPRSyncState;
2824
+ /**
2825
+ * Timestamp when the NIPR sync status was last updated.
2826
+ *
2827
+ * @generated from field: google.protobuf.Timestamp nipr_sync_status_updated_at = 12;
2828
+ */
2829
+ niprSyncStatusUpdatedAt?: Timestamp;
2814
2830
  };
2815
2831
  /**
2816
2832
  * Describes the message producerflow.producer.v1.Producer.NIPR.
@@ -3501,8 +3517,10 @@ export type NewProducer = Message<"producerflow.producer.v1.NewProducer"> & {
3501
3517
  *
3502
3518
  * Note: This data is stored but not validated by ProducerFlow. Ensure your
3503
3519
  * application handles any necessary validation of the responses.
3520
+ * Deprecated: Use tenant_additional_questions instead. This field will be removed in a future release.
3504
3521
  *
3505
- * @generated from field: map<string, string> metadata_questions = 11;
3522
+ * @generated from field: map<string, string> metadata_questions = 11 [deprecated = true];
3523
+ * @deprecated
3506
3524
  */
3507
3525
  metadataQuestions: {
3508
3526
  [key: string]: string;
@@ -3794,11 +3812,12 @@ export type NewContact = Message<"producerflow.producer.v1.NewContact"> & {
3794
3812
  address?: Address;
3795
3813
  /**
3796
3814
  * Role or position of the contact within the agency.
3797
- * Required and must be non-empty.
3815
+ * Required and must be a valid ContactRole enum value (not UNSPECIFIED).
3816
+ * See ContactRole enum for available options.
3798
3817
  *
3799
- * @generated from field: string role = 7;
3818
+ * @generated from field: producerflow.producer.v1.ContactRole role = 7;
3800
3819
  */
3801
- role: string;
3820
+ role: ContactRole;
3802
3821
  /**
3803
3822
  * Optional. External identifier for the contact in the tenant's system. This field allows tenants to maintain a reference to their own internal ID for this contact, enabling bi-directional synchronization between ProducerFlow and the tenant's system. Usage: Provide this when you have an existing identifier for the contact in your system. Omit if you don't need to track a reference to your internal system. This is independent of ProducerFlow's internal IDs and the authentication tenant context. Can be used with SetExternalID RPC to update this value after creation. Common use cases: Linking to an existing CRM or AMS system contact ID. Maintaining synchronization with legacy systems. Enabling lookups from external systems back to ProducerFlow. Format: Any string identifier that is meaningful in your system (e.g., "CONT-12345", "uuid"). Validation: Maximum length of 255 characters
3804
3823
  *
@@ -3953,8 +3972,10 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3953
3972
  phone: string;
3954
3973
  /**
3955
3974
  * Role or position of the contact within the agency.
3975
+ * Deprecated: Use role_type instead. This field will be removed in a future version.
3956
3976
  *
3957
- * @generated from field: string role = 7;
3977
+ * @generated from field: string role = 7 [deprecated = true];
3978
+ * @deprecated
3958
3979
  */
3959
3980
  role: string;
3960
3981
  /**
@@ -3975,6 +3996,13 @@ export type Contact = Message<"producerflow.producer.v1.Contact"> & {
3975
3996
  * @generated from field: google.protobuf.Timestamp created_at = 10;
3976
3997
  */
3977
3998
  createdAt?: Timestamp;
3999
+ /**
4000
+ * The role type of the contact as an enum.
4001
+ * This field replaces the deprecated string-based 'role' field.
4002
+ *
4003
+ * @generated from field: producerflow.producer.v1.ContactRole role_type = 11;
4004
+ */
4005
+ roleType: ContactRole;
3978
4006
  };
3979
4007
  /**
3980
4008
  * Describes the message producerflow.producer.v1.Contact.
@@ -4018,6 +4046,108 @@ export type ListAgencyContactsResponse = Message<"producerflow.producer.v1.ListA
4018
4046
  * Use `create(ListAgencyContactsResponseSchema)` to create a new message.
4019
4047
  */
4020
4048
  export declare const ListAgencyContactsResponseSchema: GenMessage<ListAgencyContactsResponse>;
4049
+ /**
4050
+ * UpdateContactRequest is used to update an existing contact's information.
4051
+ *
4052
+ * @generated from message producerflow.producer.v1.UpdateContactRequest
4053
+ */
4054
+ export type UpdateContactRequest = Message<"producerflow.producer.v1.UpdateContactRequest"> & {
4055
+ /**
4056
+ * The UUID of the contact to update.
4057
+ * Must be a valid UUID format.
4058
+ *
4059
+ * @generated from field: string contact_id = 1;
4060
+ */
4061
+ contactId: string;
4062
+ /**
4063
+ * The contact information to update.
4064
+ * The field is required.
4065
+ *
4066
+ * @generated from field: producerflow.producer.v1.UpdateContactRequest.Contact contact = 2;
4067
+ */
4068
+ contact?: UpdateContactRequest_Contact;
4069
+ };
4070
+ /**
4071
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.
4072
+ * Use `create(UpdateContactRequestSchema)` to create a new message.
4073
+ */
4074
+ export declare const UpdateContactRequestSchema: GenMessage<UpdateContactRequest>;
4075
+ /**
4076
+ * Contact contains the fields that can be updated for a contact.
4077
+ * All fields are optional, allowing partial updates.
4078
+ *
4079
+ * @generated from message producerflow.producer.v1.UpdateContactRequest.Contact
4080
+ */
4081
+ export type UpdateContactRequest_Contact = Message<"producerflow.producer.v1.UpdateContactRequest.Contact"> & {
4082
+ /**
4083
+ * First name of the contact.
4084
+ * If provided, must be non-empty.
4085
+ *
4086
+ * @generated from field: optional string first_name = 1;
4087
+ */
4088
+ firstName?: string;
4089
+ /**
4090
+ * Last name of the contact.
4091
+ * If provided, must be non-empty.
4092
+ *
4093
+ * @generated from field: optional string last_name = 2;
4094
+ */
4095
+ lastName?: string;
4096
+ /**
4097
+ * Middle name of the contact.
4098
+ * If provided, must be non-empty.
4099
+ *
4100
+ * @generated from field: optional string middle_name = 3;
4101
+ */
4102
+ middleName?: string;
4103
+ /**
4104
+ * Email address of the contact.
4105
+ * If provided, must be a valid email format.
4106
+ * Must be unique within the tenant.
4107
+ *
4108
+ * @generated from field: optional string email = 4;
4109
+ */
4110
+ email?: string;
4111
+ /**
4112
+ * Phone number of the contact.
4113
+ * If provided, must be a valid phone number format.
4114
+ *
4115
+ * @generated from field: optional string phone = 5;
4116
+ */
4117
+ phone?: string;
4118
+ /**
4119
+ * Role or position of the contact within the agency.
4120
+ * If provided, must be a valid ContactRole enum value (not UNSPECIFIED).
4121
+ * See ContactRole enum for available options.
4122
+ *
4123
+ * @generated from field: optional producerflow.producer.v1.ContactRole role = 6;
4124
+ */
4125
+ role?: ContactRole;
4126
+ /**
4127
+ * Mailing address of the contact.
4128
+ * If provided, all address fields should be included.
4129
+ * This replaces the entire address.
4130
+ *
4131
+ * @generated from field: optional producerflow.producer.v1.Address address = 7;
4132
+ */
4133
+ address?: Address;
4134
+ };
4135
+ /**
4136
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.Contact.
4137
+ * Use `create(UpdateContactRequest_ContactSchema)` to create a new message.
4138
+ */
4139
+ export declare const UpdateContactRequest_ContactSchema: GenMessage<UpdateContactRequest_Contact>;
4140
+ /**
4141
+ * UpdateContactResponse is the empty response returned after successfully updating a contact.
4142
+ *
4143
+ * @generated from message producerflow.producer.v1.UpdateContactResponse
4144
+ */
4145
+ export type UpdateContactResponse = Message<"producerflow.producer.v1.UpdateContactResponse"> & {};
4146
+ /**
4147
+ * Describes the message producerflow.producer.v1.UpdateContactResponse.
4148
+ * Use `create(UpdateContactResponseSchema)` to create a new message.
4149
+ */
4150
+ export declare const UpdateContactResponseSchema: GenMessage<UpdateContactResponse>;
4021
4151
  /**
4022
4152
  * SetExternalIDRequest is used to associate an external identifier with a producer, agency, or contact.
4023
4153
  * This allows integration with external systems that use different ID schemes.
@@ -5315,6 +5445,63 @@ export type UnassignProducerFromLocationsResponse = Message<"producerflow.produc
5315
5445
  * Use `create(UnassignProducerFromLocationsResponseSchema)` to create a new message.
5316
5446
  */
5317
5447
  export declare const UnassignProducerFromLocationsResponseSchema: GenMessage<UnassignProducerFromLocationsResponse>;
5448
+ /**
5449
+ * ContactRole defines the role or position of a contact within an agency.
5450
+ *
5451
+ * Contacts represent non-producer personnel associated with an agency.
5452
+ * These roles help categorize and organize contacts based on their
5453
+ * responsibilities and access levels.
5454
+ *
5455
+ * @generated from enum producerflow.producer.v1.ContactRole
5456
+ */
5457
+ export declare enum ContactRole {
5458
+ /**
5459
+ * Default unspecified value. Do not use.
5460
+ * This value is invalid and will be rejected by the API.
5461
+ *
5462
+ * @generated from enum value: CONTACT_ROLE_UNSPECIFIED = 0;
5463
+ */
5464
+ UNSPECIFIED = 0,
5465
+ /**
5466
+ * Agency Administrator: A contact with administrative responsibilities.
5467
+ * Typically has elevated permissions and manages agency operations.
5468
+ *
5469
+ * @generated from enum value: CONTACT_ROLE_AGENCY_ADMINISTRATOR = 1;
5470
+ */
5471
+ AGENCY_ADMINISTRATOR = 1,
5472
+ /**
5473
+ * Other: A contact role that doesn't fit into predefined categories.
5474
+ * Use this for flexible role assignment.
5475
+ *
5476
+ * @generated from enum value: CONTACT_ROLE_OTHER = 2;
5477
+ */
5478
+ OTHER = 2,
5479
+ /**
5480
+ * Customer Service Representative (CSR): A contact who handles customer inquiries
5481
+ * and support. Does not hold an insurance producer license.
5482
+ *
5483
+ * @generated from enum value: CONTACT_ROLE_CSR = 3;
5484
+ */
5485
+ CSR = 3,
5486
+ /**
5487
+ * Unlicensed Producer: An individual working in a producer-like capacity
5488
+ * but who does not hold an active insurance producer license.
5489
+ *
5490
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_PRODUCER = 4;
5491
+ */
5492
+ UNLICENSED_PRODUCER = 4,
5493
+ /**
5494
+ * Unlicensed Service: A contact providing services to the agency
5495
+ * without requiring an insurance license.
5496
+ *
5497
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_SERVICE = 5;
5498
+ */
5499
+ UNLICENSED_SERVICE = 5
5500
+ }
5501
+ /**
5502
+ * Describes the enum producerflow.producer.v1.ContactRole.
5503
+ */
5504
+ export declare const ContactRoleSchema: GenEnum<ContactRole>;
5318
5505
  /**
5319
5506
  * EntityType defines the business structure of an agency.
5320
5507
  *
@@ -6292,6 +6479,63 @@ export declare const ProducerService: GenService<{
6292
6479
  input: typeof ListAgencyContactsRequestSchema;
6293
6480
  output: typeof ListAgencyContactsResponseSchema;
6294
6481
  };
6482
+ /**
6483
+ * UpdateContact updates editable fields for an existing contact.
6484
+ *
6485
+ * This endpoint allows updating contact information for non-producer personnel
6486
+ * associated with an agency. All fields are optional, enabling partial updates
6487
+ * where only specified fields are modified.
6488
+ *
6489
+ * Updatable Fields:
6490
+ * - Name fields (first name, middle name, last name)
6491
+ * - Email address (must remain unique within tenant)
6492
+ * - Phone number
6493
+ * - Mailing address components
6494
+ * - Role within the agency
6495
+ *
6496
+ * Validation Rules:
6497
+ * Proto validation (format checks):
6498
+ * - contact_id: Required, must be a valid UUID format
6499
+ * - contact: Required, contains the fields to update
6500
+ * - first_name: If provided, must be non-empty
6501
+ * - last_name: If provided, must be non-empty
6502
+ * - middle_name: If provided, must be non-empty
6503
+ * - email: If provided, must be a valid email format
6504
+ * - phone: If provided, must match E.164 pattern (e.g., +15551234567)
6505
+ * - role: If provided, must be non-empty
6506
+ * - address (if provided, uses address_line_1 and address_line_2):
6507
+ * - address_line_1: If provided, must be non-empty
6508
+ * - address_line_2: If provided, must be non-empty
6509
+ * - city: If provided, must be non-empty
6510
+ * - state: If provided, must be exactly 2 characters (state code)
6511
+ * - zip: If provided, must be 1-10 characters
6512
+ *
6513
+ * Business logic validation:
6514
+ * - contact_id: Contact must exist and belong to the authenticated tenant
6515
+ * - email: If provided, must be unique within the tenant (across both producers and contacts)
6516
+ *
6517
+ * Update Behavior:
6518
+ * - Only fields explicitly provided in the request are updated
6519
+ * - Omitted optional fields remain unchanged
6520
+ * - Empty strings are treated as clearing the field value
6521
+ * - Address updates are all-or-nothing (provide complete address or omit entirely)
6522
+ *
6523
+ * Returns:
6524
+ * Empty response on success. The contact is updated atomically.
6525
+ *
6526
+ * Common Error Codes:
6527
+ * - NOT_FOUND: Contact doesn't exist or doesn't belong to tenant
6528
+ * - ALREADY_EXISTS: Email is already in use by another producer or contact within the tenant
6529
+ * - INVALID_ARGUMENT: Validation failed for one or more fields
6530
+ *
6531
+ *
6532
+ * @generated from rpc producerflow.producer.v1.ProducerService.UpdateContact
6533
+ */
6534
+ updateContact: {
6535
+ methodKind: "unary";
6536
+ input: typeof UpdateContactRequestSchema;
6537
+ output: typeof UpdateContactResponseSchema;
6538
+ };
6295
6539
  /**
6296
6540
  * SetExternalID sets an external identifier for a producer, agency, contact,
6297
6541
  * or organization.
@@ -4,8 +4,8 @@
4
4
  /* eslint-disable */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Agency_PrincipalSchema = exports.Agency_EOInfoSchema = exports.Agency_BankAccount_AccountTypeSchema = exports.Agency_BankAccount_AccountType = exports.Agency_BankAccountSchema = exports.Agency_AddressSchema = exports.Agency_AgencyInfoSchema = exports.AgencySchema = exports.ListNewProducersResponseSchema = exports.ListNewProducersRequestSchema = exports.UpdateAgencyResponseSchema = exports.UpdateAgencyRequest_Agency_AddressSchema = exports.UpdateAgencyRequest_AgencySchema = exports.UpdateAgencyRequestSchema = exports.UpdateProducerResponseSchema = exports.UpdateProducerRequest_ProducerSchema = exports.UpdateProducerRequestSchema = exports.GetAgencyFilesResponseSchema = exports.GetAgencyFilesRequestSchema = exports.GetAgencyAndProducersResponseSchema = exports.GetAgencyAndProducersRequestSchema = exports.GetProducerResponseSchema = exports.GetProducerRequest_EmailLookupSchema = exports.GetProducerRequest_ProducerNPNLookupSchema = exports.GetProducerRequest_ProducerIDLookupSchema = exports.GetProducerRequestSchema = exports.NewAgencyResponseSchema = exports.NewAgencyRequest_Agency_PointOfContact_CommunicationRoleSchema = exports.NewAgencyRequest_Agency_PointOfContact_CommunicationRole = exports.NewAgencyRequest_Agency_PointOfContactSchema = exports.NewAgencyRequest_Agency_BusinessHours_BusinessHourSchema = exports.NewAgencyRequest_Agency_BusinessHoursSchema = exports.NewAgencyRequest_Agency_EOInfoSchema = exports.NewAgencyRequest_Agency_BankAccount_AccountTypeSchema = exports.NewAgencyRequest_Agency_BankAccount_AccountType = exports.NewAgencyRequest_Agency_BankAccountSchema = exports.NewAgencyRequest_Agency_PrincipalSchema = exports.NewAgencyRequest_AgencySchema = exports.NewAgencyRequestSchema = exports.CreateProducerOnboardingURLResponseSchema = exports.ProducerData_AddressSchema = exports.ProducerDataSchema = exports.CreateProducerOnboardingURLRequestSchema = exports.CreateAgencyOnboardingURLResponseSchema = exports.CreateAgencyOnboardingURLRequest_Agency_PrincipalSchema = exports.CreateAgencyOnboardingURLRequest_AgencySchema = exports.CreateAgencyOnboardingURLRequestSchema = exports.AddressSchema = exports.PaginationSchema = exports.file_producerflow_producer_v1_producer = void 0;
7
- exports.ResyncProducerRequestSchema = exports.ResyncAgencyResponseSchema = exports.ResyncAgencyRequestSchema = exports.LookupNPNByFEINResponseSchema = exports.LookupNPNByFEINRequestSchema = exports.ValidateAgencyNPNResponseSchema = exports.ValidateAgencyNPNRequestSchema = exports.ValidateProducerNPNResponseSchema = exports.ValidateProducerNPNRequestSchema = exports.SetExternalIDResponseSchema = exports.SetExternalIDRequestSchema = exports.ListAgencyContactsResponseSchema = exports.ListAgencyContactsRequestSchema = exports.ContactSchema = exports.NewContactsResponseSchema = exports.NewContactsRequestSchema = exports.NewContactResponseSchema = exports.NewContactRequestSchema = exports.NewContactSchema = exports.NewProducersResponseSchema = exports.NewProducersRequestSchema = exports.NewProducerResponseSchema = exports.NewProducerRequestSchema = exports.NewProducer_AddressSchema = exports.NewProducerSchema = exports.Producer_AddressSchema = exports.Producer_NIPR_AppointmentSchema = exports.Producer_NIPR_ProducerRegulatoryInfo_RegulatoryActionSchema = exports.Producer_NIPR_ProducerRegulatoryInfoSchema = exports.Producer_NIPR_BiographicSchema = exports.Producer_NIPR_License_LicenseStatusSchema = exports.Producer_NIPR_License_LicenseStatus = exports.Producer_NIPR_License_LineOfAuthoritySchema = exports.Producer_NIPR_LicenseSchema = exports.Producer_NIPRSchema = exports.Producer_AgencySchema = exports.ProducerSchema = exports.Agency_NIPR_AppointmentSchema = exports.Agency_NIPR_RegulatoryInfo_RegulatoryActionSchema = exports.Agency_NIPR_RegulatoryInfoSchema = exports.Agency_NIPR_License_LicenseStatusSchema = exports.Agency_NIPR_License_LicenseStatus = exports.Agency_NIPR_License_LineOfAuthoritySchema = exports.Agency_NIPR_LicenseSchema = exports.Agency_NIPR_AddressSchema = exports.Agency_NIPR_BiographicSchema = exports.Agency_NIPRSchema = exports.Agency_BusinessHours_BusinessHourSchema = exports.Agency_BusinessHoursSchema = exports.Agency_IvansAccountSchema = void 0;
8
- exports.ProducerService = exports.NIPRSyncStateSchema = exports.NIPRSyncState = exports.AgencyTypeSchema = exports.AgencyType = exports.EntityTypeSchema = exports.EntityType = exports.UnassignProducerFromLocationsResponseSchema = exports.UnassignProducerFromLocationsRequestSchema = exports.AssignProducerToLocationsResponseSchema = exports.AssignProducerToLocationsRequestSchema = exports.UpdateAgencyLocationResponseSchema = exports.UpdateAgencyLocationRequestSchema = exports.ListAgencyLocationsResponseSchema = exports.ListAgencyLocationsRequestSchema = exports.RemoveAgencyLocationsResponseSchema = exports.RemoveAgencyLocationsRequestSchema = exports.AddAgencyLocationsResponseSchema = exports.LocationInputSchema = exports.AddAgencyLocationsRequestSchema = exports.LocationSchema = exports.CreateProducerUploadURLResponseSchema = exports.CreateProducerUploadURLRequestSchema = exports.CreateOrganizationResponseSchema = exports.CreateOrganizationRequestSchema = exports.GetOrganizationResponseSchema = exports.GetOrganizationRequestSchema = exports.ListOrganizationsResponseSchema = exports.OrganizationSchema = exports.ListOrganizationsRequestSchema = exports.ListAgenciesResponseSchema = exports.ListAgenciesRequestSchema = exports.AgencySummarySchema = exports.StopSyncAgencyWithNIPRResponseSchema = exports.StopSyncAgencyWithNIPRRequestSchema = exports.StopSyncProducerWithNIPRResponseSchema = exports.StopSyncProducerWithNIPRRequestSchema = exports.SyncAgencyWithNIPRResponseSchema = exports.SyncAgencyWithNIPRRequestSchema = exports.SyncProducerWithNIPRResponseSchema = exports.SyncProducerWithNIPRRequestSchema = exports.ResyncProducerResponseSchema = void 0;
7
+ exports.LookupNPNByFEINResponseSchema = exports.LookupNPNByFEINRequestSchema = exports.ValidateAgencyNPNResponseSchema = exports.ValidateAgencyNPNRequestSchema = exports.ValidateProducerNPNResponseSchema = exports.ValidateProducerNPNRequestSchema = exports.SetExternalIDResponseSchema = exports.SetExternalIDRequestSchema = exports.UpdateContactResponseSchema = exports.UpdateContactRequest_ContactSchema = exports.UpdateContactRequestSchema = exports.ListAgencyContactsResponseSchema = exports.ListAgencyContactsRequestSchema = exports.ContactSchema = exports.NewContactsResponseSchema = exports.NewContactsRequestSchema = exports.NewContactResponseSchema = exports.NewContactRequestSchema = exports.NewContactSchema = exports.NewProducersResponseSchema = exports.NewProducersRequestSchema = exports.NewProducerResponseSchema = exports.NewProducerRequestSchema = exports.NewProducer_AddressSchema = exports.NewProducerSchema = exports.Producer_AddressSchema = exports.Producer_NIPR_AppointmentSchema = exports.Producer_NIPR_ProducerRegulatoryInfo_RegulatoryActionSchema = exports.Producer_NIPR_ProducerRegulatoryInfoSchema = exports.Producer_NIPR_BiographicSchema = exports.Producer_NIPR_License_LicenseStatusSchema = exports.Producer_NIPR_License_LicenseStatus = exports.Producer_NIPR_License_LineOfAuthoritySchema = exports.Producer_NIPR_LicenseSchema = exports.Producer_NIPRSchema = exports.Producer_AgencySchema = exports.ProducerSchema = exports.Agency_NIPR_AppointmentSchema = exports.Agency_NIPR_RegulatoryInfo_RegulatoryActionSchema = exports.Agency_NIPR_RegulatoryInfoSchema = exports.Agency_NIPR_License_LicenseStatusSchema = exports.Agency_NIPR_License_LicenseStatus = exports.Agency_NIPR_License_LineOfAuthoritySchema = exports.Agency_NIPR_LicenseSchema = exports.Agency_NIPR_AddressSchema = exports.Agency_NIPR_BiographicSchema = exports.Agency_NIPRSchema = exports.Agency_BusinessHours_BusinessHourSchema = exports.Agency_BusinessHoursSchema = exports.Agency_IvansAccountSchema = void 0;
8
+ exports.ProducerService = exports.NIPRSyncStateSchema = exports.NIPRSyncState = exports.AgencyTypeSchema = exports.AgencyType = exports.EntityTypeSchema = exports.EntityType = exports.ContactRoleSchema = exports.ContactRole = exports.UnassignProducerFromLocationsResponseSchema = exports.UnassignProducerFromLocationsRequestSchema = exports.AssignProducerToLocationsResponseSchema = exports.AssignProducerToLocationsRequestSchema = exports.UpdateAgencyLocationResponseSchema = exports.UpdateAgencyLocationRequestSchema = exports.ListAgencyLocationsResponseSchema = exports.ListAgencyLocationsRequestSchema = exports.RemoveAgencyLocationsResponseSchema = exports.RemoveAgencyLocationsRequestSchema = exports.AddAgencyLocationsResponseSchema = exports.LocationInputSchema = exports.AddAgencyLocationsRequestSchema = exports.LocationSchema = exports.CreateProducerUploadURLResponseSchema = exports.CreateProducerUploadURLRequestSchema = exports.CreateOrganizationResponseSchema = exports.CreateOrganizationRequestSchema = exports.GetOrganizationResponseSchema = exports.GetOrganizationRequestSchema = exports.ListOrganizationsResponseSchema = exports.OrganizationSchema = exports.ListOrganizationsRequestSchema = exports.ListAgenciesResponseSchema = exports.ListAgenciesRequestSchema = exports.AgencySummarySchema = exports.StopSyncAgencyWithNIPRResponseSchema = exports.StopSyncAgencyWithNIPRRequestSchema = exports.StopSyncProducerWithNIPRResponseSchema = exports.StopSyncProducerWithNIPRRequestSchema = exports.SyncAgencyWithNIPRResponseSchema = exports.SyncAgencyWithNIPRRequestSchema = exports.SyncProducerWithNIPRResponseSchema = exports.SyncProducerWithNIPRRequestSchema = exports.ResyncProducerResponseSchema = exports.ResyncProducerRequestSchema = exports.ResyncAgencyResponseSchema = exports.ResyncAgencyRequestSchema = void 0;
9
9
  const codegenv2_1 = require("@bufbuild/protobuf/codegenv2");
10
10
  const validate_pb_1 = require("../../../buf/validate/validate_pb");
11
11
  const wkt_1 = require("@bufbuild/protobuf/wkt");
@@ -14,7 +14,7 @@ const timeofday_pb_1 = require("../../../google/type/timeofday_pb");
14
14
  /**
15
15
  * Describes the file producerflow/producer/v1/producer.proto.
16
16
  */
17
- exports.file_producerflow_producer_v1_producer = (0, codegenv2_1.fileDesc)("Cidwcm9kdWNlcmZsb3cvcHJvZHVjZXIvdjEvcHJvZHVjZXIucHJvdG8SGHByb2R1Y2VyZmxvdy5wcm9kdWNlci52MSI9CgpQYWdpbmF0aW9uEhsKCXBhZ2Vfc2l6ZRgBIAEoBUIIukgFGgMYyAESEgoKcGFnZV90b2tlbhgCIAEoCSLGAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEhYKDmFkZHJlc3NfbGluZV8xGAcgASgJEhUKBGNpdHkYAiABKAlCB7pIBHICEAESFwoFc3RhdGUYAyABKAlCCLpIBXIDmAECEhYKA3ppcBgEIAEoCUIJukgGcgQQARgKEg4KBmNvdW50eRgFIAEoCRIkCg5hZGRyZXNzX2xpbmVfMhgGIAEoCUIHukgEcgIQAUgAiAEBQhEKD19hZGRyZXNzX2xpbmVfMiLfBgogQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlcXVlc3QSUQoGYWdlbmN5GAEgASgLMkEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXF1ZXN0LkFnZW5jeRrnBQoGQWdlbmN5EgwKBG5hbWUYASABKAkSRwoLZW50aXR5X3R5cGUYAiABKA4yJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuRW50aXR5VHlwZUIMukgJggEGGAEYAhgDEhgKEHRlbmFudF9hZ2VuY3lfaWQYAyABKAkSHAoUZG9jdXNpZ25fdGVtcGxhdGVfaWQYBCABKAkSDAoEZmVpbhgFIAEoCRINCgVlbWFpbBgGIAEoCRINCgVwaG9uZRgHIAEoCRILCgNmYXgYCCABKAkSDwoHd2Vic2l0ZRgJIAEoCRILCgNucG4YCiABKAkSOgoPbWFpbGluZ19hZGRyZXNzGAsgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSOwoQcGh5c2ljYWxfYWRkcmVzcxgMIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEjwKEWludm9pY2luZ19hZGRyZXNzGA0gASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSFwoPb3JnYW5pemF0aW9uX2lkGA8gASgJEl4KCXByaW5jaXBhbBgOIAEoCzJLLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMUmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsGsYBCglQcmluY2lwYWwSHgoJdGVuYW50X2lkGAEgASgJQgu6SAjYAQJyAxj/ARISCgpmaXJzdF9uYW1lGAIgASgJEhEKCWxhc3RfbmFtZRgDIAEoCRITCgttaWRkbGVfbmFtZRgEIAEoCRINCgVlbWFpbBgFIAEoCRINCgVwaG9uZRgGIAEoCRILCgNucG4YByABKAkSMgoHYWRkcmVzcxgIIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzIjAKIUNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXNwb25zZRILCgN1cmwYASABKAkidgoiQ3JlYXRlUHJvZHVjZXJPbmJvYXJkaW5nVVJMUmVxdWVzdBIRCglhZ2VuY3lfaWQYASABKAkSPQoNcHJvZHVjZXJfZGF0YRgCIAEoCzImLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlckRhdGEi3AMKDFByb2R1Y2VyRGF0YRIbCgNucG4YASABKAlCCbpIBnIEEAEYCkgAiAEBEhcKCmZpcnN0X25hbWUYAiABKAlIAYgBARIWCglsYXN0X25hbWUYAyABKAlIAogBARIYCgttaWRkbGVfbmFtZRgEIAEoCUgDiAEBEhIKBWVtYWlsGAUgASgJSASIAQESEgoFcGhvbmUYBiABKAlIBYgBARJHCg9tYWlsaW5nX2FkZHJlc3MYByABKAsyLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXJEYXRhLkFkZHJlc3MaqQEKB0FkZHJlc3MSEgoGc3RyZWV0GAEgASgJQgIYARIMCgRjaXR5GAIgASgJEg0KBXN0YXRlGAMgASgJEgsKA3ppcBgEIAEoCRIPCgdjb3VudHJ5GAUgASgJEiQKDmFkZHJlc3NfbGluZV8yGAYgASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYByABKAlCEQoPX2FkZHJlc3NfbGluZV8yQgYKBF9ucG5CDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUIOCgxfbWlkZGxlX25hbWVCCAoGX2VtYWlsQggKBl9waG9uZSI9CiNDcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXNwb25zZRIWCg5vbmJvYXJkaW5nX3VybBgBIAEoCSLAGgoQTmV3QWdlbmN5UmVxdWVzdBJJCgZhZ2VuY3kYASABKAsyMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3lCBrpIA8gBARIbCg5zeW5jX3dpdGhfbmlwchgDIAEoCEgAiAEBGrAZCgZBZ2VuY3kSFQoEbmFtZRgBIAEoCUIHukgEcgIQARIWCgVlbWFpbBgCIAEoCUIHukgEcgJgARILCgNucG4YAyABKAkSKwoFcGhvbmUYBSABKAlCHLpIGdgBAnIUMhJeXCs/WzEtOV1cZHsxLDE0fSQSDwoHd2Vic2l0ZRgGIAEoCRJWCglwcmluY2lwYWwYByABKAsyOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsQga6SAPIAQESUwoMYmFua19hY2NvdW50GAkgASgLMj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJhbmtBY2NvdW50EkkKB2VvX2luZm8YCiABKAsyOC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuRU9JbmZvElcKDmJ1c2luZXNzX2hvdXJzGAsgASgLMj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJ1c2luZXNzSG91cnMSOAoJcHJvZHVjZXJzGAwgAygLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyElsKEXBvaW50c19vZl9jb250YWN0GA0gAygLMkAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlBvaW50T2ZDb250YWN0Ei8KFHJvb3Rfb3JnYW5pemF0aW9uX2lkGA4gASgJQgy6SAnYAQJyBBABGCRIAIgBARJFCgtlbnRpdHlfdHlwZRgPIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlQgq6SAeCAQQYARgCEh4KBGZlaW4YECABKAlCC7pICNgBAnIDmAEJSAGIAQESOgoPbWFpbGluZ19hZGRyZXNzGAggASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSOwoQcGh5c2ljYWxfYWRkcmVzcxgRIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEjwKEWludm9pY2luZ19hZGRyZXNzGBIgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSGAoQdGVuYW50X2FnZW5jeV9pZBgTIAEoCRJECglsb2NhdGlvbnMYFCADKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb25JbnB1dEIIukgFkgECEGQSZAoSbWV0YWRhdGFfcXVlc3Rpb25zGBUgAygLMkgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5Lk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSdQobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGBYgAygLMlAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRqFBAoJUHJpbmNpcGFsEhsKCmZpcnN0X25hbWUYASABKAlCB7pIBHICEAESGgoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABEhMKC21pZGRsZV9uYW1lGA0gASgJEhYKBWVtYWlsGAMgASgJQge6SARyAmABEisKBXBob25lGAQgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEhYKA25wbhgFIAEoCUIJukgGcgQQARgKEh4KCXRlbmFudF9pZBgGIAEoCUILukgI2AECcgMY/wESGwoOc3luY193aXRoX25pcHIYByABKAhIAIgBARJ/Cht0ZW5hbnRfYWRkaXRpb25hbF9xdWVzdGlvbnMYCCADKAsyWi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRI6Cg9tYWlsaW5nX2FkZHJlc3MYCSABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIRCg9fc3luY193aXRoX25pcHIawwIKC0JhbmtBY2NvdW50EiEKDmFjY291bnRfbnVtYmVyGAEgASgJQgm6SAZyBBAIGBESIAoOcm91dGluZ19udW1iZXIYAiABKAlCCLpIBXIDmAEJEmcKDGFjY291bnRfdHlwZRgDIAEoDjJJLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5CYW5rQWNjb3VudC5BY2NvdW50VHlwZUIGukgDyAEBEiQKE2FjY291bnRfaG9sZGVyX25hbWUYBCABKAlCB7pIBHICEAEiYAoLQWNjb3VudFR5cGUSHAoYQUNDT1VOVF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVQUNDT1VOVF9UWVBFX0NIRUNLSU5HEAESGAoUQUNDT1VOVF9UWVBFX1NBVklOR1MQAhrgAQoGRU9JbmZvEhgKB2NhcnJpZXIYASABKAlCB7pIBHICEAESPQoPZXhwaXJhdGlvbl9kYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIIukgFsgECQAESIAoPY292ZXJhZ2VfYW1vdW50GAMgASgJQge6SARyAhABEjoKDmVmZmVjdGl2ZV9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEh8KDnBlcl9vY2N1cnJlbmNlGAUgASgJQge6SARyAhABGs8CCg1CdXNpbmVzc0hvdXJzEhkKCHRpbWV6b25lGAEgASgJQge6SARyAhABEmwKDmJ1c2luZXNzX2hvdXJzGAIgAygLMkwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJ1c2luZXNzSG91cnMuQnVzaW5lc3NIb3VyQga6SAPIAQEatAEKDEJ1c2luZXNzSG91chI4Cgl3ZWVrX2RheXMYASADKA4yFi5nb29nbGUudHlwZS5EYXlPZldlZWtCDbpICsgBAZIBBAgBEAcSNAoMb3BlbmluZ190aW1lGAIgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5Qga6SAPIAQESNAoMY2xvc2luZ190aW1lGAMgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5Qga6SAPIAQEalgMKDlBvaW50T2ZDb250YWN0EhYKBWVtYWlsGAEgASgJQge6SARyAmABEmgKBHJvbGUYAiABKA4yUi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUG9pbnRPZkNvbnRhY3QuQ29tbXVuaWNhdGlvblJvbGVCBrpIA8gBASKBAgoRQ29tbXVuaWNhdGlvblJvbGUSIgoeQ09NTVVOSUNBVElPTl9ST0xFX1VOU1BFQ0lGSUVEEAASIQodQ09NTVVOSUNBVElPTl9ST0xFX0FDQ09VTlRJTkcQARIgChxDT01NVU5JQ0FUSU9OX1JPTEVfTElDRU5TSU5HEAISIAocQ09NTVVOSUNBVElPTl9ST0xFX1JFUE9SVElORxADEhwKGENPTU1VTklDQVRJT05fUk9MRV9TQUxFUxAEEicKI0NPTU1VTklDQVRJT05fUk9MRV9DVVNUT01FUl9TRVJWSUNFEAUSGgoWQ09NTVVOSUNBVElPTl9ST0xFX0FMTBAGGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIXChVfcm9vdF9vcmdhbml6YXRpb25faWRCBwoFX2ZlaW5CEQoPX3N5bmNfd2l0aF9uaXByImgKEU5ld0FnZW5jeVJlc3BvbnNlEhEKCWFnZW5jeV9pZBgBIAEoCRIUCgxwcm9kdWNlcl9pZHMYAiADKAkSFAoMcHJpbmNpcGFsX2lkGAMgASgJEhQKDGxvY2F0aW9uX2lkcxgEIAMoCSK/AwoSR2V0UHJvZHVjZXJSZXF1ZXN0ElsKEnByb2R1Y2VyX2lkX2xvb2t1cBgBIAEoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXJJRExvb2t1cEgAElQKCm5wbl9sb29rdXAYAiABKAsyPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0UHJvZHVjZXJSZXF1ZXN0LlByb2R1Y2VyTlBOTG9va3VwSAASUAoMZW1haWxfbG9va3VwGAMgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVxdWVzdC5FbWFpbExvb2t1cEgAGjEKEFByb2R1Y2VySURMb29rdXASHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBGjIKEVByb2R1Y2VyTlBOTG9va3VwEh0KDHByb2R1Y2VyX25wbhgBIAEoCUIHukgEcgIQARolCgtFbWFpbExvb2t1cBIWCgVlbWFpbBgBIAEoCUIHukgEcgJgAUIWCg1sb29rdXBfbWV0aG9kEgW6SAIIASJLChNHZXRQcm9kdWNlclJlc3BvbnNlEjQKCHByb2R1Y2VyGAEgASgLMiIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyIjsKHEdldEFnZW5jeUFuZFByb2R1Y2Vyc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABASKIAQodR2V0QWdlbmN5QW5kUHJvZHVjZXJzUmVzcG9uc2USMAoGYWdlbmN5GAEgASgLMiAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeRI1Cglwcm9kdWNlcnMYAiADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIiNAoVR2V0QWdlbmN5RmlsZXNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEilAEKFkdldEFnZW5jeUZpbGVzUmVzcG9uc2USEgoKZW9fZG9jX3VybBgBIAEoCRIcChR2b2lkZWRfY2hlY2tfZG9jX3VybBgCIAEoCRISCgp3OV9kb2NfdXJsGAMgASgJEhcKD2xpY2Vuc2VfZG9jX3VybBgEIAEoCRIbChNicm9rZXJfYm9uZF9kb2NfdXJsGAUgASgJIt8GChVVcGRhdGVQcm9kdWNlclJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBElIKCHByb2R1Y2VyGAIgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVxdWVzdC5Qcm9kdWNlckIGukgDyAEBGtIFCghQcm9kdWNlchIgCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABSACIAQESHwoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABSAGIAQESIQoLbWlkZGxlX25hbWUYCiABKAlCB7pIBHICEAFIAogBARIbCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgDiAEBEhsKA25wbhgEIAEoCUIJGAG6SARyAhABSASIAQESLQoFcGhvbmUYBSABKAlCGbpIFnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIBYgBARIeCgZzdHJlZXQYBiABKAlCCRgBukgEcgIQAUgGiAEBEiQKDmFkZHJlc3NfbGluZV8xGA4gASgJQge6SARyAhABSAeIAQESJAoOYWRkcmVzc19saW5lXzIYDSABKAlCB7pIBHICEAFICIgBARIaCgRjaXR5GAcgASgJQge6SARyAhABSAmIAQESGwoFc3RhdGUYCCABKAlCB7pIBHICGAJICogBARIZCgN6aXAYCSABKAlCB7pIBHICEAVIC4gBARJpChFleHRlcm5hbF9tZXRhZGF0YRgLIAMoCzJOLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXIuRXh0ZXJuYWxNZXRhZGF0YUVudHJ5GjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDgoMX21pZGRsZV9uYW1lQggKBl9lbWFpbEIGCgRfbnBuQggKBl9waG9uZUIJCgdfc3RyZWV0QhEKD19hZGRyZXNzX2xpbmVfMUIRCg9fYWRkcmVzc19saW5lXzJCBwoFX2NpdHlCCAoGX3N0YXRlQgYKBF96aXAiGAoWVXBkYXRlUHJvZHVjZXJSZXNwb25zZSLkBwoTVXBkYXRlQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkwKBmFnZW5jeRgCIAEoCzI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lSZXF1ZXN0LkFnZW5jeUIGukgDyAEBGuEGCgZBZ2VuY3kSGwoFZW1haWwYASABKAlCB7pIBHICYAFIAIgBARItCgVwaG9uZRgCIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JEgBiAEBEi4KA2ZheBgDIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgCiAEBEiEKB3dlYnNpdGUYBCABKAlCC7pICNgBAnIDiAEBSAOIAQESOAoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgFIAMoCUIYukgVkgESGAEiDnIMMgpeW0EtWl17Mn0kEh8KBW5vdGVzGAYgASgJQgu6SAjYAQJyAxj0A0gEiAEBElsKEHBoeXNpY2FsX2FkZHJlc3MYByABKAsyPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVxdWVzdC5BZ2VuY3kuQWRkcmVzc0gFiAEBEmUKEWV4dGVybmFsX21ldGFkYXRhGAggAygLMkoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlcXVlc3QuQWdlbmN5LkV4dGVybmFsTWV0YWRhdGFFbnRyeRqYAgoHQWRkcmVzcxIeCgZzdHJlZXQYASABKAlCCRgBukgEcgIQAUgAiAEBEhoKBGNpdHkYAiABKAlCB7pIBHICEAFIAYgBARIcCgVzdGF0ZRgDIAEoCUIIukgFcgOYAQJIAogBARIbCgN6aXAYBCABKAlCCbpIBnIEEAEYCkgDiAEBEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSASIAQESJAoOYWRkcmVzc19saW5lXzEYBiABKAlCB7pIBHICEAFIBYgBAUIJCgdfc3RyZWV0QgcKBV9jaXR5QggKBl9zdGF0ZUIGCgRfemlwQhEKD19hZGRyZXNzX2xpbmVfMkIRCg9fYWRkcmVzc19saW5lXzEaNwoVRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCAoGX2VtYWlsQggKBl9waG9uZUIGCgRfZmF4QgoKCF93ZWJzaXRlQggKBl9ub3Rlc0ITChFfcGh5c2ljYWxfYWRkcmVzcyIWChRVcGRhdGVBZ2VuY3lSZXNwb25zZSJJChdMaXN0TmV3UHJvZHVjZXJzUmVxdWVzdBIgCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBSACIAQFCDAoKX2FnZW5jeV9pZCJVChhMaXN0TmV3UHJvZHVjZXJzUmVzcG9uc2USOQoNbmV3X3Byb2R1Y2VycxgBIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlciLTJgoGQWdlbmN5EhEKCWFnZW5jeV9pZBgBIAEoCRJACgthZ2VuY3lfaW5mbxgCIAEoCzIrLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mbxJCChBwaHlzaWNhbF9hZGRyZXNzGAMgASgLMigucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZGRyZXNzEkEKD21haWxpbmdfYWRkcmVzcxgEIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJDChFpbnZvaWNpbmdfYWRkcmVzcxgKIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJCCgxiYW5rX2FjY291bnQYBSABKAsyLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkJhbmtBY2NvdW50EjgKB2VvX2luZm8YBiABKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkVPSW5mbxI9CglwcmluY2lwYWwYByABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LlByaW5jaXBhbBJECg1pdmFuc19hY2NvdW50GAggASgLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5JdmFuc0FjY291bnQSHgoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgJIAMoCRJGCg5idXNpbmVzc19ob3VycxgLIAEoCzIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQnVzaW5lc3NIb3VycxIzCgRuaXByGAwgASgLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSEjUKCWxvY2F0aW9ucxgNIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbhq5BQoKQWdlbmN5SW5mbxIVCg1vbmJvYXJkaW5nX2lkGAEgASgJEhwKFHJvb3Rfb3JnYW5pemF0aW9uX2lkGAIgASgJEhMKC2FnZW5jeV9uYW1lGAMgASgJEhMKC2FnZW5jeV9mZWluGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgsKA2ZheBgHIAEoCRIPCgd3ZWJzaXRlGAggASgJEgsKA25wbhgJIAEoCRIfChdwZGJfYWxlcnRzX3N5bmNfZW5hYmxlZBgKIAEoCBJeChJtZXRhZGF0YV9xdWVzdGlvbnMYCyADKAsyQi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkFnZW5jeUluZm8uTWV0YWRhdGFRdWVzdGlvbnNFbnRyeRJcChFleHRlcm5hbF9tZXRhZGF0YRgMIAMoCzJBLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mby5FeHRlcm5hbE1ldGFkYXRhRW50cnkSbwobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGA0gAygLMkoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZ2VuY3lJbmZvLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRo4ChZNZXRhZGF0YVF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaNwoVRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaQAoeVGVuYW50QWRkaXRpb25hbFF1ZXN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEajwEKB0FkZHJlc3MSEgoGc3RyZWV0GAEgASgJQgIYARIMCgRjaXR5GAIgASgJEg0KBXN0YXRlGAMgASgJEgsKA3ppcBgEIAEoCRIWCg5hZGRyZXNzX2xpbmVfMRgFIAEoCRIbCg5hZGRyZXNzX2xpbmVfMhgGIAEoCUgAiAEBQhEKD19hZGRyZXNzX2xpbmVfMhqMAgoLQmFua0FjY291bnQSFgoOYWNjb3VudF9udW1iZXIYASABKAkSFgoOcm91dGluZ19udW1iZXIYAiABKAkSTgoMYWNjb3VudF90eXBlGAMgASgOMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5CYW5rQWNjb3VudC5BY2NvdW50VHlwZRIbChNhY2NvdW50X2hvbGRlcl9uYW1lGAQgASgJImAKC0FjY291bnRUeXBlEhwKGEFDQ09VTlRfVFlQRV9VTlNQRUNJRklFRBAAEhkKFUFDQ09VTlRfVFlQRV9DSEVDS0lORxABEhgKFEFDQ09VTlRfVFlQRV9TQVZJTkdTEAIaswEKBkVPSW5mbxIPCgdjYXJyaWVyGAEgASgJEjMKD2V4cGlyYXRpb25fZGF0ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPY292ZXJhZ2VfYW1vdW50GAMgASgJEhYKDnBlcl9vY2N1cnJlbmNlGAQgASgJEjIKDmVmZmVjdGl2ZV9kYXRlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBq5AQoJUHJpbmNpcGFsEgoKAmlkGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEQoJbGFzdF9uYW1lGAMgASgJEhMKC21pZGRsZV9uYW1lGAkgASgJEg0KBWVtYWlsGAQgASgJEgsKA25wbhgFIAEoCRINCgVwaG9uZRgGIAEoCRI5CgdhZGRyZXNzGAggASgLMigucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZGRyZXNzGmkKDEl2YW5zQWNjb3VudBIWCg5hY2NvdW50X251bWJlchgBIAEoCRIUCgxhbXNfc29mdHdhcmUYAiABKAkSEwoLYW1zX3ZlcnNpb24YAyABKAkSFgoObWFpbGJveF9udW1iZXIYBCABKAkajgIKDUJ1c2luZXNzSG91cnMSEAoIdGltZXpvbmUYASABKAkSUwoOYnVzaW5lc3NfaG91cnMYAiADKAsyOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkJ1c2luZXNzSG91cnMuQnVzaW5lc3NIb3VyGpUBCgxCdXNpbmVzc0hvdXISKQoJd2Vla19kYXlzGAEgAygOMhYuZ29vZ2xlLnR5cGUuRGF5T2ZXZWVrEiwKDG9wZW5pbmdfdGltZRgCIAEoCzIWLmdvb2dsZS50eXBlLlRpbWVPZkRheRIsCgxjbG9zaW5nX3RpbWUYAyABKAsyFi5nb29nbGUudHlwZS5UaW1lT2ZEYXkahRIKBE5JUFISRAoKYmlvZ3JhcGhpYxgBIAEoCzIwLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5CaW9ncmFwaGljEkAKCWFkZHJlc3NlcxgCIAMoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5BZGRyZXNzEj8KCGxpY2Vuc2VzGAMgAygLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLkxpY2Vuc2USTQoPcmVndWxhdG9yeV9pbmZvGAQgASgLMjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLlJlZ3VsYXRvcnlJbmZvEkcKDGFwcG9pbnRtZW50cxgFIAMoCzIxLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5BcHBvaW50bWVudBqdAQoKQmlvZ3JhcGhpYxIUCgxjb21wYW55X25hbWUYASABKAkSDAoEZmVpbhgCIAEoCRILCgNucG4YAyABKAkSFgoOYnVzaW5lc3NfZW1haWwYBCABKAkSFgoOYnVzaW5lc3NfcGhvbmUYBSABKAkSLgoKdXBkYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAahAIKB0FkZHJlc3MSFAoMYWRkcmVzc190eXBlGAEgASgJEg0KBXN0YXRlGAIgASgJEhUKDWFkZHJlc3Nfc3RhdGUYAyABKAkSEgoGc3RyZWV0GAQgASgJQgIYARIQCgh6aXBfY29kZRgFIAEoCRIMCgRjaXR5GAYgASgJEg8KB2NvdW50cnkYByABKAkSMAoMZGF0ZV91cGRhdGVkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5hZGRyZXNzX2xpbmVfMRgKIAEoCRrqBQoHTGljZW5zZRIWCg5saWNlbnNlX251bWJlchgBIAEoCRIVCg1saWNlbnNlX3N0YXRlGAIgASgJEhgKEHJlc2lkZW5jeV9zdGF0dXMYAyABKAkSDgoGYWN0aXZlGAQgASgIEksKBnN0YXR1cxgFIAEoDjI7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5MaWNlbnNlLkxpY2Vuc2VTdGF0dXMSMwoPZXhwaXJhdGlvbl9kYXRlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1saWNlbnNlX2NsYXNzGAcgASgJEhoKEmxpY2Vuc2VfY2xhc3NfY29kZRgIIAEoBRIuCgppc3N1ZV9kYXRlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgt1cGRhdGVfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgLIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASWQoSbGluZXNfb2ZfYXV0aG9yaXR5GAwgAygLMj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLkxpY2Vuc2UuTGluZU9mQXV0aG9yaXR5Gl4KD0xpbmVPZkF1dGhvcml0eRILCgNsb2EYASABKAkSDgoGYWN0aXZlGAIgASgIEi4KCmlzc3VlX2RhdGUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIoQBCg1MaWNlbnNlU3RhdHVzEh4KGkxJQ0VOU0VfU1RBVFVTX1VOU1BFQ0lGSUVEEAASGgoWTElDRU5TRV9TVEFUVVNfRVhQSVJFRBABEhgKFExJQ0VOU0VfU1RBVFVTX1ZBTElEEAISHQoZTElDRU5TRV9TVEFUVVNfTk9UX0FDVElWRRADGsMDCg5SZWd1bGF0b3J5SW5mbxJhChJyZWd1bGF0b3J5X2FjdGlvbnMYASADKAsyRS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuUmVndWxhdG9yeUluZm8uUmVndWxhdG9yeUFjdGlvbhrNAgoQUmVndWxhdG9yeUFjdGlvbhIRCglhY3Rpb25faWQYASABKAkSEgoKc3RhdGVfY29kZRgCIAEoCRIZChFyZWFzb25fZm9yX2FjdGlvbhgDIAEoCRITCgtkaXNwb3NpdGlvbhgEIAEoCRIyCg5kYXRlX29mX2FjdGlvbhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZWZmZWN0aXZlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmVudGVyX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGZpbGVfcmVmGAggASgJEh8KF3BlbmFsdHlfZmluZV9mb3JmZWl0dXJlGAkgASgJEhcKD2xlbmd0aF9vZl9vcmRlchgKIAEoCRrBAgoLQXBwb2ludG1lbnQSEQoJYnJhbmNoX2lkGAEgASgJEhQKDGNvbXBhbnlfbmFtZRgCIAEoCRIMCgRmZWluGAMgASgJEg8KB2NvX2NvZGUYBCABKAkSGQoRbGluZV9vZl9hdXRob3JpdHkYBSABKAkSEAoIbG9hX2NvZGUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhoKEnRlcm1pbmF0aW9uX3JlYXNvbhgIIAEoCRI2ChJzdGF0dXNfcmVhc29uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjwKGGFwcG9pbnRtZW50X3JlbmV3YWxfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTYWdlbmN5X2FmZmlsaWF0aW9ucxgLIAEoCSKlGQoIUHJvZHVjZXISCgoCaWQYASABKAkSEgoKZmlyc3RfbmFtZRgPIAEoCRITCgttaWRkbGVfbmFtZRgQIAEoCRIRCglsYXN0X25hbWUYESABKAkSDQoFZW1haWwYAyABKAkSCwoDbnBuGAQgASgJEg0KBXBob25lGAUgASgJEh8KF3BkYl9hbGVydHNfc3luY19lbmFibGVkGA0gASgIEjkKBmFnZW5jeRgHIAEoCzIpLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5BZ2VuY3kSNQoEbmlwchgGIAEoCzInLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSEhQKDGlzX3ByaW5jaXBhbBgMIAEoCBIeChZyZXF1ZXN0ZWRfYXBwb2ludG1lbnRzGA4gAygJEjsKB2FkZHJlc3MYEiABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuQWRkcmVzcxI1Cglsb2NhdGlvbnMYEyADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24SVQoSbWV0YWRhdGFfcXVlc3Rpb25zGCggAygLMjkucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSUwoRZXh0ZXJuYWxfbWV0YWRhdGEYKSADKAsyOC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EmYKG3RlbmFudF9hZGRpdGlvbmFsX3F1ZXN0aW9ucxgqIAMoCzJBLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkaKQoGQWdlbmN5EhEKCWFnZW5jeV9pZBgBIAEoCRIMCgRuYW1lGAIgASgJGtkQCgROSVBSEkEKCGxpY2Vuc2VzGAYgAygLMi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuTGljZW5zZRJGCgpiaW9ncmFwaGljGAggASgLMjIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuQmlvZ3JhcGhpYxJXCg9yZWd1bGF0b3J5X2luZm8YCSABKAsyPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5Qcm9kdWNlclJlZ3VsYXRvcnlJbmZvEkkKDGFwcG9pbnRtZW50cxgKIAMoCzIzLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLkFwcG9pbnRtZW50GtoECgdMaWNlbnNlEhYKDmxpY2Vuc2VfbnVtYmVyGAEgASgJEhUKDWxpY2Vuc2Vfc3RhdGUYAiABKAkSGAoQcmVzaWRlbmN5X3N0YXR1cxgDIAEoCRIOCgZhY3RpdmUYBCABKAgSTQoGc3RhdHVzGAUgASgOMj0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuTGljZW5zZS5MaWNlbnNlU3RhdHVzEjMKD2V4cGlyYXRpb25fZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASWwoSbGluZXNfb2ZfYXV0aG9yaXR5GAggAygLMj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuTGljZW5zZS5MaW5lT2ZBdXRob3JpdHkaXgoPTGluZU9mQXV0aG9yaXR5EgsKA2xvYRgBIAEoCRIOCgZhY3RpdmUYAiABKAgSLgoKaXNzdWVfZGF0ZRgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihAEKDUxpY2Vuc2VTdGF0dXMSHgoaTElDRU5TRV9TVEFUVVNfVU5TUEVDSUZJRUQQABIaChZMSUNFTlNFX1NUQVRVU19FWFBJUkVEEAESGAoUTElDRU5TRV9TVEFUVVNfVkFMSUQQAhIdChlMSUNFTlNFX1NUQVRVU19OT1RfQUNUSVZFEAMatwEKCkJpb2dyYXBoaWMSEQoJbGFzdF9uYW1lGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEwoLbWlkZGxlX25hbWUYAyABKAkSMQoNZGF0ZV9vZl9iaXJ0aBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEZmVpbhgHIAEoCRIUCgxjb21wYW55X25hbWUYCCABKAkSFgoOc3RhdGVfZG9taWNpbGUYCSABKAkaxgUKFlByb2R1Y2VyUmVndWxhdG9yeUluZm8SgQEKG3JlZ3VsYXRvcnlfYWN0aW9uc19ieV9zdGF0ZRgBIAMoCzJcLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLlByb2R1Y2VyUmVndWxhdG9yeUluZm8uUmVndWxhdG9yeUFjdGlvbnNCeVN0YXRlRW50cnkSJAocY2xlYXJhbmNlX2NlcnRpZmljYXRpb25faW5mbxgCIAEoCRIZChFuYXNkX2V4YW1fZGV0YWlscxgDIAEoCRrTAgoQUmVndWxhdG9yeUFjdGlvbhIRCglhY3Rpb25faWQYASABKAkSGAoQb3JpZ2luX29mX2FjdGlvbhgCIAEoCRIZChFyZWFzb25fZm9yX2FjdGlvbhgDIAEoCRITCgtkaXNwb3NpdGlvbhgEIAEoCRIyCg5kYXRlX29mX2FjdGlvbhgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoOZWZmZWN0aXZlX2RhdGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCmVudGVyX2RhdGUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGZpbGVfcmVmGAggASgJEh8KF3BlbmFsdHlfZmluZV9mb3JmZWl0dXJlGAkgASgJEhcKD2xlbmd0aF9vZl9vcmRlchgKIAEoCRqQAQodUmVndWxhdG9yeUFjdGlvbnNCeVN0YXRlRW50cnkSCwoDa2V5GAEgASgJEl4KBXZhbHVlGAIgASgLMk8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuUHJvZHVjZXJSZWd1bGF0b3J5SW5mby5SZWd1bGF0b3J5QWN0aW9uOgI4ARrBAgoLQXBwb2ludG1lbnQSEQoJYnJhbmNoX2lkGAEgASgJEhQKDGNvbXBhbnlfbmFtZRgCIAEoCRIMCgRmZWluGAMgASgJEg8KB2NvX2NvZGUYBCABKAkSGQoRbGluZV9vZl9hdXRob3JpdHkYBSABKAkSEAoIbG9hX2NvZGUYBiABKAkSDgoGc3RhdHVzGAcgASgJEhoKEnRlcm1pbmF0aW9uX3JlYXNvbhgIIAEoCRI2ChJzdGF0dXNfcmVhc29uX2RhdGUYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjwKGGFwcG9pbnRtZW50X3JlbmV3YWxfZGF0ZRgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTYWdlbmN5X2FmZmlsaWF0aW9ucxgLIAEoCRqYAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEgwKBGNpdHkYAiABKAkSDQoFc3RhdGUYAyABKAkSCwoDemlwGAQgASgJEiQKDmFkZHJlc3NfbGluZV8yGA0gASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYDiABKAlCEQoPX2FkZHJlc3NfbGluZV8yGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVFeHRlcm5hbE1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASK2BgoLTmV3UHJvZHVjZXISGwoKZmlyc3RfbmFtZRgBIAEoCUIHukgEcgIQARIaCglsYXN0X25hbWUYAiABKAlCB7pIBHICEAESEwoLbWlkZGxlX25hbWUYByABKAkSFgoFZW1haWwYAyABKAlCB7pIBHICYAESCwoDbnBuGAQgASgJEisKBXBob25lGAUgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEkYKD21haWxpbmdfYWRkcmVzcxgGIAEoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlci5BZGRyZXNzEh4KCXRlbmFudF9pZBgIIAEoCUILukgI2AECcgMY/wESJQoMbG9jYXRpb25faWRzGAogAygJQg+6SAySAQkQZCIFcgOwAQESWAoSbWV0YWRhdGFfcXVlc3Rpb25zGAsgAygLMjwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSaQobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGAwgAygLMkQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRq2AQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEhUKBGNpdHkYAiABKAlCB7pIBHICEAESFwoFc3RhdGUYAyABKAlCCLpIBXIDmAECEhYKA3ppcBgEIAEoCUIJukgGcgQQARgKEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYBiABKAlCEQoPX2FkZHJlc3NfbGluZV8yGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKiAQoSTmV3UHJvZHVjZXJSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESPwoIcHJvZHVjZXIYAiABKAsyJS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJCBrpIA8gBARIbCg5zeW5jX3dpdGhfbmlwchgDIAEoCEgAiAEBQhEKD19zeW5jX3dpdGhfbmlwciI0ChNOZXdQcm9kdWNlclJlc3BvbnNlEh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASKmAQoTTmV3UHJvZHVjZXJzUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkIKCXByb2R1Y2VycxgCIAMoCzIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlckIIukgFkgECCAESGwoOc3luY193aXRoX25pcHIYAyABKAhIAIgBAUIRCg9fc3luY193aXRoX25pcHIiLAoUTmV3UHJvZHVjZXJzUmVzcG9uc2USFAoMcHJvZHVjZXJfaWRzGAEgAygJIqQCCgpOZXdDb250YWN0EhsKCmZpcnN0X25hbWUYASABKAlCB7pIBHICEAESGgoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABEhMKC21pZGRsZV9uYW1lGAMgASgJEhYKBWVtYWlsGAQgASgJQge6SARyAmABEisKBXBob25lGAUgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEjIKB2FkZHJlc3MYBiABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxIVCgRyb2xlGAcgASgJQge6SARyAhABEh4KCXRlbmFudF9pZBgIIAEoCUILukgI2AECcgMY/wESEAoDbnBuGAkgASgJSACIAQFCBgoEX25wbiJvChFOZXdDb250YWN0UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEj0KB2NvbnRhY3QYAiABKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdEIGukgDyAEBIjIKEk5ld0NvbnRhY3RSZXNwb25zZRIcCgpjb250YWN0X2lkGAEgASgJQgi6SAVyA7ABASJzChJOZXdDb250YWN0c1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARJACghjb250YWN0cxgCIAMoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0Qgi6SAWSAQIIASIqChNOZXdDb250YWN0c1Jlc3BvbnNlEhMKC2NvbnRhY3RfaWRzGAEgAygJIu4BCgdDb250YWN0EgoKAmlkGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEwoLbWlkZGxlX25hbWUYAyABKAkSEQoJbGFzdF9uYW1lGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgwKBHJvbGUYByABKAkSMgoHYWRkcmVzcxgIIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzEgsKA25wbhgJIAEoCRIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI4ChlMaXN0QWdlbmN5Q29udGFjdHNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEiUQoaTGlzdEFnZW5jeUNvbnRhY3RzUmVzcG9uc2USMwoIY29udGFjdHMYASADKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ29udGFjdCLOAQoUU2V0RXh0ZXJuYWxJRFJlcXVlc3QSHwoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBSAASHQoJYWdlbmN5X2lkGAIgASgJQgi6SAVyA7ABAUgAEh4KCmNvbnRhY3RfaWQYAyABKAlCCLpIBXIDsAEBSAASIwoPb3JnYW5pemF0aW9uX2lkGAUgASgJQgi6SAVyA7ABAUgAEh0KCXRlbmFudF9pZBgEIAEoCUIKukgHcgUQARj/AUISCgllbnRpdHlfaWQSBbpIAggBIhcKFVNldEV4dGVybmFsSURSZXNwb25zZSJOChpWYWxpZGF0ZVByb2R1Y2VyTlBOUmVxdWVzdBIUCgNucG4YASABKAlCB7pIBHICEAESEQoEbmFtZRgCIAEoCUgAiAEBQgcKBV9uYW1lIiwKG1ZhbGlkYXRlUHJvZHVjZXJOUE5SZXNwb25zZRINCgV2YWxpZBgBIAEoCCIwChhWYWxpZGF0ZUFnZW5jeU5QTlJlcXVlc3QSFAoDbnBuGAEgASgJQge6SARyAhABIioKGVZhbGlkYXRlQWdlbmN5TlBOUmVzcG9uc2USDQoFdmFsaWQYASABKAgiMAoWTG9va3VwTlBOQnlGRUlOUmVxdWVzdBIWCgRmZWluGAEgASgJQgi6SAVyA5gBCSImChdMb29rdXBOUE5CeUZFSU5SZXNwb25zZRILCgNucG4YASABKAkiMgoTUmVzeW5jQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBIhYKFFJlc3luY0FnZW5jeVJlc3BvbnNlIjYKFVJlc3luY1Byb2R1Y2VyUmVxdWVzdBIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQEiGAoWUmVzeW5jUHJvZHVjZXJSZXNwb25zZSI8ChtTeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBIh4KHFN5bmNQcm9kdWNlcldpdGhOSVBSUmVzcG9uc2UiVAoZU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEhoKEnN5bmNfYWxsX3Byb2R1Y2VycxgCIAEoCCIcChpTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSJACh9TdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXF1ZXN0Eh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASIiCiBTdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSJYCh1TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEhoKEnN0b3BfYWxsX3Byb2R1Y2VycxgCIAEoCCIgCh5TdG9wU3luY0FnZW5jeVdpdGhOSVBSUmVzcG9uc2UigQIKDUFnZW5jeVN1bW1hcnkSEQoJYWdlbmN5X2lkGAEgASgJEgwKBG5hbWUYAiABKAkSDQoFZW1haWwYAyABKAkSDQoFcGhvbmUYBCABKAkSCwoDbnBuGAUgASgJEgwKBGZlaW4YBiABKAkSHAoPb3JnYW5pemF0aW9uX2lkGAcgASgJSACIAQESGAoQaXNfdGVuYW50X2FnZW5jeRgIIAEoCBIaChJpc19zb2xlX3Byb3ByaWV0b3IYCSABKAgSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCEgoQX29yZ2FuaXphdGlvbl9pZCKcAwoTTGlzdEFnZW5jaWVzUmVxdWVzdBImCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBSACIAQESGQoMc2VhcmNoX3F1ZXJ5GAIgASgJSAGIAQESOAoKcGFnaW5hdGlvbhgDIAEoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5QYWdpbmF0aW9uEj4KC2FnZW5jeV90eXBlGAQgASgOMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeVR5cGVIAogBARI+CgtlbnRpdHlfdHlwZRgFIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlSAOIAQESQwoSbmlwcl9zeW5jX3N0YXR1c2VzGAYgAygOMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5JUFJTeW5jU3RhdGVCEgoQX29yZ2FuaXphdGlvbl9pZEIPCg1fc2VhcmNoX3F1ZXJ5Qg4KDF9hZ2VuY3lfdHlwZUIOCgxfZW50aXR5X3R5cGUifwoUTGlzdEFnZW5jaWVzUmVzcG9uc2USOQoIYWdlbmNpZXMYASADKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5U3VtbWFyeRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiVAoYTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0EjgKCnBhZ2luYXRpb24YASABKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUGFnaW5hdGlvbiJMCgxPcmdhbml6YXRpb24SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRITCgtleHRlcm5hbF9pZBgDIAEoCRINCgVlbWFpbBgEIAEoCSKIAQoZTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZRI9Cg1vcmdhbml6YXRpb25zGAEgAygLMiYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk9yZ2FuaXphdGlvbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdG90YWxfY291bnQYAyABKAUiOwoWR2V0T3JnYW5pemF0aW9uUmVxdWVzdBIhCg9vcmdhbml6YXRpb25faWQYASABKAlCCLpIBXIDsAEBIlcKF0dldE9yZ2FuaXphdGlvblJlc3BvbnNlEjwKDG9yZ2FuaXphdGlvbhgBIAEoCzImLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Pcmdhbml6YXRpb24iVgoZQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdBIVCgRuYW1lGAEgASgJQge6SARyAhABEhMKC2V4dGVybmFsX2lkGAIgASgJEg0KBWVtYWlsGAMgASgJIjUKGkNyZWF0ZU9yZ2FuaXphdGlvblJlc3BvbnNlEhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCSJJCh5DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlcXVlc3QSJwoKYWdlbmN5X25wbhgBIAEoCUITukgQcg4QAhgKMgheWzAtOV0rJCIuCh9DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlc3BvbnNlEgsKA3VybBgBIAEoCSKbAQoITG9jYXRpb24SCgoCaWQYASABKAkSFQoEbmFtZRgCIAEoCUIHukgEcgIQARI6CgdhZGRyZXNzGAMgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NCBrpIA8gBARINCgVwaG9uZRgEIAEoCRINCgVlbWFpbBgFIAEoCRISCgppc19wcmltYXJ5GAYgASgIIoABChlBZGRBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESRgoJbG9jYXRpb25zGAIgAygLMicucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvY2F0aW9uSW5wdXRCCrpIB5IBBAgBEGQiuAEKDUxvY2F0aW9uSW5wdXQSFQoEbmFtZRgBIAEoCUIHukgEcgIQARI6CgdhZGRyZXNzGAIgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NCBrpIA8gBARIoCgVwaG9uZRgDIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JBIWCgVlbWFpbBgEIAEoCUIHukgEcgJgARISCgppc19wcmltYXJ5GAUgASgIIjIKGkFkZEFnZW5jeUxvY2F0aW9uc1Jlc3BvbnNlEhQKDGxvY2F0aW9uX2lkcxgBIAMoCSJkChxSZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESJwoMbG9jYXRpb25faWRzGAIgAygJQhG6SA6SAQsIARBkIgVyA7ABASI9Ch1SZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRIcChRyZW1vdmVkX2xvY2F0aW9uX2lkcxgBIAMoCSI5ChpMaXN0QWdlbmN5TG9jYXRpb25zUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBIlQKG0xpc3RBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRI1Cglsb2NhdGlvbnMYASADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24iywIKG1VwZGF0ZUFnZW5jeUxvY2F0aW9uUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEh0KC2xvY2F0aW9uX2lkGAIgASgJQgi6SAVyA7ABARIaCgRuYW1lGAMgASgJQge6SARyAhABSACIAQESNwoHYWRkcmVzcxgEIAEoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRyZXNzSAGIAQESLQoFcGhvbmUYBSABKAlCGbpIFnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIAogBARIbCgVlbWFpbBgGIAEoCUIHukgEcgJgAUgDiAEBEhcKCmlzX3ByaW1hcnkYByABKAhIBIgBAUIHCgVfbmFtZUIKCghfYWRkcmVzc0IICgZfcGhvbmVCCAoGX2VtYWlsQg0KC19pc19wcmltYXJ5IlQKHFVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVzcG9uc2USNAoIbG9jYXRpb24YASABKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb24iagogQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1JlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBEicKDGxvY2F0aW9uX2lkcxgCIAMoCUIRukgOkgELCAEQZCIFcgOwAQEiQgohQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9uc1Jlc3BvbnNlEh0KFWFzc2lnbmVkX2xvY2F0aW9uX2lkcxgBIAMoCSJuCiRVbmFzc2lnblByb2R1Y2VyRnJvbUxvY2F0aW9uc1JlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBEicKDGxvY2F0aW9uX2lkcxgCIAMoCUIRukgOkgELCAEQZCIFcgOwAQEiSAolVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnNSZXNwb25zZRIfChd1bmFzc2lnbmVkX2xvY2F0aW9uX2lkcxgBIAMoCSqJAQoKRW50aXR5VHlwZRIbChdFTlRJVFlfVFlQRV9VTlNQRUNJRklFRBAAEh8KG0VOVElUWV9UWVBFX1NPTEVfUFJPUFJJRVRPUhABEhYKEkVOVElUWV9UWVBFX0FHRU5DWRACEiUKIUVOVElUWV9UWVBFX0FTS19EVVJJTkdfT05CT0FSRElORxADKl0KCkFnZW5jeVR5cGUSGwoXQUdFTkNZX1RZUEVfVU5TUEVDSUZJRUQQABIYChRBR0VOQ1lfVFlQRV9JTlRFUk5BTBABEhgKFEFHRU5DWV9UWVBFX0VYVEVSTkFMEAIqpAEKDU5JUFJTeW5jU3RhdGUSHwobTklQUl9TWU5DX1NUQVRFX1VOU1BFQ0lGSUVEEAASGgoWTklQUl9TWU5DX1NUQVRFX0FDVElWRRABEhsKF05JUFJfU1lOQ19TVEFURV9GQUlMSU5HEAISGwoXTklQUl9TWU5DX1NUQVRFX1BFTkRJTkcQAxIcChhOSVBSX1NZTkNfU1RBVEVfRElTQUJMRUQQBDKiIgoPUHJvZHVjZXJTZXJ2aWNlEpYBChlDcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMEjoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXF1ZXN0GjsucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXNwb25zZSIAEpwBChtDcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkwSPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJPbmJvYXJkaW5nVVJMUmVxdWVzdBo9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXNwb25zZSIAEmYKCU5ld0FnZW5jeRIqLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0GisucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlc3BvbnNlIgASbwoMTGlzdEFnZW5jaWVzEi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY2llc1JlcXVlc3QaLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdEFnZW5jaWVzUmVzcG9uc2UiABJ8ChFMaXN0T3JnYW5pemF0aW9ucxIyLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0T3JnYW5pemF0aW9uc1JlcXVlc3QaMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdE9yZ2FuaXphdGlvbnNSZXNwb25zZRJ2Cg9HZXRPcmdhbml6YXRpb24SMC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0T3JnYW5pemF0aW9uUmVxdWVzdBoxLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRPcmdhbml6YXRpb25SZXNwb25zZRJ/ChJDcmVhdGVPcmdhbml6YXRpb24SMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlT3JnYW5pemF0aW9uUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVPcmdhbml6YXRpb25SZXNwb25zZRJsCgtOZXdQcm9kdWNlchIsLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlclJlcXVlc3QaLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJSZXNwb25zZSIAEm8KDE5ld1Byb2R1Y2VycxItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlcnNSZXF1ZXN0Gi4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2Vyc1Jlc3BvbnNlIgASiAEKFUdldEFnZW5jeUFuZFByb2R1Y2VycxI2LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRBZ2VuY3lBbmRQcm9kdWNlcnNSZXF1ZXN0GjcucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldEFnZW5jeUFuZFByb2R1Y2Vyc1Jlc3BvbnNlEmoKC0dldFByb2R1Y2VyEiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVxdWVzdBotLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlc3BvbnNlEnMKDkdldEFnZW5jeUZpbGVzEi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldEFnZW5jeUZpbGVzUmVxdWVzdBowLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRBZ2VuY3lGaWxlc1Jlc3BvbnNlEnUKDlVwZGF0ZVByb2R1Y2VyEi8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVxdWVzdBowLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlc3BvbnNlIgASbwoMVXBkYXRlQWdlbmN5Ei0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlcXVlc3QaLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVzcG9uc2UiABJpCgpOZXdDb250YWN0EisucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RSZXF1ZXN0GiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RSZXNwb25zZSIAEmwKC05ld0NvbnRhY3RzEiwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0NvbnRhY3RzUmVxdWVzdBotLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0c1Jlc3BvbnNlIgASfwoSTGlzdEFnZW5jeUNvbnRhY3RzEjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lDb250YWN0c1JlcXVlc3QaNC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdEFnZW5jeUNvbnRhY3RzUmVzcG9uc2UScgoNU2V0RXh0ZXJuYWxJRBIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TZXRFeHRlcm5hbElEUmVxdWVzdBovLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TZXRFeHRlcm5hbElEUmVzcG9uc2UiABKCAQoTVmFsaWRhdGVQcm9kdWNlck5QThI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZVByb2R1Y2VyTlBOUmVxdWVzdBo1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZVByb2R1Y2VyTlBOUmVzcG9uc2USfAoRVmFsaWRhdGVBZ2VuY3lOUE4SMi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVmFsaWRhdGVBZ2VuY3lOUE5SZXF1ZXN0GjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlZhbGlkYXRlQWdlbmN5TlBOUmVzcG9uc2USdgoPTG9va3VwTlBOQnlGRUlOEjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvb2t1cE5QTkJ5RkVJTlJlcXVlc3QaMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9va3VwTlBOQnlGRUlOUmVzcG9uc2USdQoOUmVzeW5jUHJvZHVjZXISLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jUHJvZHVjZXJSZXF1ZXN0GjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlJlc3luY1Byb2R1Y2VyUmVzcG9uc2UiABJvCgxSZXN5bmNBZ2VuY3kSLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jQWdlbmN5UmVxdWVzdBouLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZXN5bmNBZ2VuY3lSZXNwb25zZSIAEocBChRTeW5jUHJvZHVjZXJXaXRoTklQUhI1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QaNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSIAEoEBChJTeW5jQWdlbmN5V2l0aE5JUFISMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSIAEpMBChhTdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFISOS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3RvcFN5bmNQcm9kdWNlcldpdGhOSVBSUmVxdWVzdBo6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSIAEo0BChZTdG9wU3luY0FnZW5jeVdpdGhOSVBSEjcucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXF1ZXN0GjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSIAEpABChdDcmVhdGVQcm9kdWNlclVwbG9hZFVSTBI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlcXVlc3QaOS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJVcGxvYWRVUkxSZXNwb25zZSIAEoEBChJBZGRBZ2VuY3lMb2NhdGlvbnMSMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkQWdlbmN5TG9jYXRpb25zUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZSIAEooBChVSZW1vdmVBZ2VuY3lMb2NhdGlvbnMSNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVtb3ZlQWdlbmN5TG9jYXRpb25zUmVxdWVzdBo3LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZSIAEoIBChNMaXN0QWdlbmN5TG9jYXRpb25zEjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0GjUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRKWAQoZQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9ucxI6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Bc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVxdWVzdBo7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Bc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVzcG9uc2UiABKiAQodVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnMSPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnNSZXF1ZXN0Gj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVuYXNzaWduUHJvZHVjZXJGcm9tTG9jYXRpb25zUmVzcG9uc2UiABKHAQoUVXBkYXRlQWdlbmN5TG9jYXRpb24SNS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5TG9jYXRpb25SZXF1ZXN0GjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVzcG9uc2UiAEKDAgocY29tLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MUINUHJvZHVjZXJQcm90b1ABWlJnaXRodWIuY29tL3Byb2R1Y2VyZmxvdy9wcm9kdWNlcmZsb3dhcGkvZ2VuL2dvL3Byb2R1Y2VyZmxvdy9wcm9kdWNlci92MTtwcm9kdWNlcnYxogIDUFBYqgIYUHJvZHVjZXJmbG93LlByb2R1Y2VyLlYxygIYUHJvZHVjZXJmbG93XFByb2R1Y2VyXFYx4gIkUHJvZHVjZXJmbG93XFByb2R1Y2VyXFYxXEdQQk1ldGFkYXRh6gIaUHJvZHVjZXJmbG93OjpQcm9kdWNlcjo6VjFiBnByb3RvMw", [validate_pb_1.file_buf_validate_validate, wkt_1.file_google_protobuf_timestamp, dayofweek_pb_1.file_google_type_dayofweek, timeofday_pb_1.file_google_type_timeofday]);
17
+ exports.file_producerflow_producer_v1_producer = (0, codegenv2_1.fileDesc)("Cidwcm9kdWNlcmZsb3cvcHJvZHVjZXIvdjEvcHJvZHVjZXIucHJvdG8SGHByb2R1Y2VyZmxvdy5wcm9kdWNlci52MSI/CgpQYWdpbmF0aW9uEh0KCXBhZ2Vfc2l6ZRgBIAEoBUIKukgHGgUYyAEoABISCgpwYWdlX3Rva2VuGAIgASgJIsYBCgdBZGRyZXNzEhIKBnN0cmVldBgBIAEoCUICGAESFgoOYWRkcmVzc19saW5lXzEYByABKAkSFQoEY2l0eRgCIAEoCUIHukgEcgIQARIXCgVzdGF0ZRgDIAEoCUIIukgFcgOYAQISFgoDemlwGAQgASgJQgm6SAZyBBABGAoSDgoGY291bnR5GAUgASgJEiQKDmFkZHJlc3NfbGluZV8yGAYgASgJQge6SARyAhABSACIAQFCEQoPX2FkZHJlc3NfbGluZV8yIt8GCiBDcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMUmVxdWVzdBJRCgZhZ2VuY3kYASABKAsyQS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlcXVlc3QuQWdlbmN5GucFCgZBZ2VuY3kSDAoEbmFtZRgBIAEoCRJHCgtlbnRpdHlfdHlwZRgCIAEoDjIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5FbnRpdHlUeXBlQgy6SAmCAQYYARgCGAMSGAoQdGVuYW50X2FnZW5jeV9pZBgDIAEoCRIcChRkb2N1c2lnbl90ZW1wbGF0ZV9pZBgEIAEoCRIMCgRmZWluGAUgASgJEg0KBWVtYWlsGAYgASgJEg0KBXBob25lGAcgASgJEgsKA2ZheBgIIAEoCRIPCgd3ZWJzaXRlGAkgASgJEgsKA25wbhgKIAEoCRI6Cg9tYWlsaW5nX2FkZHJlc3MYCyABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxI7ChBwaHlzaWNhbF9hZGRyZXNzGAwgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSPAoRaW52b2ljaW5nX2FkZHJlc3MYDSABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxIXCg9vcmdhbml6YXRpb25faWQYDyABKAkSXgoJcHJpbmNpcGFsGA4gASgLMksucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZUFnZW5jeU9uYm9hcmRpbmdVUkxSZXF1ZXN0LkFnZW5jeS5QcmluY2lwYWwaxgEKCVByaW5jaXBhbBIeCgl0ZW5hbnRfaWQYASABKAlCC7pICNgBAnIDGP8BEhIKCmZpcnN0X25hbWUYAiABKAkSEQoJbGFzdF9uYW1lGAMgASgJEhMKC21pZGRsZV9uYW1lGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgsKA25wbhgHIAEoCRIyCgdhZGRyZXNzGAggASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MiMAohQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTFJlc3BvbnNlEgsKA3VybBgBIAEoCSJ2CiJDcmVhdGVQcm9kdWNlck9uYm9hcmRpbmdVUkxSZXF1ZXN0EhEKCWFnZW5jeV9pZBgBIAEoCRI9Cg1wcm9kdWNlcl9kYXRhGAIgASgLMiYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyRGF0YSLcAwoMUHJvZHVjZXJEYXRhEhsKA25wbhgBIAEoCUIJukgGcgQQARgKSACIAQESFwoKZmlyc3RfbmFtZRgCIAEoCUgBiAEBEhYKCWxhc3RfbmFtZRgDIAEoCUgCiAEBEhgKC21pZGRsZV9uYW1lGAQgASgJSAOIAQESEgoFZW1haWwYBSABKAlIBIgBARISCgVwaG9uZRgGIAEoCUgFiAEBEkcKD21haWxpbmdfYWRkcmVzcxgHIAEoCzIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlckRhdGEuQWRkcmVzcxqpAQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEgwKBGNpdHkYAiABKAkSDQoFc3RhdGUYAyABKAkSCwoDemlwGAQgASgJEg8KB2NvdW50cnkYBSABKAkSJAoOYWRkcmVzc19saW5lXzIYBiABKAlCB7pIBHICEAFIAIgBARIWCg5hZGRyZXNzX2xpbmVfMRgHIAEoCUIRCg9fYWRkcmVzc19saW5lXzJCBgoEX25wbkINCgtfZmlyc3RfbmFtZUIMCgpfbGFzdF9uYW1lQg4KDF9taWRkbGVfbmFtZUIICgZfZW1haWxCCAoGX3Bob25lIj0KI0NyZWF0ZVByb2R1Y2VyT25ib2FyZGluZ1VSTFJlc3BvbnNlEhYKDm9uYm9hcmRpbmdfdXJsGAEgASgJIsQaChBOZXdBZ2VuY3lSZXF1ZXN0EkkKBmFnZW5jeRgBIAEoCzIxLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeUIGukgDyAEBEhsKDnN5bmNfd2l0aF9uaXByGAMgASgISACIAQEatBkKBkFnZW5jeRIVCgRuYW1lGAEgASgJQge6SARyAhABEhYKBWVtYWlsGAIgASgJQge6SARyAmABEgsKA25wbhgDIAEoCRIrCgVwaG9uZRgFIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JBIPCgd3ZWJzaXRlGAYgASgJElYKCXByaW5jaXBhbBgHIAEoCzI7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5QcmluY2lwYWxCBrpIA8gBARJTCgxiYW5rX2FjY291bnQYCSABKAsyPS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuQmFua0FjY291bnQSSQoHZW9faW5mbxgKIAEoCzI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5FT0luZm8SVwoOYnVzaW5lc3NfaG91cnMYCyABKAsyPy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuQnVzaW5lc3NIb3VycxI4Cglwcm9kdWNlcnMYDCADKAsyJS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXISWwoRcG9pbnRzX29mX2NvbnRhY3QYDSADKAsyQC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUG9pbnRPZkNvbnRhY3QSLwoUcm9vdF9vcmdhbml6YXRpb25faWQYDiABKAlCDLpICdgBAnIEEAEYJEgAiAEBEkUKC2VudGl0eV90eXBlGA8gASgOMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkVudGl0eVR5cGVCCrpIB4IBBBgBGAISHgoEZmVpbhgQIAEoCUILukgI2AECcgOYAQlIAYgBARI6Cg9tYWlsaW5nX2FkZHJlc3MYCCABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxI7ChBwaHlzaWNhbF9hZGRyZXNzGBEgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3MSPAoRaW52b2ljaW5nX2FkZHJlc3MYEiABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxIYChB0ZW5hbnRfYWdlbmN5X2lkGBMgASgJEkQKCWxvY2F0aW9ucxgUIAMoCzInLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbklucHV0Qgi6SAWSAQIQZBJoChJtZXRhZGF0YV9xdWVzdGlvbnMYFSADKAsySC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuTWV0YWRhdGFRdWVzdGlvbnNFbnRyeUICGAESdQobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGBYgAygLMlAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRqFBAoJUHJpbmNpcGFsEhsKCmZpcnN0X25hbWUYASABKAlCB7pIBHICEAESGgoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABEhMKC21pZGRsZV9uYW1lGA0gASgJEhYKBWVtYWlsGAMgASgJQge6SARyAmABEisKBXBob25lGAQgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEhYKA25wbhgFIAEoCUIJukgGcgQQARgKEh4KCXRlbmFudF9pZBgGIAEoCUILukgI2AECcgMY/wESGwoOc3luY193aXRoX25pcHIYByABKAhIAIgBARJ/Cht0ZW5hbnRfYWRkaXRpb25hbF9xdWVzdGlvbnMYCCADKAsyWi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUHJpbmNpcGFsLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRI6Cg9tYWlsaW5nX2FkZHJlc3MYCSABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIRCg9fc3luY193aXRoX25pcHIawwIKC0JhbmtBY2NvdW50EiEKDmFjY291bnRfbnVtYmVyGAEgASgJQgm6SAZyBBAIGBESIAoOcm91dGluZ19udW1iZXIYAiABKAlCCLpIBXIDmAEJEmcKDGFjY291bnRfdHlwZRgDIAEoDjJJLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXF1ZXN0LkFnZW5jeS5CYW5rQWNjb3VudC5BY2NvdW50VHlwZUIGukgDyAEBEiQKE2FjY291bnRfaG9sZGVyX25hbWUYBCABKAlCB7pIBHICEAEiYAoLQWNjb3VudFR5cGUSHAoYQUNDT1VOVF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVQUNDT1VOVF9UWVBFX0NIRUNLSU5HEAESGAoUQUNDT1VOVF9UWVBFX1NBVklOR1MQAhrgAQoGRU9JbmZvEhgKB2NhcnJpZXIYASABKAlCB7pIBHICEAESPQoPZXhwaXJhdGlvbl9kYXRlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIIukgFsgECQAESIAoPY292ZXJhZ2VfYW1vdW50GAMgASgJQge6SARyAhABEjoKDmVmZmVjdGl2ZV9kYXRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIGukgDyAEBEh8KDnBlcl9vY2N1cnJlbmNlGAUgASgJQge6SARyAhABGs8CCg1CdXNpbmVzc0hvdXJzEhkKCHRpbWV6b25lGAEgASgJQge6SARyAhABEmwKDmJ1c2luZXNzX2hvdXJzGAIgAygLMkwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld0FnZW5jeVJlcXVlc3QuQWdlbmN5LkJ1c2luZXNzSG91cnMuQnVzaW5lc3NIb3VyQga6SAPIAQEatAEKDEJ1c2luZXNzSG91chI4Cgl3ZWVrX2RheXMYASADKA4yFi5nb29nbGUudHlwZS5EYXlPZldlZWtCDbpICsgBAZIBBAgBEAcSNAoMb3BlbmluZ190aW1lGAIgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5Qga6SAPIAQESNAoMY2xvc2luZ190aW1lGAMgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5Qga6SAPIAQEalgMKDlBvaW50T2ZDb250YWN0EhYKBWVtYWlsGAEgASgJQge6SARyAmABEmgKBHJvbGUYAiABKA4yUi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdC5BZ2VuY3kuUG9pbnRPZkNvbnRhY3QuQ29tbXVuaWNhdGlvblJvbGVCBrpIA8gBASKBAgoRQ29tbXVuaWNhdGlvblJvbGUSIgoeQ09NTVVOSUNBVElPTl9ST0xFX1VOU1BFQ0lGSUVEEAASIQodQ09NTVVOSUNBVElPTl9ST0xFX0FDQ09VTlRJTkcQARIgChxDT01NVU5JQ0FUSU9OX1JPTEVfTElDRU5TSU5HEAISIAocQ09NTVVOSUNBVElPTl9ST0xFX1JFUE9SVElORxADEhwKGENPTU1VTklDQVRJT05fUk9MRV9TQUxFUxAEEicKI0NPTU1VTklDQVRJT05fUk9MRV9DVVNUT01FUl9TRVJWSUNFEAUSGgoWQ09NTVVOSUNBVElPTl9ST0xFX0FMTBAGGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIXChVfcm9vdF9vcmdhbml6YXRpb25faWRCBwoFX2ZlaW5CEQoPX3N5bmNfd2l0aF9uaXByImgKEU5ld0FnZW5jeVJlc3BvbnNlEhEKCWFnZW5jeV9pZBgBIAEoCRIUCgxwcm9kdWNlcl9pZHMYAiADKAkSFAoMcHJpbmNpcGFsX2lkGAMgASgJEhQKDGxvY2F0aW9uX2lkcxgEIAMoCSK/AwoSR2V0UHJvZHVjZXJSZXF1ZXN0ElsKEnByb2R1Y2VyX2lkX2xvb2t1cBgBIAEoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXJJRExvb2t1cEgAElQKCm5wbl9sb29rdXAYAiABKAsyPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0UHJvZHVjZXJSZXF1ZXN0LlByb2R1Y2VyTlBOTG9va3VwSAASUAoMZW1haWxfbG9va3VwGAMgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldFByb2R1Y2VyUmVxdWVzdC5FbWFpbExvb2t1cEgAGjEKEFByb2R1Y2VySURMb29rdXASHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBGjIKEVByb2R1Y2VyTlBOTG9va3VwEh0KDHByb2R1Y2VyX25wbhgBIAEoCUIHukgEcgIQARolCgtFbWFpbExvb2t1cBIWCgVlbWFpbBgBIAEoCUIHukgEcgJgAUIWCg1sb29rdXBfbWV0aG9kEgW6SAIIASJLChNHZXRQcm9kdWNlclJlc3BvbnNlEjQKCHByb2R1Y2VyGAEgASgLMiIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyIjsKHEdldEFnZW5jeUFuZFByb2R1Y2Vyc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABASKIAQodR2V0QWdlbmN5QW5kUHJvZHVjZXJzUmVzcG9uc2USMAoGYWdlbmN5GAEgASgLMiAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeRI1Cglwcm9kdWNlcnMYAiADKAsyIi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIiNAoVR2V0QWdlbmN5RmlsZXNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEilAEKFkdldEFnZW5jeUZpbGVzUmVzcG9uc2USEgoKZW9fZG9jX3VybBgBIAEoCRIcChR2b2lkZWRfY2hlY2tfZG9jX3VybBgCIAEoCRISCgp3OV9kb2NfdXJsGAMgASgJEhcKD2xpY2Vuc2VfZG9jX3VybBgEIAEoCRIbChNicm9rZXJfYm9uZF9kb2NfdXJsGAUgASgJIt8GChVVcGRhdGVQcm9kdWNlclJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBElIKCHByb2R1Y2VyGAIgASgLMjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZVByb2R1Y2VyUmVxdWVzdC5Qcm9kdWNlckIGukgDyAEBGtIFCghQcm9kdWNlchIgCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABSACIAQESHwoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABSAGIAQESIQoLbWlkZGxlX25hbWUYCiABKAlCB7pIBHICEAFIAogBARIbCgVlbWFpbBgDIAEoCUIHukgEcgJgAUgDiAEBEhsKA25wbhgEIAEoCUIJGAG6SARyAhABSASIAQESLQoFcGhvbmUYBSABKAlCGbpIFnIUMhJeXCs/WzEtOV1cZHsxLDE0fSRIBYgBARIeCgZzdHJlZXQYBiABKAlCCRgBukgEcgIQAUgGiAEBEiQKDmFkZHJlc3NfbGluZV8xGA4gASgJQge6SARyAhABSAeIAQESJAoOYWRkcmVzc19saW5lXzIYDSABKAlCB7pIBHICEAFICIgBARIaCgRjaXR5GAcgASgJQge6SARyAhABSAmIAQESGwoFc3RhdGUYCCABKAlCB7pIBHICGAJICogBARIZCgN6aXAYCSABKAlCB7pIBHICEAVIC4gBARJpChFleHRlcm5hbF9tZXRhZGF0YRgLIAMoCzJOLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlcXVlc3QuUHJvZHVjZXIuRXh0ZXJuYWxNZXRhZGF0YUVudHJ5GjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDgoMX21pZGRsZV9uYW1lQggKBl9lbWFpbEIGCgRfbnBuQggKBl9waG9uZUIJCgdfc3RyZWV0QhEKD19hZGRyZXNzX2xpbmVfMUIRCg9fYWRkcmVzc19saW5lXzJCBwoFX2NpdHlCCAoGX3N0YXRlQgYKBF96aXAiGAoWVXBkYXRlUHJvZHVjZXJSZXNwb25zZSLkBwoTVXBkYXRlQWdlbmN5UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkwKBmFnZW5jeRgCIAEoCzI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lSZXF1ZXN0LkFnZW5jeUIGukgDyAEBGuEGCgZBZ2VuY3kSGwoFZW1haWwYASABKAlCB7pIBHICYAFIAIgBARItCgVwaG9uZRgCIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JEgBiAEBEi4KA2ZheBgDIAEoCUIcukgZ2AECchQyEl5cKz9bMS05XVxkezEsMTR9JEgCiAEBEiEKB3dlYnNpdGUYBCABKAlCC7pICNgBAnIDiAEBSAOIAQESOAoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgFIAMoCUIYukgVkgESGAEiDnIMMgpeW0EtWl17Mn0kEh8KBW5vdGVzGAYgASgJQgu6SAjYAQJyAxj0A0gEiAEBElsKEHBoeXNpY2FsX2FkZHJlc3MYByABKAsyPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5UmVxdWVzdC5BZ2VuY3kuQWRkcmVzc0gFiAEBEmUKEWV4dGVybmFsX21ldGFkYXRhGAggAygLMkoucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlcXVlc3QuQWdlbmN5LkV4dGVybmFsTWV0YWRhdGFFbnRyeRqYAgoHQWRkcmVzcxIeCgZzdHJlZXQYASABKAlCCRgBukgEcgIQAUgAiAEBEhoKBGNpdHkYAiABKAlCB7pIBHICEAFIAYgBARIcCgVzdGF0ZRgDIAEoCUIIukgFcgOYAQJIAogBARIbCgN6aXAYBCABKAlCCbpIBnIEEAEYCkgDiAEBEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSASIAQESJAoOYWRkcmVzc19saW5lXzEYBiABKAlCB7pIBHICEAFIBYgBAUIJCgdfc3RyZWV0QgcKBV9jaXR5QggKBl9zdGF0ZUIGCgRfemlwQhEKD19hZGRyZXNzX2xpbmVfMkIRCg9fYWRkcmVzc19saW5lXzEaNwoVRXh0ZXJuYWxNZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCCAoGX2VtYWlsQggKBl9waG9uZUIGCgRfZmF4QgoKCF93ZWJzaXRlQggKBl9ub3Rlc0ITChFfcGh5c2ljYWxfYWRkcmVzcyIWChRVcGRhdGVBZ2VuY3lSZXNwb25zZSJJChdMaXN0TmV3UHJvZHVjZXJzUmVxdWVzdBIgCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBSACIAQFCDAoKX2FnZW5jeV9pZCJVChhMaXN0TmV3UHJvZHVjZXJzUmVzcG9uc2USOQoNbmV3X3Byb2R1Y2VycxgBIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlciLXJgoGQWdlbmN5EhEKCWFnZW5jeV9pZBgBIAEoCRJACgthZ2VuY3lfaW5mbxgCIAEoCzIrLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mbxJCChBwaHlzaWNhbF9hZGRyZXNzGAMgASgLMigucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5BZGRyZXNzEkEKD21haWxpbmdfYWRkcmVzcxgEIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJDChFpbnZvaWNpbmdfYWRkcmVzcxgKIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxJCCgxiYW5rX2FjY291bnQYBSABKAsyLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkJhbmtBY2NvdW50EjgKB2VvX2luZm8YBiABKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkVPSW5mbxI9CglwcmluY2lwYWwYByABKAsyKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LlByaW5jaXBhbBJECg1pdmFuc19hY2NvdW50GAggASgLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5JdmFuc0FjY291bnQSHgoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgJIAMoCRJGCg5idXNpbmVzc19ob3VycxgLIAEoCzIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQnVzaW5lc3NIb3VycxIzCgRuaXByGAwgASgLMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSEjUKCWxvY2F0aW9ucxgNIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbhq9BQoKQWdlbmN5SW5mbxIVCg1vbmJvYXJkaW5nX2lkGAEgASgJEhwKFHJvb3Rfb3JnYW5pemF0aW9uX2lkGAIgASgJEhMKC2FnZW5jeV9uYW1lGAMgASgJEhMKC2FnZW5jeV9mZWluGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEgsKA2ZheBgHIAEoCRIPCgd3ZWJzaXRlGAggASgJEgsKA25wbhgJIAEoCRIfChdwZGJfYWxlcnRzX3N5bmNfZW5hYmxlZBgKIAEoCBJiChJtZXRhZGF0YV9xdWVzdGlvbnMYCyADKAsyQi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkFnZW5jeUluZm8uTWV0YWRhdGFRdWVzdGlvbnNFbnRyeUICGAESXAoRZXh0ZXJuYWxfbWV0YWRhdGEYDCADKAsyQS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5LkFnZW5jeUluZm8uRXh0ZXJuYWxNZXRhZGF0YUVudHJ5Em8KG3RlbmFudF9hZGRpdGlvbmFsX3F1ZXN0aW9ucxgNIAMoCzJKLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWdlbmN5SW5mby5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkaOAoWTWV0YWRhdGFRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGkAKHlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGo8BCgdBZGRyZXNzEhIKBnN0cmVldBgBIAEoCUICGAESDAoEY2l0eRgCIAEoCRINCgVzdGF0ZRgDIAEoCRILCgN6aXAYBCABKAkSFgoOYWRkcmVzc19saW5lXzEYBSABKAkSGwoOYWRkcmVzc19saW5lXzIYBiABKAlIAIgBAUIRCg9fYWRkcmVzc19saW5lXzIajAIKC0JhbmtBY2NvdW50EhYKDmFjY291bnRfbnVtYmVyGAEgASgJEhYKDnJvdXRpbmdfbnVtYmVyGAIgASgJEk4KDGFjY291bnRfdHlwZRgDIAEoDjI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQmFua0FjY291bnQuQWNjb3VudFR5cGUSGwoTYWNjb3VudF9ob2xkZXJfbmFtZRgEIAEoCSJgCgtBY2NvdW50VHlwZRIcChhBQ0NPVU5UX1RZUEVfVU5TUEVDSUZJRUQQABIZChVBQ0NPVU5UX1RZUEVfQ0hFQ0tJTkcQARIYChRBQ0NPVU5UX1RZUEVfU0FWSU5HUxACGrMBCgZFT0luZm8SDwoHY2FycmllchgBIAEoCRIzCg9leHBpcmF0aW9uX2RhdGUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhcKD2NvdmVyYWdlX2Ftb3VudBgDIAEoCRIWCg5wZXJfb2NjdXJyZW5jZRgEIAEoCRIyCg5lZmZlY3RpdmVfZGF0ZRgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAauQEKCVByaW5jaXBhbBIKCgJpZBgBIAEoCRISCgpmaXJzdF9uYW1lGAIgASgJEhEKCWxhc3RfbmFtZRgDIAEoCRITCgttaWRkbGVfbmFtZRgJIAEoCRINCgVlbWFpbBgEIAEoCRILCgNucG4YBSABKAkSDQoFcGhvbmUYBiABKAkSOQoHYWRkcmVzcxgIIAEoCzIoLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuQWRkcmVzcxppCgxJdmFuc0FjY291bnQSFgoOYWNjb3VudF9udW1iZXIYASABKAkSFAoMYW1zX3NvZnR3YXJlGAIgASgJEhMKC2Ftc192ZXJzaW9uGAMgASgJEhYKDm1haWxib3hfbnVtYmVyGAQgASgJGo4CCg1CdXNpbmVzc0hvdXJzEhAKCHRpbWV6b25lGAEgASgJElMKDmJ1c2luZXNzX2hvdXJzGAIgAygLMjsucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5CdXNpbmVzc0hvdXJzLkJ1c2luZXNzSG91chqVAQoMQnVzaW5lc3NIb3VyEikKCXdlZWtfZGF5cxgBIAMoDjIWLmdvb2dsZS50eXBlLkRheU9mV2VlaxIsCgxvcGVuaW5nX3RpbWUYAiABKAsyFi5nb29nbGUudHlwZS5UaW1lT2ZEYXkSLAoMY2xvc2luZ190aW1lGAMgASgLMhYuZ29vZ2xlLnR5cGUuVGltZU9mRGF5GoUSCgROSVBSEkQKCmJpb2dyYXBoaWMYASABKAsyMC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuQmlvZ3JhcGhpYxJACglhZGRyZXNzZXMYAiADKAsyLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuQWRkcmVzcxI/CghsaWNlbnNlcxgDIAMoCzItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5MaWNlbnNlEk0KD3JlZ3VsYXRvcnlfaW5mbxgEIAEoCzI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5SZWd1bGF0b3J5SW5mbxJHCgxhcHBvaW50bWVudHMYBSADKAsyMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuQXBwb2ludG1lbnQanQEKCkJpb2dyYXBoaWMSFAoMY29tcGFueV9uYW1lGAEgASgJEgwKBGZlaW4YAiABKAkSCwoDbnBuGAMgASgJEhYKDmJ1c2luZXNzX2VtYWlsGAQgASgJEhYKDmJ1c2luZXNzX3Bob25lGAUgASgJEi4KCnVwZGF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGoQCCgdBZGRyZXNzEhQKDGFkZHJlc3NfdHlwZRgBIAEoCRINCgVzdGF0ZRgCIAEoCRIVCg1hZGRyZXNzX3N0YXRlGAMgASgJEhIKBnN0cmVldBgEIAEoCUICGAESEAoIemlwX2NvZGUYBSABKAkSDAoEY2l0eRgGIAEoCRIPCgdjb3VudHJ5GAcgASgJEjAKDGRhdGVfdXBkYXRlZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFgoOYWRkcmVzc19saW5lXzEYCiABKAka6gUKB0xpY2Vuc2USFgoObGljZW5zZV9udW1iZXIYASABKAkSFQoNbGljZW5zZV9zdGF0ZRgCIAEoCRIYChByZXNpZGVuY3lfc3RhdHVzGAMgASgJEg4KBmFjdGl2ZRgEIAEoCBJLCgZzdGF0dXMYBSABKA4yOy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5Lk5JUFIuTGljZW5zZS5MaWNlbnNlU3RhdHVzEjMKD2V4cGlyYXRpb25fZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNbGljZW5zZV9jbGFzcxgHIAEoCRIaChJsaWNlbnNlX2NsYXNzX2NvZGUYCCABKAUSLgoKaXNzdWVfZGF0ZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoLdXBkYXRlX2RhdGUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi4KCnVwZGF0ZWRfYXQYCyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wElkKEmxpbmVzX29mX2F1dGhvcml0eRgMIAMoCzI9LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3kuTklQUi5MaWNlbnNlLkxpbmVPZkF1dGhvcml0eRpeCg9MaW5lT2ZBdXRob3JpdHkSCwoDbG9hGAEgASgJEg4KBmFjdGl2ZRgCIAEoCBIuCgppc3N1ZV9kYXRlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKEAQoNTGljZW5zZVN0YXR1cxIeChpMSUNFTlNFX1NUQVRVU19VTlNQRUNJRklFRBAAEhoKFkxJQ0VOU0VfU1RBVFVTX0VYUElSRUQQARIYChRMSUNFTlNFX1NUQVRVU19WQUxJRBACEh0KGUxJQ0VOU0VfU1RBVFVTX05PVF9BQ1RJVkUQAxrDAwoOUmVndWxhdG9yeUluZm8SYQoScmVndWxhdG9yeV9hY3Rpb25zGAEgAygLMkUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFnZW5jeS5OSVBSLlJlZ3VsYXRvcnlJbmZvLlJlZ3VsYXRvcnlBY3Rpb24azQIKEFJlZ3VsYXRvcnlBY3Rpb24SEQoJYWN0aW9uX2lkGAEgASgJEhIKCnN0YXRlX2NvZGUYAiABKAkSGQoRcmVhc29uX2Zvcl9hY3Rpb24YAyABKAkSEwoLZGlzcG9zaXRpb24YBCABKAkSMgoOZGF0ZV9vZl9hY3Rpb24YBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjIKDmVmZmVjdGl2ZV9kYXRlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgplbnRlcl9kYXRlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghmaWxlX3JlZhgIIAEoCRIfChdwZW5hbHR5X2ZpbmVfZm9yZmVpdHVyZRgJIAEoCRIXCg9sZW5ndGhfb2Zfb3JkZXIYCiABKAkawQIKC0FwcG9pbnRtZW50EhEKCWJyYW5jaF9pZBgBIAEoCRIUCgxjb21wYW55X25hbWUYAiABKAkSDAoEZmVpbhgDIAEoCRIPCgdjb19jb2RlGAQgASgJEhkKEWxpbmVfb2ZfYXV0aG9yaXR5GAUgASgJEhAKCGxvYV9jb2RlGAYgASgJEg4KBnN0YXR1cxgHIAEoCRIaChJ0ZXJtaW5hdGlvbl9yZWFzb24YCCABKAkSNgoSc3RhdHVzX3JlYXNvbl9kYXRlGAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI8ChhhcHBvaW50bWVudF9yZW5ld2FsX2RhdGUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhsKE2FnZW5jeV9hZmZpbGlhdGlvbnMYCyABKAkirRoKCFByb2R1Y2VyEgoKAmlkGAEgASgJEhIKCmZpcnN0X25hbWUYDyABKAkSEwoLbWlkZGxlX25hbWUYECABKAkSEQoJbGFzdF9uYW1lGBEgASgJEg0KBWVtYWlsGAMgASgJEgsKA25wbhgEIAEoCRINCgVwaG9uZRgFIAEoCRIfChdwZGJfYWxlcnRzX3N5bmNfZW5hYmxlZBgNIAEoCBI5CgZhZ2VuY3kYByABKAsyKS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuQWdlbmN5EjUKBG5pcHIYBiABKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUhIUCgxpc19wcmluY2lwYWwYDCABKAgSHgoWcmVxdWVzdGVkX2FwcG9pbnRtZW50cxgOIAMoCRI7CgdhZGRyZXNzGBIgASgLMioucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLkFkZHJlc3MSNQoJbG9jYXRpb25zGBMgAygLMiIucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvY2F0aW9uElkKEm1ldGFkYXRhX3F1ZXN0aW9ucxgoIAMoCzI5LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5NZXRhZGF0YVF1ZXN0aW9uc0VudHJ5QgIYARJTChFleHRlcm5hbF9tZXRhZGF0YRgpIAMoCzI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5FeHRlcm5hbE1ldGFkYXRhRW50cnkSZgobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGCogAygLMkEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRopCgZBZ2VuY3kSEQoJYWdlbmN5X2lkGAEgASgJEgwKBG5hbWUYAiABKAka3REKBE5JUFISQQoIbGljZW5zZXMYBiADKAsyLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5MaWNlbnNlEkYKCmJpb2dyYXBoaWMYCCABKAsyMi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5CaW9ncmFwaGljElcKD3JlZ3VsYXRvcnlfaW5mbxgJIAEoCzI+LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Qcm9kdWNlci5OSVBSLlByb2R1Y2VyUmVndWxhdG9yeUluZm8SSQoMYXBwb2ludG1lbnRzGAogAygLMjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuQXBwb2ludG1lbnQSQQoQbmlwcl9zeW5jX3N0YXR1cxgLIAEoDjInLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OSVBSU3luY1N0YXRlEj8KG25pcHJfc3luY19zdGF0dXNfdXBkYXRlZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAa2gQKB0xpY2Vuc2USFgoObGljZW5zZV9udW1iZXIYASABKAkSFQoNbGljZW5zZV9zdGF0ZRgCIAEoCRIYChByZXNpZGVuY3lfc3RhdHVzGAMgASgJEg4KBmFjdGl2ZRgEIAEoCBJNCgZzdGF0dXMYBSABKA4yPS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5MaWNlbnNlLkxpY2Vuc2VTdGF0dXMSMwoPZXhwaXJhdGlvbl9kYXRlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBJbChJsaW5lc19vZl9hdXRob3JpdHkYCCADKAsyPy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5MaWNlbnNlLkxpbmVPZkF1dGhvcml0eRpeCg9MaW5lT2ZBdXRob3JpdHkSCwoDbG9hGAEgASgJEg4KBmFjdGl2ZRgCIAEoCBIuCgppc3N1ZV9kYXRlGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKEAQoNTGljZW5zZVN0YXR1cxIeChpMSUNFTlNFX1NUQVRVU19VTlNQRUNJRklFRBAAEhoKFkxJQ0VOU0VfU1RBVFVTX0VYUElSRUQQARIYChRMSUNFTlNFX1NUQVRVU19WQUxJRBACEh0KGUxJQ0VOU0VfU1RBVFVTX05PVF9BQ1RJVkUQAxq3AQoKQmlvZ3JhcGhpYxIRCglsYXN0X25hbWUYASABKAkSEgoKZmlyc3RfbmFtZRgCIAEoCRITCgttaWRkbGVfbmFtZRgDIAEoCRIxCg1kYXRlX29mX2JpcnRoGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgRmZWluGAcgASgJEhQKDGNvbXBhbnlfbmFtZRgIIAEoCRIWCg5zdGF0ZV9kb21pY2lsZRgJIAEoCRrGBQoWUHJvZHVjZXJSZWd1bGF0b3J5SW5mbxKBAQobcmVndWxhdG9yeV9hY3Rpb25zX2J5X3N0YXRlGAEgAygLMlwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlByb2R1Y2VyLk5JUFIuUHJvZHVjZXJSZWd1bGF0b3J5SW5mby5SZWd1bGF0b3J5QWN0aW9uc0J5U3RhdGVFbnRyeRIkChxjbGVhcmFuY2VfY2VydGlmaWNhdGlvbl9pbmZvGAIgASgJEhkKEW5hc2RfZXhhbV9kZXRhaWxzGAMgASgJGtMCChBSZWd1bGF0b3J5QWN0aW9uEhEKCWFjdGlvbl9pZBgBIAEoCRIYChBvcmlnaW5fb2ZfYWN0aW9uGAIgASgJEhkKEXJlYXNvbl9mb3JfYWN0aW9uGAMgASgJEhMKC2Rpc3Bvc2l0aW9uGAQgASgJEjIKDmRhdGVfb2ZfYWN0aW9uGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIyCg5lZmZlY3RpdmVfZGF0ZRgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKZW50ZXJfZGF0ZRgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIZmlsZV9yZWYYCCABKAkSHwoXcGVuYWx0eV9maW5lX2ZvcmZlaXR1cmUYCSABKAkSFwoPbGVuZ3RoX29mX29yZGVyGAogASgJGpABCh1SZWd1bGF0b3J5QWN0aW9uc0J5U3RhdGVFbnRyeRILCgNrZXkYASABKAkSXgoFdmFsdWUYAiABKAsyTy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUHJvZHVjZXIuTklQUi5Qcm9kdWNlclJlZ3VsYXRvcnlJbmZvLlJlZ3VsYXRvcnlBY3Rpb246AjgBGsECCgtBcHBvaW50bWVudBIRCglicmFuY2hfaWQYASABKAkSFAoMY29tcGFueV9uYW1lGAIgASgJEgwKBGZlaW4YAyABKAkSDwoHY29fY29kZRgEIAEoCRIZChFsaW5lX29mX2F1dGhvcml0eRgFIAEoCRIQCghsb2FfY29kZRgGIAEoCRIOCgZzdGF0dXMYByABKAkSGgoSdGVybWluYXRpb25fcmVhc29uGAggASgJEjYKEnN0YXR1c19yZWFzb25fZGF0ZRgJIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASPAoYYXBwb2ludG1lbnRfcmVuZXdhbF9kYXRlGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIbChNhZ2VuY3lfYWZmaWxpYXRpb25zGAsgASgJGpgBCgdBZGRyZXNzEhIKBnN0cmVldBgBIAEoCUICGAESDAoEY2l0eRgCIAEoCRINCgVzdGF0ZRgDIAEoCRILCgN6aXAYBCABKAkSJAoOYWRkcmVzc19saW5lXzIYDSABKAlCB7pIBHICEAFIAIgBARIWCg5hZGRyZXNzX2xpbmVfMRgOIAEoCUIRCg9fYWRkcmVzc19saW5lXzIaOAoWTWV0YWRhdGFRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUV4dGVybmFsTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGkAKHlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIroGCgtOZXdQcm9kdWNlchIbCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABEhoKCWxhc3RfbmFtZRgCIAEoCUIHukgEcgIQARITCgttaWRkbGVfbmFtZRgHIAEoCRIWCgVlbWFpbBgDIAEoCUIHukgEcgJgARILCgNucG4YBCABKAkSKwoFcGhvbmUYBSABKAlCHLpIGdgBAnIUMhJeXCs/WzEtOV1cZHsxLDE0fSQSRgoPbWFpbGluZ19hZGRyZXNzGAYgASgLMi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLkFkZHJlc3MSHgoJdGVuYW50X2lkGAggASgJQgu6SAjYAQJyAxj/ARIlCgxsb2NhdGlvbl9pZHMYCiADKAlCD7pIDJIBCRBkIgVyA7ABARJcChJtZXRhZGF0YV9xdWVzdGlvbnMYCyADKAsyPC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXIuTWV0YWRhdGFRdWVzdGlvbnNFbnRyeUICGAESaQobdGVuYW50X2FkZGl0aW9uYWxfcXVlc3Rpb25zGAwgAygLMkQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyLlRlbmFudEFkZGl0aW9uYWxRdWVzdGlvbnNFbnRyeRq2AQoHQWRkcmVzcxISCgZzdHJlZXQYASABKAlCAhgBEhUKBGNpdHkYAiABKAlCB7pIBHICEAESFwoFc3RhdGUYAyABKAlCCLpIBXIDmAECEhYKA3ppcBgEIAEoCUIJukgGcgQQARgKEiQKDmFkZHJlc3NfbGluZV8yGAUgASgJQge6SARyAhABSACIAQESFgoOYWRkcmVzc19saW5lXzEYBiABKAlCEQoPX2FkZHJlc3NfbGluZV8yGjgKFk1ldGFkYXRhUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpACh5UZW5hbnRBZGRpdGlvbmFsUXVlc3Rpb25zRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASKiAQoSTmV3UHJvZHVjZXJSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESPwoIcHJvZHVjZXIYAiABKAsyJS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJCBrpIA8gBARIbCg5zeW5jX3dpdGhfbmlwchgDIAEoCEgAiAEBQhEKD19zeW5jX3dpdGhfbmlwciI0ChNOZXdQcm9kdWNlclJlc3BvbnNlEh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASKmAQoTTmV3UHJvZHVjZXJzUmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEkIKCXByb2R1Y2VycxgCIAMoCzIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlckIIukgFkgECCAESGwoOc3luY193aXRoX25pcHIYAyABKAhIAIgBAUIRCg9fc3luY193aXRoX25pcHIiLAoUTmV3UHJvZHVjZXJzUmVzcG9uc2USFAoMcHJvZHVjZXJfaWRzGAEgAygJIs4CCgpOZXdDb250YWN0EhsKCmZpcnN0X25hbWUYASABKAlCB7pIBHICEAESGgoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABEhMKC21pZGRsZV9uYW1lGAMgASgJEhYKBWVtYWlsGAQgASgJQge6SARyAmABEisKBXBob25lGAUgASgJQhy6SBnYAQJyFDISXlwrP1sxLTldXGR7MSwxNH0kEjIKB2FkZHJlc3MYBiABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxI/CgRyb2xlGAcgASgOMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNvbnRhY3RSb2xlQgq6SAeCAQQQASAAEh4KCXRlbmFudF9pZBgIIAEoCUILukgI2AECcgMY/wESEAoDbnBuGAkgASgJSACIAQFCBgoEX25wbiJvChFOZXdDb250YWN0UmVxdWVzdBIbCglhZ2VuY3lfaWQYASABKAlCCLpIBXIDsAEBEj0KB2NvbnRhY3QYAiABKAsyJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdEIGukgDyAEBIjIKEk5ld0NvbnRhY3RSZXNwb25zZRIcCgpjb250YWN0X2lkGAEgASgJQgi6SAVyA7ABASJzChJOZXdDb250YWN0c1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARJACghjb250YWN0cxgCIAMoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0Qgi6SAWSAQIIASIqChNOZXdDb250YWN0c1Jlc3BvbnNlEhMKC2NvbnRhY3RfaWRzGAEgAygJIqwCCgdDb250YWN0EgoKAmlkGAEgASgJEhIKCmZpcnN0X25hbWUYAiABKAkSEwoLbWlkZGxlX25hbWUYAyABKAkSEQoJbGFzdF9uYW1lGAQgASgJEg0KBWVtYWlsGAUgASgJEg0KBXBob25lGAYgASgJEhAKBHJvbGUYByABKAlCAhgBEjIKB2FkZHJlc3MYCCABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzcxILCgNucG4YCSABKAkSLgoKY3JlYXRlZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASOAoJcm9sZV90eXBlGAsgASgOMiUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNvbnRhY3RSb2xlIjgKGUxpc3RBZ2VuY3lDb250YWN0c1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABASJRChpMaXN0QWdlbmN5Q29udGFjdHNSZXNwb25zZRIzCghjb250YWN0cxgBIAMoCzIhLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Db250YWN0IpgEChRVcGRhdGVDb250YWN0UmVxdWVzdBIcCgpjb250YWN0X2lkGAEgASgJQgi6SAVyA7ABARJPCgdjb250YWN0GAIgASgLMjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUNvbnRhY3RSZXF1ZXN0LkNvbnRhY3RCBrpIA8gBARqQAwoHQ29udGFjdBIgCgpmaXJzdF9uYW1lGAEgASgJQge6SARyAhABSACIAQESHwoJbGFzdF9uYW1lGAIgASgJQge6SARyAhABSAGIAQESIQoLbWlkZGxlX25hbWUYAyABKAlCB7pIBHICEAFIAogBARIbCgVlbWFpbBgEIAEoCUIHukgEcgJgAUgDiAEBEi0KBXBob25lGAUgASgJQhm6SBZyFDISXlwrP1sxLTldXGR7MSwxNH0kSASIAQESRAoEcm9sZRgGIAEoDjIlLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Db250YWN0Um9sZUIKukgHggEEEAEgAEgFiAEBEjcKB2FkZHJlc3MYByABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzc0gGiAEBQg0KC19maXJzdF9uYW1lQgwKCl9sYXN0X25hbWVCDgoMX21pZGRsZV9uYW1lQggKBl9lbWFpbEIICgZfcGhvbmVCBwoFX3JvbGVCCgoIX2FkZHJlc3MiFwoVVXBkYXRlQ29udGFjdFJlc3BvbnNlIs4BChRTZXRFeHRlcm5hbElEUmVxdWVzdBIfCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQFIABIdCglhZ2VuY3lfaWQYAiABKAlCCLpIBXIDsAEBSAASHgoKY29udGFjdF9pZBgDIAEoCUIIukgFcgOwAQFIABIjCg9vcmdhbml6YXRpb25faWQYBSABKAlCCLpIBXIDsAEBSAASHQoJdGVuYW50X2lkGAQgASgJQgq6SAdyBRABGP8BQhIKCWVudGl0eV9pZBIFukgCCAEiFwoVU2V0RXh0ZXJuYWxJRFJlc3BvbnNlIk4KGlZhbGlkYXRlUHJvZHVjZXJOUE5SZXF1ZXN0EhQKA25wbhgBIAEoCUIHukgEcgIQARIRCgRuYW1lGAIgASgJSACIAQFCBwoFX25hbWUiLAobVmFsaWRhdGVQcm9kdWNlck5QTlJlc3BvbnNlEg0KBXZhbGlkGAEgASgIIjAKGFZhbGlkYXRlQWdlbmN5TlBOUmVxdWVzdBIUCgNucG4YASABKAlCB7pIBHICEAEiKgoZVmFsaWRhdGVBZ2VuY3lOUE5SZXNwb25zZRINCgV2YWxpZBgBIAEoCCIwChZMb29rdXBOUE5CeUZFSU5SZXF1ZXN0EhYKBGZlaW4YASABKAlCCLpIBXIDmAEJIiYKF0xvb2t1cE5QTkJ5RkVJTlJlc3BvbnNlEgsKA25wbhgBIAEoCSIyChNSZXN5bmNBZ2VuY3lSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEiFgoUUmVzeW5jQWdlbmN5UmVzcG9uc2UiNgoVUmVzeW5jUHJvZHVjZXJSZXF1ZXN0Eh0KC3Byb2R1Y2VyX2lkGAEgASgJQgi6SAVyA7ABASIYChZSZXN5bmNQcm9kdWNlclJlc3BvbnNlIjwKG1N5bmNQcm9kdWNlcldpdGhOSVBSUmVxdWVzdBIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQEiHgocU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSJUChlTeW5jQWdlbmN5V2l0aE5JUFJSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESGgoSc3luY19hbGxfcHJvZHVjZXJzGAIgASgIIhwKGlN5bmNBZ2VuY3lXaXRoTklQUlJlc3BvbnNlIkAKH1N0b3BTeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QSHQoLcHJvZHVjZXJfaWQYASABKAlCCLpIBXIDsAEBIiIKIFN0b3BTeW5jUHJvZHVjZXJXaXRoTklQUlJlc3BvbnNlIlgKHVN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESGgoSc3RvcF9hbGxfcHJvZHVjZXJzGAIgASgIIiAKHlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSKBAgoNQWdlbmN5U3VtbWFyeRIRCglhZ2VuY3lfaWQYASABKAkSDAoEbmFtZRgCIAEoCRINCgVlbWFpbBgDIAEoCRINCgVwaG9uZRgEIAEoCRILCgNucG4YBSABKAkSDAoEZmVpbhgGIAEoCRIcCg9vcmdhbml6YXRpb25faWQYByABKAlIAIgBARIYChBpc190ZW5hbnRfYWdlbmN5GAggASgIEhoKEmlzX3NvbGVfcHJvcHJpZXRvchgJIAEoCBIuCgpjcmVhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEISChBfb3JnYW5pemF0aW9uX2lkIpwDChNMaXN0QWdlbmNpZXNSZXF1ZXN0EiYKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQFIAIgBARIZCgxzZWFyY2hfcXVlcnkYAiABKAlIAYgBARI4CgpwYWdpbmF0aW9uGAMgASgLMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlBhZ2luYXRpb24SPgoLYWdlbmN5X3R5cGUYBCABKA4yJC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWdlbmN5VHlwZUgCiAEBEj4KC2VudGl0eV90eXBlGAUgASgOMiQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkVudGl0eVR5cGVIA4gBARJDChJuaXByX3N5bmNfc3RhdHVzZXMYBiADKA4yJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTklQUlN5bmNTdGF0ZUISChBfb3JnYW5pemF0aW9uX2lkQg8KDV9zZWFyY2hfcXVlcnlCDgoMX2FnZW5jeV90eXBlQg4KDF9lbnRpdHlfdHlwZSJ/ChRMaXN0QWdlbmNpZXNSZXNwb25zZRI5CghhZ2VuY2llcxgBIAMoCzInLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZ2VuY3lTdW1tYXJ5EhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoBSJUChhMaXN0T3JnYW5pemF0aW9uc1JlcXVlc3QSOAoKcGFnaW5hdGlvbhgBIAEoCzIkLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5QYWdpbmF0aW9uIkwKDE9yZ2FuaXphdGlvbhIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2V4dGVybmFsX2lkGAMgASgJEg0KBWVtYWlsGAQgASgJIogBChlMaXN0T3JnYW5pemF0aW9uc1Jlc3BvbnNlEj0KDW9yZ2FuaXphdGlvbnMYASADKAsyJi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuT3JnYW5pemF0aW9uEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCRITCgt0b3RhbF9jb3VudBgDIAEoBSI7ChZHZXRPcmdhbml6YXRpb25SZXF1ZXN0EiEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUIIukgFcgOwAQEiVwoXR2V0T3JnYW5pemF0aW9uUmVzcG9uc2USPAoMb3JnYW5pemF0aW9uGAEgASgLMiYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk9yZ2FuaXphdGlvbiJWChlDcmVhdGVPcmdhbml6YXRpb25SZXF1ZXN0EhUKBG5hbWUYASABKAlCB7pIBHICEAESEwoLZXh0ZXJuYWxfaWQYAiABKAkSDQoFZW1haWwYAyABKAkiNQoaQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USFwoPb3JnYW5pemF0aW9uX2lkGAEgASgJIkkKHkNyZWF0ZVByb2R1Y2VyVXBsb2FkVVJMUmVxdWVzdBInCgphZ2VuY3lfbnBuGAEgASgJQhO6SBByDhACGAoyCF5bMC05XSskIi4KH0NyZWF0ZVByb2R1Y2VyVXBsb2FkVVJMUmVzcG9uc2USCwoDdXJsGAEgASgJIpsBCghMb2NhdGlvbhIKCgJpZBgBIAEoCRIVCgRuYW1lGAIgASgJQge6SARyAhABEjoKB2FkZHJlc3MYAyABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzc0IGukgDyAEBEg0KBXBob25lGAQgASgJEg0KBWVtYWlsGAUgASgJEhIKCmlzX3ByaW1hcnkYBiABKAgigAEKGUFkZEFnZW5jeUxvY2F0aW9uc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARJGCglsb2NhdGlvbnMYAiADKAsyJy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9jYXRpb25JbnB1dEIKukgHkgEECAEQZCK4AQoNTG9jYXRpb25JbnB1dBIVCgRuYW1lGAEgASgJQge6SARyAhABEjoKB2FkZHJlc3MYAiABKAsyIS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkcmVzc0IGukgDyAEBEigKBXBob25lGAMgASgJQhm6SBZyFDISXlwrP1sxLTldXGR7MSwxNH0kEhYKBWVtYWlsGAQgASgJQge6SARyAmABEhIKCmlzX3ByaW1hcnkYBSABKAgiMgoaQWRkQWdlbmN5TG9jYXRpb25zUmVzcG9uc2USFAoMbG9jYXRpb25faWRzGAEgAygJImQKHFJlbW92ZUFnZW5jeUxvY2F0aW9uc1JlcXVlc3QSGwoJYWdlbmN5X2lkGAEgASgJQgi6SAVyA7ABARInCgxsb2NhdGlvbl9pZHMYAiADKAlCEbpIDpIBCwgBEGQiBXIDsAEBIj0KHVJlbW92ZUFnZW5jeUxvY2F0aW9uc1Jlc3BvbnNlEhwKFHJlbW92ZWRfbG9jYXRpb25faWRzGAEgAygJIjkKGkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQEiVAobTGlzdEFnZW5jeUxvY2F0aW9uc1Jlc3BvbnNlEjUKCWxvY2F0aW9ucxgBIAMoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbiLLAgobVXBkYXRlQWdlbmN5TG9jYXRpb25SZXF1ZXN0EhsKCWFnZW5jeV9pZBgBIAEoCUIIukgFcgOwAQESHQoLbG9jYXRpb25faWQYAiABKAlCCLpIBXIDsAEBEhoKBG5hbWUYAyABKAlCB7pIBHICEAFIAIgBARI3CgdhZGRyZXNzGAQgASgLMiEucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkFkZHJlc3NIAYgBARItCgVwaG9uZRgFIAEoCUIZukgWchQyEl5cKz9bMS05XVxkezEsMTR9JEgCiAEBEhsKBWVtYWlsGAYgASgJQge6SARyAmABSAOIAQESFwoKaXNfcHJpbWFyeRgHIAEoCEgEiAEBQgcKBV9uYW1lQgoKCF9hZGRyZXNzQggKBl9waG9uZUIICgZfZW1haWxCDQoLX2lzX3ByaW1hcnkiVAocVXBkYXRlQWdlbmN5TG9jYXRpb25SZXNwb25zZRI0Cghsb2NhdGlvbhgBIAEoCzIiLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Mb2NhdGlvbiJqCiBBc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVxdWVzdBIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQESJwoMbG9jYXRpb25faWRzGAIgAygJQhG6SA6SAQsIARBkIgVyA7ABASJCCiFBc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVzcG9uc2USHQoVYXNzaWduZWRfbG9jYXRpb25faWRzGAEgAygJIm4KJFVuYXNzaWduUHJvZHVjZXJGcm9tTG9jYXRpb25zUmVxdWVzdBIdCgtwcm9kdWNlcl9pZBgBIAEoCUIIukgFcgOwAQESJwoMbG9jYXRpb25faWRzGAIgAygJQhG6SA6SAQsIARBkIgVyA7ABASJICiVVbmFzc2lnblByb2R1Y2VyRnJvbUxvY2F0aW9uc1Jlc3BvbnNlEh8KF3VuYXNzaWduZWRfbG9jYXRpb25faWRzGAEgAygJKssBCgtDb250YWN0Um9sZRIcChhDT05UQUNUX1JPTEVfVU5TUEVDSUZJRUQQABIlCiFDT05UQUNUX1JPTEVfQUdFTkNZX0FETUlOSVNUUkFUT1IQARIWChJDT05UQUNUX1JPTEVfT1RIRVIQAhIUChBDT05UQUNUX1JPTEVfQ1NSEAMSJAogQ09OVEFDVF9ST0xFX1VOTElDRU5TRURfUFJPRFVDRVIQBBIjCh9DT05UQUNUX1JPTEVfVU5MSUNFTlNFRF9TRVJWSUNFEAUqiQEKCkVudGl0eVR5cGUSGwoXRU5USVRZX1RZUEVfVU5TUEVDSUZJRUQQABIfChtFTlRJVFlfVFlQRV9TT0xFX1BST1BSSUVUT1IQARIWChJFTlRJVFlfVFlQRV9BR0VOQ1kQAhIlCiFFTlRJVFlfVFlQRV9BU0tfRFVSSU5HX09OQk9BUkRJTkcQAypdCgpBZ2VuY3lUeXBlEhsKF0FHRU5DWV9UWVBFX1VOU1BFQ0lGSUVEEAASGAoUQUdFTkNZX1RZUEVfSU5URVJOQUwQARIYChRBR0VOQ1lfVFlQRV9FWFRFUk5BTBACKqQBCg1OSVBSU3luY1N0YXRlEh8KG05JUFJfU1lOQ19TVEFURV9VTlNQRUNJRklFRBAAEhoKFk5JUFJfU1lOQ19TVEFURV9BQ1RJVkUQARIbChdOSVBSX1NZTkNfU1RBVEVfRkFJTElORxACEhsKF05JUFJfU1lOQ19TVEFURV9QRU5ESU5HEAMSHAoYTklQUl9TWU5DX1NUQVRFX0RJU0FCTEVEEAQyliMKD1Byb2R1Y2VyU2VydmljZRKWAQoZQ3JlYXRlQWdlbmN5T25ib2FyZGluZ1VSTBI6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMUmVxdWVzdBo7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVBZ2VuY3lPbmJvYXJkaW5nVVJMUmVzcG9uc2UiABKcAQobQ3JlYXRlUHJvZHVjZXJPbmJvYXJkaW5nVVJMEjwucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZVByb2R1Y2VyT25ib2FyZGluZ1VSTFJlcXVlc3QaPS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJPbmJvYXJkaW5nVVJMUmVzcG9uc2UiABJmCglOZXdBZ2VuY3kSKi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3QWdlbmN5UmVxdWVzdBorLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdBZ2VuY3lSZXNwb25zZSIAEm8KDExpc3RBZ2VuY2llcxItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0QWdlbmNpZXNSZXF1ZXN0Gi4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY2llc1Jlc3BvbnNlIgASfAoRTGlzdE9yZ2FuaXphdGlvbnMSMi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTGlzdE9yZ2FuaXphdGlvbnNSZXF1ZXN0GjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RPcmdhbml6YXRpb25zUmVzcG9uc2USdgoPR2V0T3JnYW5pemF0aW9uEjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkdldE9yZ2FuaXphdGlvblJlcXVlc3QaMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0T3JnYW5pemF0aW9uUmVzcG9uc2USfwoSQ3JlYXRlT3JnYW5pemF0aW9uEjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkNyZWF0ZU9yZ2FuaXphdGlvblJlcXVlc3QaNC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlT3JnYW5pemF0aW9uUmVzcG9uc2USbAoLTmV3UHJvZHVjZXISLC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJSZXF1ZXN0Gi0ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLk5ld1Byb2R1Y2VyUmVzcG9uc2UiABJvCgxOZXdQcm9kdWNlcnMSLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3UHJvZHVjZXJzUmVxdWVzdBouLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdQcm9kdWNlcnNSZXNwb25zZSIAEogBChVHZXRBZ2VuY3lBbmRQcm9kdWNlcnMSNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0QWdlbmN5QW5kUHJvZHVjZXJzUmVxdWVzdBo3LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRBZ2VuY3lBbmRQcm9kdWNlcnNSZXNwb25zZRJqCgtHZXRQcm9kdWNlchIsLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRQcm9kdWNlclJlcXVlc3QaLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0UHJvZHVjZXJSZXNwb25zZRJzCg5HZXRBZ2VuY3lGaWxlcxIvLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5HZXRBZ2VuY3lGaWxlc1JlcXVlc3QaMC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuR2V0QWdlbmN5RmlsZXNSZXNwb25zZRJ1Cg5VcGRhdGVQcm9kdWNlchIvLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVQcm9kdWNlclJlcXVlc3QaMC5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlUHJvZHVjZXJSZXNwb25zZSIAEm8KDFVwZGF0ZUFnZW5jeRItLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5VcGRhdGVBZ2VuY3lSZXF1ZXN0Gi4ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeVJlc3BvbnNlIgASaQoKTmV3Q29udGFjdBIrLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0UmVxdWVzdBosLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0UmVzcG9uc2UiABJsCgtOZXdDb250YWN0cxIsLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5OZXdDb250YWN0c1JlcXVlc3QaLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTmV3Q29udGFjdHNSZXNwb25zZSIAEn8KEkxpc3RBZ2VuY3lDb250YWN0cxIzLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5MaXN0QWdlbmN5Q29udGFjdHNSZXF1ZXN0GjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lDb250YWN0c1Jlc3BvbnNlEnIKDVVwZGF0ZUNvbnRhY3QSLi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQ29udGFjdFJlcXVlc3QaLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQ29udGFjdFJlc3BvbnNlIgAScgoNU2V0RXh0ZXJuYWxJRBIuLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TZXRFeHRlcm5hbElEUmVxdWVzdBovLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TZXRFeHRlcm5hbElEUmVzcG9uc2UiABKCAQoTVmFsaWRhdGVQcm9kdWNlck5QThI0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZVByb2R1Y2VyTlBOUmVxdWVzdBo1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5WYWxpZGF0ZVByb2R1Y2VyTlBOUmVzcG9uc2USfAoRVmFsaWRhdGVBZ2VuY3lOUE4SMi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVmFsaWRhdGVBZ2VuY3lOUE5SZXF1ZXN0GjMucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlZhbGlkYXRlQWdlbmN5TlBOUmVzcG9uc2USdgoPTG9va3VwTlBOQnlGRUlOEjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxvb2t1cE5QTkJ5RkVJTlJlcXVlc3QaMS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuTG9va3VwTlBOQnlGRUlOUmVzcG9uc2USdQoOUmVzeW5jUHJvZHVjZXISLy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jUHJvZHVjZXJSZXF1ZXN0GjAucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlJlc3luY1Byb2R1Y2VyUmVzcG9uc2UiABJvCgxSZXN5bmNBZ2VuY3kSLS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVzeW5jQWdlbmN5UmVxdWVzdBouLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZXN5bmNBZ2VuY3lSZXNwb25zZSIAEocBChRTeW5jUHJvZHVjZXJXaXRoTklQUhI1LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TeW5jUHJvZHVjZXJXaXRoTklQUlJlcXVlc3QaNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSIAEoEBChJTeW5jQWdlbmN5V2l0aE5JUFISMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3luY0FnZW5jeVdpdGhOSVBSUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSIAEpMBChhTdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFISOS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuU3RvcFN5bmNQcm9kdWNlcldpdGhOSVBSUmVxdWVzdBo6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5TdG9wU3luY1Byb2R1Y2VyV2l0aE5JUFJSZXNwb25zZSIAEo0BChZTdG9wU3luY0FnZW5jeVdpdGhOSVBSEjcucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXF1ZXN0GjgucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlN0b3BTeW5jQWdlbmN5V2l0aE5JUFJSZXNwb25zZSIAEpABChdDcmVhdGVQcm9kdWNlclVwbG9hZFVSTBI4LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5DcmVhdGVQcm9kdWNlclVwbG9hZFVSTFJlcXVlc3QaOS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQ3JlYXRlUHJvZHVjZXJVcGxvYWRVUkxSZXNwb25zZSIAEoEBChJBZGRBZ2VuY3lMb2NhdGlvbnMSMy5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuQWRkQWdlbmN5TG9jYXRpb25zUmVxdWVzdBo0LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5BZGRBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZSIAEooBChVSZW1vdmVBZ2VuY3lMb2NhdGlvbnMSNi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuUmVtb3ZlQWdlbmN5TG9jYXRpb25zUmVxdWVzdBo3LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5SZW1vdmVBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZSIAEoIBChNMaXN0QWdlbmN5TG9jYXRpb25zEjQucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXF1ZXN0GjUucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLkxpc3RBZ2VuY3lMb2NhdGlvbnNSZXNwb25zZRKWAQoZQXNzaWduUHJvZHVjZXJUb0xvY2F0aW9ucxI6LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Bc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVxdWVzdBo7LnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MS5Bc3NpZ25Qcm9kdWNlclRvTG9jYXRpb25zUmVzcG9uc2UiABKiAQodVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnMSPi5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVW5hc3NpZ25Qcm9kdWNlckZyb21Mb2NhdGlvbnNSZXF1ZXN0Gj8ucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVuYXNzaWduUHJvZHVjZXJGcm9tTG9jYXRpb25zUmVzcG9uc2UiABKHAQoUVXBkYXRlQWdlbmN5TG9jYXRpb24SNS5wcm9kdWNlcmZsb3cucHJvZHVjZXIudjEuVXBkYXRlQWdlbmN5TG9jYXRpb25SZXF1ZXN0GjYucHJvZHVjZXJmbG93LnByb2R1Y2VyLnYxLlVwZGF0ZUFnZW5jeUxvY2F0aW9uUmVzcG9uc2UiAEKDAgocY29tLnByb2R1Y2VyZmxvdy5wcm9kdWNlci52MUINUHJvZHVjZXJQcm90b1ABWlJnaXRodWIuY29tL3Byb2R1Y2VyZmxvdy9wcm9kdWNlcmZsb3dhcGkvZ2VuL2dvL3Byb2R1Y2VyZmxvdy9wcm9kdWNlci92MTtwcm9kdWNlcnYxogIDUFBYqgIYUHJvZHVjZXJmbG93LlByb2R1Y2VyLlYxygIYUHJvZHVjZXJmbG93XFByb2R1Y2VyXFYx4gIkUHJvZHVjZXJmbG93XFByb2R1Y2VyXFYxXEdQQk1ldGFkYXRh6gIaUHJvZHVjZXJmbG93OjpQcm9kdWNlcjo6VjFiBnByb3RvMw", [validate_pb_1.file_buf_validate_validate, wkt_1.file_google_protobuf_timestamp, dayofweek_pb_1.file_google_type_dayofweek, timeofday_pb_1.file_google_type_timeofday]);
18
18
  /**
19
19
  * Describes the message producerflow.producer.v1.Pagination.
20
20
  * Use `create(PaginationSchema)` to create a new message.
@@ -595,236 +595,309 @@ exports.ListAgencyContactsRequestSchema = (0, codegenv2_1.messageDesc)(exports.f
595
595
  * Use `create(ListAgencyContactsResponseSchema)` to create a new message.
596
596
  */
597
597
  exports.ListAgencyContactsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 35);
598
+ /**
599
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.
600
+ * Use `create(UpdateContactRequestSchema)` to create a new message.
601
+ */
602
+ exports.UpdateContactRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 36);
603
+ /**
604
+ * Describes the message producerflow.producer.v1.UpdateContactRequest.Contact.
605
+ * Use `create(UpdateContactRequest_ContactSchema)` to create a new message.
606
+ */
607
+ exports.UpdateContactRequest_ContactSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 36, 0);
608
+ /**
609
+ * Describes the message producerflow.producer.v1.UpdateContactResponse.
610
+ * Use `create(UpdateContactResponseSchema)` to create a new message.
611
+ */
612
+ exports.UpdateContactResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 37);
598
613
  /**
599
614
  * Describes the message producerflow.producer.v1.SetExternalIDRequest.
600
615
  * Use `create(SetExternalIDRequestSchema)` to create a new message.
601
616
  */
602
- exports.SetExternalIDRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 36);
617
+ exports.SetExternalIDRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 38);
603
618
  /**
604
619
  * Describes the message producerflow.producer.v1.SetExternalIDResponse.
605
620
  * Use `create(SetExternalIDResponseSchema)` to create a new message.
606
621
  */
607
- exports.SetExternalIDResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 37);
622
+ exports.SetExternalIDResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 39);
608
623
  /**
609
624
  * Describes the message producerflow.producer.v1.ValidateProducerNPNRequest.
610
625
  * Use `create(ValidateProducerNPNRequestSchema)` to create a new message.
611
626
  */
612
- exports.ValidateProducerNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 38);
627
+ exports.ValidateProducerNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 40);
613
628
  /**
614
629
  * Describes the message producerflow.producer.v1.ValidateProducerNPNResponse.
615
630
  * Use `create(ValidateProducerNPNResponseSchema)` to create a new message.
616
631
  */
617
- exports.ValidateProducerNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 39);
632
+ exports.ValidateProducerNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 41);
618
633
  /**
619
634
  * Describes the message producerflow.producer.v1.ValidateAgencyNPNRequest.
620
635
  * Use `create(ValidateAgencyNPNRequestSchema)` to create a new message.
621
636
  */
622
- exports.ValidateAgencyNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 40);
637
+ exports.ValidateAgencyNPNRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 42);
623
638
  /**
624
639
  * Describes the message producerflow.producer.v1.ValidateAgencyNPNResponse.
625
640
  * Use `create(ValidateAgencyNPNResponseSchema)` to create a new message.
626
641
  */
627
- exports.ValidateAgencyNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 41);
642
+ exports.ValidateAgencyNPNResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 43);
628
643
  /**
629
644
  * Describes the message producerflow.producer.v1.LookupNPNByFEINRequest.
630
645
  * Use `create(LookupNPNByFEINRequestSchema)` to create a new message.
631
646
  */
632
- exports.LookupNPNByFEINRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 42);
647
+ exports.LookupNPNByFEINRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 44);
633
648
  /**
634
649
  * Describes the message producerflow.producer.v1.LookupNPNByFEINResponse.
635
650
  * Use `create(LookupNPNByFEINResponseSchema)` to create a new message.
636
651
  */
637
- exports.LookupNPNByFEINResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 43);
652
+ exports.LookupNPNByFEINResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 45);
638
653
  /**
639
654
  * Describes the message producerflow.producer.v1.ResyncAgencyRequest.
640
655
  * Use `create(ResyncAgencyRequestSchema)` to create a new message.
641
656
  */
642
- exports.ResyncAgencyRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 44);
657
+ exports.ResyncAgencyRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 46);
643
658
  /**
644
659
  * Describes the message producerflow.producer.v1.ResyncAgencyResponse.
645
660
  * Use `create(ResyncAgencyResponseSchema)` to create a new message.
646
661
  */
647
- exports.ResyncAgencyResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 45);
662
+ exports.ResyncAgencyResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 47);
648
663
  /**
649
664
  * Describes the message producerflow.producer.v1.ResyncProducerRequest.
650
665
  * Use `create(ResyncProducerRequestSchema)` to create a new message.
651
666
  */
652
- exports.ResyncProducerRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 46);
667
+ exports.ResyncProducerRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 48);
653
668
  /**
654
669
  * Describes the message producerflow.producer.v1.ResyncProducerResponse.
655
670
  * Use `create(ResyncProducerResponseSchema)` to create a new message.
656
671
  */
657
- exports.ResyncProducerResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 47);
672
+ exports.ResyncProducerResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 49);
658
673
  /**
659
674
  * Describes the message producerflow.producer.v1.SyncProducerWithNIPRRequest.
660
675
  * Use `create(SyncProducerWithNIPRRequestSchema)` to create a new message.
661
676
  */
662
- exports.SyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 48);
677
+ exports.SyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 50);
663
678
  /**
664
679
  * Describes the message producerflow.producer.v1.SyncProducerWithNIPRResponse.
665
680
  * Use `create(SyncProducerWithNIPRResponseSchema)` to create a new message.
666
681
  */
667
- exports.SyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 49);
682
+ exports.SyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 51);
668
683
  /**
669
684
  * Describes the message producerflow.producer.v1.SyncAgencyWithNIPRRequest.
670
685
  * Use `create(SyncAgencyWithNIPRRequestSchema)` to create a new message.
671
686
  */
672
- exports.SyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 50);
687
+ exports.SyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 52);
673
688
  /**
674
689
  * Describes the message producerflow.producer.v1.SyncAgencyWithNIPRResponse.
675
690
  * Use `create(SyncAgencyWithNIPRResponseSchema)` to create a new message.
676
691
  */
677
- exports.SyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 51);
692
+ exports.SyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 53);
678
693
  /**
679
694
  * Describes the message producerflow.producer.v1.StopSyncProducerWithNIPRRequest.
680
695
  * Use `create(StopSyncProducerWithNIPRRequestSchema)` to create a new message.
681
696
  */
682
- exports.StopSyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 52);
697
+ exports.StopSyncProducerWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 54);
683
698
  /**
684
699
  * Describes the message producerflow.producer.v1.StopSyncProducerWithNIPRResponse.
685
700
  * Use `create(StopSyncProducerWithNIPRResponseSchema)` to create a new message.
686
701
  */
687
- exports.StopSyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 53);
702
+ exports.StopSyncProducerWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 55);
688
703
  /**
689
704
  * Describes the message producerflow.producer.v1.StopSyncAgencyWithNIPRRequest.
690
705
  * Use `create(StopSyncAgencyWithNIPRRequestSchema)` to create a new message.
691
706
  */
692
- exports.StopSyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 54);
707
+ exports.StopSyncAgencyWithNIPRRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 56);
693
708
  /**
694
709
  * Describes the message producerflow.producer.v1.StopSyncAgencyWithNIPRResponse.
695
710
  * Use `create(StopSyncAgencyWithNIPRResponseSchema)` to create a new message.
696
711
  */
697
- exports.StopSyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 55);
712
+ exports.StopSyncAgencyWithNIPRResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 57);
698
713
  /**
699
714
  * Describes the message producerflow.producer.v1.AgencySummary.
700
715
  * Use `create(AgencySummarySchema)` to create a new message.
701
716
  */
702
- exports.AgencySummarySchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 56);
717
+ exports.AgencySummarySchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 58);
703
718
  /**
704
719
  * Describes the message producerflow.producer.v1.ListAgenciesRequest.
705
720
  * Use `create(ListAgenciesRequestSchema)` to create a new message.
706
721
  */
707
- exports.ListAgenciesRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 57);
722
+ exports.ListAgenciesRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 59);
708
723
  /**
709
724
  * Describes the message producerflow.producer.v1.ListAgenciesResponse.
710
725
  * Use `create(ListAgenciesResponseSchema)` to create a new message.
711
726
  */
712
- exports.ListAgenciesResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 58);
727
+ exports.ListAgenciesResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 60);
713
728
  /**
714
729
  * Describes the message producerflow.producer.v1.ListOrganizationsRequest.
715
730
  * Use `create(ListOrganizationsRequestSchema)` to create a new message.
716
731
  */
717
- exports.ListOrganizationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 59);
732
+ exports.ListOrganizationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 61);
718
733
  /**
719
734
  * Describes the message producerflow.producer.v1.Organization.
720
735
  * Use `create(OrganizationSchema)` to create a new message.
721
736
  */
722
- exports.OrganizationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 60);
737
+ exports.OrganizationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 62);
723
738
  /**
724
739
  * Describes the message producerflow.producer.v1.ListOrganizationsResponse.
725
740
  * Use `create(ListOrganizationsResponseSchema)` to create a new message.
726
741
  */
727
- exports.ListOrganizationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 61);
742
+ exports.ListOrganizationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 63);
728
743
  /**
729
744
  * Describes the message producerflow.producer.v1.GetOrganizationRequest.
730
745
  * Use `create(GetOrganizationRequestSchema)` to create a new message.
731
746
  */
732
- exports.GetOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 62);
747
+ exports.GetOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 64);
733
748
  /**
734
749
  * Describes the message producerflow.producer.v1.GetOrganizationResponse.
735
750
  * Use `create(GetOrganizationResponseSchema)` to create a new message.
736
751
  */
737
- exports.GetOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 63);
752
+ exports.GetOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 65);
738
753
  /**
739
754
  * Describes the message producerflow.producer.v1.CreateOrganizationRequest.
740
755
  * Use `create(CreateOrganizationRequestSchema)` to create a new message.
741
756
  */
742
- exports.CreateOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 64);
757
+ exports.CreateOrganizationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 66);
743
758
  /**
744
759
  * Describes the message producerflow.producer.v1.CreateOrganizationResponse.
745
760
  * Use `create(CreateOrganizationResponseSchema)` to create a new message.
746
761
  */
747
- exports.CreateOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 65);
762
+ exports.CreateOrganizationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 67);
748
763
  /**
749
764
  * Describes the message producerflow.producer.v1.CreateProducerUploadURLRequest.
750
765
  * Use `create(CreateProducerUploadURLRequestSchema)` to create a new message.
751
766
  */
752
- exports.CreateProducerUploadURLRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 66);
767
+ exports.CreateProducerUploadURLRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 68);
753
768
  /**
754
769
  * Describes the message producerflow.producer.v1.CreateProducerUploadURLResponse.
755
770
  * Use `create(CreateProducerUploadURLResponseSchema)` to create a new message.
756
771
  */
757
- exports.CreateProducerUploadURLResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 67);
772
+ exports.CreateProducerUploadURLResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 69);
758
773
  /**
759
774
  * Describes the message producerflow.producer.v1.Location.
760
775
  * Use `create(LocationSchema)` to create a new message.
761
776
  */
762
- exports.LocationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 68);
777
+ exports.LocationSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 70);
763
778
  /**
764
779
  * Describes the message producerflow.producer.v1.AddAgencyLocationsRequest.
765
780
  * Use `create(AddAgencyLocationsRequestSchema)` to create a new message.
766
781
  */
767
- exports.AddAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 69);
782
+ exports.AddAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 71);
768
783
  /**
769
784
  * Describes the message producerflow.producer.v1.LocationInput.
770
785
  * Use `create(LocationInputSchema)` to create a new message.
771
786
  */
772
- exports.LocationInputSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 70);
787
+ exports.LocationInputSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 72);
773
788
  /**
774
789
  * Describes the message producerflow.producer.v1.AddAgencyLocationsResponse.
775
790
  * Use `create(AddAgencyLocationsResponseSchema)` to create a new message.
776
791
  */
777
- exports.AddAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 71);
792
+ exports.AddAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 73);
778
793
  /**
779
794
  * Describes the message producerflow.producer.v1.RemoveAgencyLocationsRequest.
780
795
  * Use `create(RemoveAgencyLocationsRequestSchema)` to create a new message.
781
796
  */
782
- exports.RemoveAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 72);
797
+ exports.RemoveAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 74);
783
798
  /**
784
799
  * Describes the message producerflow.producer.v1.RemoveAgencyLocationsResponse.
785
800
  * Use `create(RemoveAgencyLocationsResponseSchema)` to create a new message.
786
801
  */
787
- exports.RemoveAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 73);
802
+ exports.RemoveAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 75);
788
803
  /**
789
804
  * Describes the message producerflow.producer.v1.ListAgencyLocationsRequest.
790
805
  * Use `create(ListAgencyLocationsRequestSchema)` to create a new message.
791
806
  */
792
- exports.ListAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 74);
807
+ exports.ListAgencyLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 76);
793
808
  /**
794
809
  * Describes the message producerflow.producer.v1.ListAgencyLocationsResponse.
795
810
  * Use `create(ListAgencyLocationsResponseSchema)` to create a new message.
796
811
  */
797
- exports.ListAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 75);
812
+ exports.ListAgencyLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 77);
798
813
  /**
799
814
  * Describes the message producerflow.producer.v1.UpdateAgencyLocationRequest.
800
815
  * Use `create(UpdateAgencyLocationRequestSchema)` to create a new message.
801
816
  */
802
- exports.UpdateAgencyLocationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 76);
817
+ exports.UpdateAgencyLocationRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 78);
803
818
  /**
804
819
  * Describes the message producerflow.producer.v1.UpdateAgencyLocationResponse.
805
820
  * Use `create(UpdateAgencyLocationResponseSchema)` to create a new message.
806
821
  */
807
- exports.UpdateAgencyLocationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 77);
822
+ exports.UpdateAgencyLocationResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 79);
808
823
  /**
809
824
  * Describes the message producerflow.producer.v1.AssignProducerToLocationsRequest.
810
825
  * Use `create(AssignProducerToLocationsRequestSchema)` to create a new message.
811
826
  */
812
- exports.AssignProducerToLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 78);
827
+ exports.AssignProducerToLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 80);
813
828
  /**
814
829
  * Describes the message producerflow.producer.v1.AssignProducerToLocationsResponse.
815
830
  * Use `create(AssignProducerToLocationsResponseSchema)` to create a new message.
816
831
  */
817
- exports.AssignProducerToLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 79);
832
+ exports.AssignProducerToLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 81);
818
833
  /**
819
834
  * Describes the message producerflow.producer.v1.UnassignProducerFromLocationsRequest.
820
835
  * Use `create(UnassignProducerFromLocationsRequestSchema)` to create a new message.
821
836
  */
822
- exports.UnassignProducerFromLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 80);
837
+ exports.UnassignProducerFromLocationsRequestSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 82);
823
838
  /**
824
839
  * Describes the message producerflow.producer.v1.UnassignProducerFromLocationsResponse.
825
840
  * Use `create(UnassignProducerFromLocationsResponseSchema)` to create a new message.
826
841
  */
827
- exports.UnassignProducerFromLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 81);
842
+ exports.UnassignProducerFromLocationsResponseSchema = (0, codegenv2_1.messageDesc)(exports.file_producerflow_producer_v1_producer, 83);
843
+ /**
844
+ * ContactRole defines the role or position of a contact within an agency.
845
+ *
846
+ * Contacts represent non-producer personnel associated with an agency.
847
+ * These roles help categorize and organize contacts based on their
848
+ * responsibilities and access levels.
849
+ *
850
+ * @generated from enum producerflow.producer.v1.ContactRole
851
+ */
852
+ var ContactRole;
853
+ (function (ContactRole) {
854
+ /**
855
+ * Default unspecified value. Do not use.
856
+ * This value is invalid and will be rejected by the API.
857
+ *
858
+ * @generated from enum value: CONTACT_ROLE_UNSPECIFIED = 0;
859
+ */
860
+ ContactRole[ContactRole["UNSPECIFIED"] = 0] = "UNSPECIFIED";
861
+ /**
862
+ * Agency Administrator: A contact with administrative responsibilities.
863
+ * Typically has elevated permissions and manages agency operations.
864
+ *
865
+ * @generated from enum value: CONTACT_ROLE_AGENCY_ADMINISTRATOR = 1;
866
+ */
867
+ ContactRole[ContactRole["AGENCY_ADMINISTRATOR"] = 1] = "AGENCY_ADMINISTRATOR";
868
+ /**
869
+ * Other: A contact role that doesn't fit into predefined categories.
870
+ * Use this for flexible role assignment.
871
+ *
872
+ * @generated from enum value: CONTACT_ROLE_OTHER = 2;
873
+ */
874
+ ContactRole[ContactRole["OTHER"] = 2] = "OTHER";
875
+ /**
876
+ * Customer Service Representative (CSR): A contact who handles customer inquiries
877
+ * and support. Does not hold an insurance producer license.
878
+ *
879
+ * @generated from enum value: CONTACT_ROLE_CSR = 3;
880
+ */
881
+ ContactRole[ContactRole["CSR"] = 3] = "CSR";
882
+ /**
883
+ * Unlicensed Producer: An individual working in a producer-like capacity
884
+ * but who does not hold an active insurance producer license.
885
+ *
886
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_PRODUCER = 4;
887
+ */
888
+ ContactRole[ContactRole["UNLICENSED_PRODUCER"] = 4] = "UNLICENSED_PRODUCER";
889
+ /**
890
+ * Unlicensed Service: A contact providing services to the agency
891
+ * without requiring an insurance license.
892
+ *
893
+ * @generated from enum value: CONTACT_ROLE_UNLICENSED_SERVICE = 5;
894
+ */
895
+ ContactRole[ContactRole["UNLICENSED_SERVICE"] = 5] = "UNLICENSED_SERVICE";
896
+ })(ContactRole || (exports.ContactRole = ContactRole = {}));
897
+ /**
898
+ * Describes the enum producerflow.producer.v1.ContactRole.
899
+ */
900
+ exports.ContactRoleSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 0);
828
901
  /**
829
902
  * EntityType defines the business structure of an agency.
830
903
  *
@@ -887,7 +960,7 @@ var EntityType;
887
960
  /**
888
961
  * Describes the enum producerflow.producer.v1.EntityType.
889
962
  */
890
- exports.EntityTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 0);
963
+ exports.EntityTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 1);
891
964
  /**
892
965
  * AgencyType defines whether an agency is internal (tenant agency) or external.
893
966
  *
@@ -917,7 +990,7 @@ var AgencyType;
917
990
  /**
918
991
  * Describes the enum producerflow.producer.v1.AgencyType.
919
992
  */
920
- exports.AgencyTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 1);
993
+ exports.AgencyTypeSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 2);
921
994
  /**
922
995
  * NIPRSyncState defines the synchronization state with the NIPR system.
923
996
  *
@@ -959,7 +1032,7 @@ var NIPRSyncState;
959
1032
  /**
960
1033
  * Describes the enum producerflow.producer.v1.NIPRSyncState.
961
1034
  */
962
- exports.NIPRSyncStateSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 2);
1035
+ exports.NIPRSyncStateSchema = (0, codegenv2_1.enumDesc)(exports.file_producerflow_producer_v1_producer, 3);
963
1036
  /**
964
1037
  * ProducerService provides a comprehensive API for managing insurance
965
1038
  * producers and agencies. This service simplifies producer and agency
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@producerflow/producerflowapi",
3
3
  "author": "Producerflow",
4
- "version": "1.0.5",
4
+ "version": "1.0.7",
5
5
  "description": "Generated TypeScript types for ProducerFlow API",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",