// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/errors/feed_item_validation_error.proto

package errors

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// The possible validation errors of a feed item.
type FeedItemValidationErrorEnum_FeedItemValidationError int32

const (
	// No value has been specified.
	FeedItemValidationErrorEnum_UNSPECIFIED FeedItemValidationErrorEnum_FeedItemValidationError = 0
	// Used for return value only. Represents value unknown in this version.
	FeedItemValidationErrorEnum_UNKNOWN FeedItemValidationErrorEnum_FeedItemValidationError = 1
	// String is too short.
	FeedItemValidationErrorEnum_STRING_TOO_SHORT FeedItemValidationErrorEnum_FeedItemValidationError = 2
	// String is too long.
	FeedItemValidationErrorEnum_STRING_TOO_LONG FeedItemValidationErrorEnum_FeedItemValidationError = 3
	// Value is not provided.
	FeedItemValidationErrorEnum_VALUE_NOT_SPECIFIED FeedItemValidationErrorEnum_FeedItemValidationError = 4
	// Phone number format is invalid for region.
	FeedItemValidationErrorEnum_INVALID_DOMESTIC_PHONE_NUMBER_FORMAT FeedItemValidationErrorEnum_FeedItemValidationError = 5
	// String does not represent a phone number.
	FeedItemValidationErrorEnum_INVALID_PHONE_NUMBER FeedItemValidationErrorEnum_FeedItemValidationError = 6
	// Phone number format is not compatible with country code.
	FeedItemValidationErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY FeedItemValidationErrorEnum_FeedItemValidationError = 7
	// Premium rate number is not allowed.
	FeedItemValidationErrorEnum_PREMIUM_RATE_NUMBER_NOT_ALLOWED FeedItemValidationErrorEnum_FeedItemValidationError = 8
	// Phone number type is not allowed.
	FeedItemValidationErrorEnum_DISALLOWED_NUMBER_TYPE FeedItemValidationErrorEnum_FeedItemValidationError = 9
	// Specified value is outside of the valid range.
	FeedItemValidationErrorEnum_VALUE_OUT_OF_RANGE FeedItemValidationErrorEnum_FeedItemValidationError = 10
	// Call tracking is not supported in the selected country.
	FeedItemValidationErrorEnum_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY FeedItemValidationErrorEnum_FeedItemValidationError = 11
	// Customer is not whitelisted for call tracking.
	FeedItemValidationErrorEnum_CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING FeedItemValidationErrorEnum_FeedItemValidationError = 12
	// Country code is invalid.
	FeedItemValidationErrorEnum_INVALID_COUNTRY_CODE FeedItemValidationErrorEnum_FeedItemValidationError = 13
	// The specified mobile app id is invalid.
	FeedItemValidationErrorEnum_INVALID_APP_ID FeedItemValidationErrorEnum_FeedItemValidationError = 14
	// Some required field attributes are missing.
	FeedItemValidationErrorEnum_MISSING_ATTRIBUTES_FOR_FIELDS FeedItemValidationErrorEnum_FeedItemValidationError = 15
	// Invalid email button type for email extension.
	FeedItemValidationErrorEnum_INVALID_TYPE_ID FeedItemValidationErrorEnum_FeedItemValidationError = 16
	// Email address is invalid.
	FeedItemValidationErrorEnum_INVALID_EMAIL_ADDRESS FeedItemValidationErrorEnum_FeedItemValidationError = 17
	// The HTTPS URL in email extension is invalid.
	FeedItemValidationErrorEnum_INVALID_HTTPS_URL FeedItemValidationErrorEnum_FeedItemValidationError = 18
	// Delivery address is missing from email extension.
	FeedItemValidationErrorEnum_MISSING_DELIVERY_ADDRESS FeedItemValidationErrorEnum_FeedItemValidationError = 19
	// FeedItem scheduling start date comes after end date.
	FeedItemValidationErrorEnum_START_DATE_AFTER_END_DATE FeedItemValidationErrorEnum_FeedItemValidationError = 20
	// FeedItem scheduling start time is missing.
	FeedItemValidationErrorEnum_MISSING_FEED_ITEM_START_TIME FeedItemValidationErrorEnum_FeedItemValidationError = 21
	// FeedItem scheduling end time is missing.
	FeedItemValidationErrorEnum_MISSING_FEED_ITEM_END_TIME FeedItemValidationErrorEnum_FeedItemValidationError = 22
	// Cannot compute system attributes on a FeedItem that has no FeedItemId.
	FeedItemValidationErrorEnum_MISSING_FEED_ITEM_ID FeedItemValidationErrorEnum_FeedItemValidationError = 23
	// Call extension vanity phone numbers are not supported.
	FeedItemValidationErrorEnum_VANITY_PHONE_NUMBER_NOT_ALLOWED FeedItemValidationErrorEnum_FeedItemValidationError = 24
	// Invalid review text.
	FeedItemValidationErrorEnum_INVALID_REVIEW_EXTENSION_SNIPPET FeedItemValidationErrorEnum_FeedItemValidationError = 25
	// Invalid format for numeric value in ad parameter.
	FeedItemValidationErrorEnum_INVALID_NUMBER_FORMAT FeedItemValidationErrorEnum_FeedItemValidationError = 26
	// Invalid format for date value in ad parameter.
	FeedItemValidationErrorEnum_INVALID_DATE_FORMAT FeedItemValidationErrorEnum_FeedItemValidationError = 27
	// Invalid format for price value in ad parameter.
	FeedItemValidationErrorEnum_INVALID_PRICE_FORMAT FeedItemValidationErrorEnum_FeedItemValidationError = 28
	// Unrecognized type given for value in ad parameter.
	FeedItemValidationErrorEnum_UNKNOWN_PLACEHOLDER_FIELD FeedItemValidationErrorEnum_FeedItemValidationError = 29
	// Enhanced sitelinks must have both description lines specified.
	FeedItemValidationErrorEnum_MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE FeedItemValidationErrorEnum_FeedItemValidationError = 30
	// Review source is ineligible.
	FeedItemValidationErrorEnum_REVIEW_EXTENSION_SOURCE_INELIGIBLE FeedItemValidationErrorEnum_FeedItemValidationError = 31
	// Review text cannot contain hyphens or dashes.
	FeedItemValidationErrorEnum_HYPHENS_IN_REVIEW_EXTENSION_SNIPPET FeedItemValidationErrorEnum_FeedItemValidationError = 32
	// Review text cannot contain double quote characters.
	FeedItemValidationErrorEnum_DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET FeedItemValidationErrorEnum_FeedItemValidationError = 33
	// Review text cannot contain quote characters.
	FeedItemValidationErrorEnum_QUOTES_IN_REVIEW_EXTENSION_SNIPPET FeedItemValidationErrorEnum_FeedItemValidationError = 34
	// Parameters are encoded in the wrong format.
	FeedItemValidationErrorEnum_INVALID_FORM_ENCODED_PARAMS FeedItemValidationErrorEnum_FeedItemValidationError = 35
	// URL parameter name must contain only letters, numbers, underscores, and
	// dashes.
	FeedItemValidationErrorEnum_INVALID_URL_PARAMETER_NAME FeedItemValidationErrorEnum_FeedItemValidationError = 36
	// Cannot find address location.
	FeedItemValidationErrorEnum_NO_GEOCODING_RESULT FeedItemValidationErrorEnum_FeedItemValidationError = 37
	// Review extension text has source name.
	FeedItemValidationErrorEnum_SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT FeedItemValidationErrorEnum_FeedItemValidationError = 38
	// Some phone numbers can be shorter than usual. Some of these short numbers
	// are carrier-specific, and we disallow those in ad extensions because they
	// will not be available to all users.
	FeedItemValidationErrorEnum_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED FeedItemValidationErrorEnum_FeedItemValidationError = 39
	// Triggered when a request references a placeholder field id that does not
	// exist.
	FeedItemValidationErrorEnum_INVALID_PLACEHOLDER_FIELD_ID FeedItemValidationErrorEnum_FeedItemValidationError = 40
	// URL contains invalid ValueTrack tags or format.
	FeedItemValidationErrorEnum_INVALID_URL_TAG FeedItemValidationErrorEnum_FeedItemValidationError = 41
	// Provided list exceeds acceptable size.
	FeedItemValidationErrorEnum_LIST_TOO_LONG FeedItemValidationErrorEnum_FeedItemValidationError = 42
	// Certain combinations of attributes aren't allowed to be specified in the
	// same feed item.
	FeedItemValidationErrorEnum_INVALID_ATTRIBUTES_COMBINATION FeedItemValidationErrorEnum_FeedItemValidationError = 43
	// An attribute has the same value repeatedly.
	FeedItemValidationErrorEnum_DUPLICATE_VALUES FeedItemValidationErrorEnum_FeedItemValidationError = 44
	// Advertisers can link a conversion action with a phone number to indicate
	// that sufficiently long calls forwarded to that phone number should be
	// counted as conversions of the specified type.  This is an error message
	// indicating that the conversion action specified is invalid (e.g., the
	// conversion action does not exist within the appropriate Google Ads
	// account, or it is a type of conversion not appropriate to phone call
	// conversions).
	FeedItemValidationErrorEnum_INVALID_CALL_CONVERSION_ACTION_ID FeedItemValidationErrorEnum_FeedItemValidationError = 45
	// Tracking template requires final url to be set.
	FeedItemValidationErrorEnum_CANNOT_SET_WITHOUT_FINAL_URLS FeedItemValidationErrorEnum_FeedItemValidationError = 46
	// An app id was provided that doesn't exist in the given app store.
	FeedItemValidationErrorEnum_APP_ID_DOESNT_EXIST_IN_APP_STORE FeedItemValidationErrorEnum_FeedItemValidationError = 47
	// Invalid U2 final url.
	FeedItemValidationErrorEnum_INVALID_FINAL_URL FeedItemValidationErrorEnum_FeedItemValidationError = 48
	// Invalid U2 tracking url.
	FeedItemValidationErrorEnum_INVALID_TRACKING_URL FeedItemValidationErrorEnum_FeedItemValidationError = 49
	// Final URL should start from App download URL.
	FeedItemValidationErrorEnum_INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL FeedItemValidationErrorEnum_FeedItemValidationError = 50
	// List provided is too short.
	FeedItemValidationErrorEnum_LIST_TOO_SHORT FeedItemValidationErrorEnum_FeedItemValidationError = 51
	// User Action field has invalid value.
	FeedItemValidationErrorEnum_INVALID_USER_ACTION FeedItemValidationErrorEnum_FeedItemValidationError = 52
	// Type field has invalid value.
	FeedItemValidationErrorEnum_INVALID_TYPE_NAME FeedItemValidationErrorEnum_FeedItemValidationError = 53
	// Change status for event is invalid.
	FeedItemValidationErrorEnum_INVALID_EVENT_CHANGE_STATUS FeedItemValidationErrorEnum_FeedItemValidationError = 54
	// The header of a structured snippets extension is not one of the valid
	// headers.
	FeedItemValidationErrorEnum_INVALID_SNIPPETS_HEADER FeedItemValidationErrorEnum_FeedItemValidationError = 55
	// Android app link is not formatted correctly
	FeedItemValidationErrorEnum_INVALID_ANDROID_APP_LINK FeedItemValidationErrorEnum_FeedItemValidationError = 56
	// Phone number incompatible with call tracking for country.
	FeedItemValidationErrorEnum_NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY FeedItemValidationErrorEnum_FeedItemValidationError = 57
	// The input is identical to a reserved keyword
	FeedItemValidationErrorEnum_RESERVED_KEYWORD_OTHER FeedItemValidationErrorEnum_FeedItemValidationError = 58
	// Each option label in the message extension must be unique.
	FeedItemValidationErrorEnum_DUPLICATE_OPTION_LABELS FeedItemValidationErrorEnum_FeedItemValidationError = 59
	// Each option prefill in the message extension must be unique.
	FeedItemValidationErrorEnum_DUPLICATE_OPTION_PREFILLS FeedItemValidationErrorEnum_FeedItemValidationError = 60
	// In message extensions, the number of optional labels and optional
	// prefills must be the same.
	FeedItemValidationErrorEnum_UNEQUAL_LIST_LENGTHS FeedItemValidationErrorEnum_FeedItemValidationError = 61
	// All currency codes in an ad extension must be the same.
	FeedItemValidationErrorEnum_INCONSISTENT_CURRENCY_CODES FeedItemValidationErrorEnum_FeedItemValidationError = 62
	// Headers in price extension are not unique.
	FeedItemValidationErrorEnum_PRICE_EXTENSION_HAS_DUPLICATED_HEADERS FeedItemValidationErrorEnum_FeedItemValidationError = 63
	// Header and description in an item are the same.
	FeedItemValidationErrorEnum_ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION FeedItemValidationErrorEnum_FeedItemValidationError = 64
	// Price extension has too few items.
	FeedItemValidationErrorEnum_PRICE_EXTENSION_HAS_TOO_FEW_ITEMS FeedItemValidationErrorEnum_FeedItemValidationError = 65
	// The given value is not supported.
	FeedItemValidationErrorEnum_UNSUPPORTED_VALUE FeedItemValidationErrorEnum_FeedItemValidationError = 66
	// Invalid final mobile url.
	FeedItemValidationErrorEnum_INVALID_FINAL_MOBILE_URL FeedItemValidationErrorEnum_FeedItemValidationError = 67
	// The given string value of Label contains invalid characters
	FeedItemValidationErrorEnum_INVALID_KEYWORDLESS_AD_RULE_LABEL FeedItemValidationErrorEnum_FeedItemValidationError = 68
	// The given URL contains value track parameters.
	FeedItemValidationErrorEnum_VALUE_TRACK_PARAMETER_NOT_SUPPORTED FeedItemValidationErrorEnum_FeedItemValidationError = 69
	// The given value is not supported in the selected language of an
	// extension.
	FeedItemValidationErrorEnum_UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE FeedItemValidationErrorEnum_FeedItemValidationError = 70
	// The iOS app link is not formatted correctly.
	FeedItemValidationErrorEnum_INVALID_IOS_APP_LINK FeedItemValidationErrorEnum_FeedItemValidationError = 71
	// iOS app link or iOS app store id is missing.
	FeedItemValidationErrorEnum_MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID FeedItemValidationErrorEnum_FeedItemValidationError = 72
	// Promotion time is invalid.
	FeedItemValidationErrorEnum_PROMOTION_INVALID_TIME FeedItemValidationErrorEnum_FeedItemValidationError = 73
	// Both the percent off and money amount off fields are set.
	FeedItemValidationErrorEnum_PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF FeedItemValidationErrorEnum_FeedItemValidationError = 74
	// Both the promotion code and orders over amount fields are set.
	FeedItemValidationErrorEnum_PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT FeedItemValidationErrorEnum_FeedItemValidationError = 75
	// Too many decimal places are specified.
	FeedItemValidationErrorEnum_TOO_MANY_DECIMAL_PLACES_SPECIFIED FeedItemValidationErrorEnum_FeedItemValidationError = 76
	// Ad Customizers are present and not allowed.
	FeedItemValidationErrorEnum_AD_CUSTOMIZERS_NOT_ALLOWED FeedItemValidationErrorEnum_FeedItemValidationError = 77
	// Language code is not valid.
	FeedItemValidationErrorEnum_INVALID_LANGUAGE_CODE FeedItemValidationErrorEnum_FeedItemValidationError = 78
	// Language is not supported.
	FeedItemValidationErrorEnum_UNSUPPORTED_LANGUAGE FeedItemValidationErrorEnum_FeedItemValidationError = 79
	// IF Function is present and not allowed.
	FeedItemValidationErrorEnum_IF_FUNCTION_NOT_ALLOWED FeedItemValidationErrorEnum_FeedItemValidationError = 80
	// Final url suffix is not valid.
	FeedItemValidationErrorEnum_INVALID_FINAL_URL_SUFFIX FeedItemValidationErrorEnum_FeedItemValidationError = 81
	// Final url suffix contains an invalid tag.
	FeedItemValidationErrorEnum_INVALID_TAG_IN_FINAL_URL_SUFFIX FeedItemValidationErrorEnum_FeedItemValidationError = 82
	// Final url suffix is formatted incorrectly.
	FeedItemValidationErrorEnum_INVALID_FINAL_URL_SUFFIX_FORMAT FeedItemValidationErrorEnum_FeedItemValidationError = 83
	// Consent for call recording, which is required for the use of call
	// extensions, was not provided by the advertiser. Please see
	// https://support.google.com/google-ads/answer/7412639.
	FeedItemValidationErrorEnum_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED FeedItemValidationErrorEnum_FeedItemValidationError = 84
	// Multiple message delivery options are set.
	FeedItemValidationErrorEnum_ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED FeedItemValidationErrorEnum_FeedItemValidationError = 85
	// No message delivery option is set.
	FeedItemValidationErrorEnum_NO_DELIVERY_OPTION_IS_SET FeedItemValidationErrorEnum_FeedItemValidationError = 86
	// String value of conversion reporting state field is not valid.
	FeedItemValidationErrorEnum_INVALID_CONVERSION_REPORTING_STATE FeedItemValidationErrorEnum_FeedItemValidationError = 87
	// Image size is not right.
	FeedItemValidationErrorEnum_IMAGE_SIZE_WRONG FeedItemValidationErrorEnum_FeedItemValidationError = 88
	// Email delivery is not supported in the country specified in the country
	// code field.
	FeedItemValidationErrorEnum_EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY FeedItemValidationErrorEnum_FeedItemValidationError = 89
	// Auto reply is not supported in the country specified in the country code
	// field.
	FeedItemValidationErrorEnum_AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY FeedItemValidationErrorEnum_FeedItemValidationError = 90
	// Invalid value specified for latitude.
	FeedItemValidationErrorEnum_INVALID_LATITUDE_VALUE FeedItemValidationErrorEnum_FeedItemValidationError = 91
	// Invalid value specified for longitude.
	FeedItemValidationErrorEnum_INVALID_LONGITUDE_VALUE FeedItemValidationErrorEnum_FeedItemValidationError = 92
	// Too many label fields provided.
	FeedItemValidationErrorEnum_TOO_MANY_LABELS FeedItemValidationErrorEnum_FeedItemValidationError = 93
	// Invalid image url.
	FeedItemValidationErrorEnum_INVALID_IMAGE_URL FeedItemValidationErrorEnum_FeedItemValidationError = 94
	// Latitude value is missing.
	FeedItemValidationErrorEnum_MISSING_LATITUDE_VALUE FeedItemValidationErrorEnum_FeedItemValidationError = 95
	// Longitude value is missing.
	FeedItemValidationErrorEnum_MISSING_LONGITUDE_VALUE FeedItemValidationErrorEnum_FeedItemValidationError = 96
	// Unable to find address.
	FeedItemValidationErrorEnum_ADDRESS_NOT_FOUND FeedItemValidationErrorEnum_FeedItemValidationError = 97
	// Cannot target provided address.
	FeedItemValidationErrorEnum_ADDRESS_NOT_TARGETABLE FeedItemValidationErrorEnum_FeedItemValidationError = 98
)

var FeedItemValidationErrorEnum_FeedItemValidationError_name = map[int32]string{
	0:  "UNSPECIFIED",
	1:  "UNKNOWN",
	2:  "STRING_TOO_SHORT",
	3:  "STRING_TOO_LONG",
	4:  "VALUE_NOT_SPECIFIED",
	5:  "INVALID_DOMESTIC_PHONE_NUMBER_FORMAT",
	6:  "INVALID_PHONE_NUMBER",
	7:  "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
	8:  "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
	9:  "DISALLOWED_NUMBER_TYPE",
	10: "VALUE_OUT_OF_RANGE",
	11: "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
	12: "CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING",
	13: "INVALID_COUNTRY_CODE",
	14: "INVALID_APP_ID",
	15: "MISSING_ATTRIBUTES_FOR_FIELDS",
	16: "INVALID_TYPE_ID",
	17: "INVALID_EMAIL_ADDRESS",
	18: "INVALID_HTTPS_URL",
	19: "MISSING_DELIVERY_ADDRESS",
	20: "START_DATE_AFTER_END_DATE",
	21: "MISSING_FEED_ITEM_START_TIME",
	22: "MISSING_FEED_ITEM_END_TIME",
	23: "MISSING_FEED_ITEM_ID",
	24: "VANITY_PHONE_NUMBER_NOT_ALLOWED",
	25: "INVALID_REVIEW_EXTENSION_SNIPPET",
	26: "INVALID_NUMBER_FORMAT",
	27: "INVALID_DATE_FORMAT",
	28: "INVALID_PRICE_FORMAT",
	29: "UNKNOWN_PLACEHOLDER_FIELD",
	30: "MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE",
	31: "REVIEW_EXTENSION_SOURCE_INELIGIBLE",
	32: "HYPHENS_IN_REVIEW_EXTENSION_SNIPPET",
	33: "DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
	34: "QUOTES_IN_REVIEW_EXTENSION_SNIPPET",
	35: "INVALID_FORM_ENCODED_PARAMS",
	36: "INVALID_URL_PARAMETER_NAME",
	37: "NO_GEOCODING_RESULT",
	38: "SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT",
	39: "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
	40: "INVALID_PLACEHOLDER_FIELD_ID",
	41: "INVALID_URL_TAG",
	42: "LIST_TOO_LONG",
	43: "INVALID_ATTRIBUTES_COMBINATION",
	44: "DUPLICATE_VALUES",
	45: "INVALID_CALL_CONVERSION_ACTION_ID",
	46: "CANNOT_SET_WITHOUT_FINAL_URLS",
	47: "APP_ID_DOESNT_EXIST_IN_APP_STORE",
	48: "INVALID_FINAL_URL",
	49: "INVALID_TRACKING_URL",
	50: "INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL",
	51: "LIST_TOO_SHORT",
	52: "INVALID_USER_ACTION",
	53: "INVALID_TYPE_NAME",
	54: "INVALID_EVENT_CHANGE_STATUS",
	55: "INVALID_SNIPPETS_HEADER",
	56: "INVALID_ANDROID_APP_LINK",
	57: "NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
	58: "RESERVED_KEYWORD_OTHER",
	59: "DUPLICATE_OPTION_LABELS",
	60: "DUPLICATE_OPTION_PREFILLS",
	61: "UNEQUAL_LIST_LENGTHS",
	62: "INCONSISTENT_CURRENCY_CODES",
	63: "PRICE_EXTENSION_HAS_DUPLICATED_HEADERS",
	64: "ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION",
	65: "PRICE_EXTENSION_HAS_TOO_FEW_ITEMS",
	66: "UNSUPPORTED_VALUE",
	67: "INVALID_FINAL_MOBILE_URL",
	68: "INVALID_KEYWORDLESS_AD_RULE_LABEL",
	69: "VALUE_TRACK_PARAMETER_NOT_SUPPORTED",
	70: "UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE",
	71: "INVALID_IOS_APP_LINK",
	72: "MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID",
	73: "PROMOTION_INVALID_TIME",
	74: "PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF",
	75: "PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT",
	76: "TOO_MANY_DECIMAL_PLACES_SPECIFIED",
	77: "AD_CUSTOMIZERS_NOT_ALLOWED",
	78: "INVALID_LANGUAGE_CODE",
	79: "UNSUPPORTED_LANGUAGE",
	80: "IF_FUNCTION_NOT_ALLOWED",
	81: "INVALID_FINAL_URL_SUFFIX",
	82: "INVALID_TAG_IN_FINAL_URL_SUFFIX",
	83: "INVALID_FINAL_URL_SUFFIX_FORMAT",
	84: "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
	85: "ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED",
	86: "NO_DELIVERY_OPTION_IS_SET",
	87: "INVALID_CONVERSION_REPORTING_STATE",
	88: "IMAGE_SIZE_WRONG",
	89: "EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY",
	90: "AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY",
	91: "INVALID_LATITUDE_VALUE",
	92: "INVALID_LONGITUDE_VALUE",
	93: "TOO_MANY_LABELS",
	94: "INVALID_IMAGE_URL",
	95: "MISSING_LATITUDE_VALUE",
	96: "MISSING_LONGITUDE_VALUE",
	97: "ADDRESS_NOT_FOUND",
	98: "ADDRESS_NOT_TARGETABLE",
}

var FeedItemValidationErrorEnum_FeedItemValidationError_value = map[string]int32{
	"UNSPECIFIED":                                                0,
	"UNKNOWN":                                                    1,
	"STRING_TOO_SHORT":                                           2,
	"STRING_TOO_LONG":                                            3,
	"VALUE_NOT_SPECIFIED":                                        4,
	"INVALID_DOMESTIC_PHONE_NUMBER_FORMAT":                       5,
	"INVALID_PHONE_NUMBER":                                       6,
	"PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY":                     7,
	"PREMIUM_RATE_NUMBER_NOT_ALLOWED":                            8,
	"DISALLOWED_NUMBER_TYPE":                                     9,
	"VALUE_OUT_OF_RANGE":                                         10,
	"CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY":                     11,
	"CUSTOMER_NOT_WHITELISTED_FOR_CALLTRACKING":                  12,
	"INVALID_COUNTRY_CODE":                                       13,
	"INVALID_APP_ID":                                             14,
	"MISSING_ATTRIBUTES_FOR_FIELDS":                              15,
	"INVALID_TYPE_ID":                                            16,
	"INVALID_EMAIL_ADDRESS":                                      17,
	"INVALID_HTTPS_URL":                                          18,
	"MISSING_DELIVERY_ADDRESS":                                   19,
	"START_DATE_AFTER_END_DATE":                                  20,
	"MISSING_FEED_ITEM_START_TIME":                               21,
	"MISSING_FEED_ITEM_END_TIME":                                 22,
	"MISSING_FEED_ITEM_ID":                                       23,
	"VANITY_PHONE_NUMBER_NOT_ALLOWED":                            24,
	"INVALID_REVIEW_EXTENSION_SNIPPET":                           25,
	"INVALID_NUMBER_FORMAT":                                      26,
	"INVALID_DATE_FORMAT":                                        27,
	"INVALID_PRICE_FORMAT":                                       28,
	"UNKNOWN_PLACEHOLDER_FIELD":                                  29,
	"MISSING_ENHANCED_SITELINK_DESCRIPTION_LINE":                 30,
	"REVIEW_EXTENSION_SOURCE_INELIGIBLE":                         31,
	"HYPHENS_IN_REVIEW_EXTENSION_SNIPPET":                        32,
	"DOUBLE_QUOTES_IN_REVIEW_EXTENSION_SNIPPET":                  33,
	"QUOTES_IN_REVIEW_EXTENSION_SNIPPET":                         34,
	"INVALID_FORM_ENCODED_PARAMS":                                35,
	"INVALID_URL_PARAMETER_NAME":                                 36,
	"NO_GEOCODING_RESULT":                                        37,
	"SOURCE_NAME_IN_REVIEW_EXTENSION_TEXT":                       38,
	"CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED":                  39,
	"INVALID_PLACEHOLDER_FIELD_ID":                               40,
	"INVALID_URL_TAG":                                            41,
	"LIST_TOO_LONG":                                              42,
	"INVALID_ATTRIBUTES_COMBINATION":                             43,
	"DUPLICATE_VALUES":                                           44,
	"INVALID_CALL_CONVERSION_ACTION_ID":                          45,
	"CANNOT_SET_WITHOUT_FINAL_URLS":                              46,
	"APP_ID_DOESNT_EXIST_IN_APP_STORE":                           47,
	"INVALID_FINAL_URL":                                          48,
	"INVALID_TRACKING_URL":                                       49,
	"INVALID_FINAL_URL_FOR_APP_DOWNLOAD_URL":                     50,
	"LIST_TOO_SHORT":                                             51,
	"INVALID_USER_ACTION":                                        52,
	"INVALID_TYPE_NAME":                                          53,
	"INVALID_EVENT_CHANGE_STATUS":                                54,
	"INVALID_SNIPPETS_HEADER":                                    55,
	"INVALID_ANDROID_APP_LINK":                                   56,
	"NUMBER_TYPE_WITH_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY":    57,
	"RESERVED_KEYWORD_OTHER":                                     58,
	"DUPLICATE_OPTION_LABELS":                                    59,
	"DUPLICATE_OPTION_PREFILLS":                                  60,
	"UNEQUAL_LIST_LENGTHS":                                       61,
	"INCONSISTENT_CURRENCY_CODES":                                62,
	"PRICE_EXTENSION_HAS_DUPLICATED_HEADERS":                     63,
	"ITEM_HAS_DUPLICATED_HEADER_AND_DESCRIPTION":                 64,
	"PRICE_EXTENSION_HAS_TOO_FEW_ITEMS":                          65,
	"UNSUPPORTED_VALUE":                                          66,
	"INVALID_FINAL_MOBILE_URL":                                   67,
	"INVALID_KEYWORDLESS_AD_RULE_LABEL":                          68,
	"VALUE_TRACK_PARAMETER_NOT_SUPPORTED":                        69,
	"UNSUPPORTED_VALUE_IN_SELECTED_LANGUAGE":                     70,
	"INVALID_IOS_APP_LINK":                                       71,
	"MISSING_IOS_APP_LINK_OR_IOS_APP_STORE_ID":                   72,
	"PROMOTION_INVALID_TIME":                                     73,
	"PROMOTION_CANNOT_SET_PERCENT_OFF_AND_MONEY_AMOUNT_OFF":      74,
	"PROMOTION_CANNOT_SET_PROMOTION_CODE_AND_ORDERS_OVER_AMOUNT": 75,
	"TOO_MANY_DECIMAL_PLACES_SPECIFIED":                          76,
	"AD_CUSTOMIZERS_NOT_ALLOWED":                                 77,
	"INVALID_LANGUAGE_CODE":                                      78,
	"UNSUPPORTED_LANGUAGE":                                       79,
	"IF_FUNCTION_NOT_ALLOWED":                                    80,
	"INVALID_FINAL_URL_SUFFIX":                                   81,
	"INVALID_TAG_IN_FINAL_URL_SUFFIX":                            82,
	"INVALID_FINAL_URL_SUFFIX_FORMAT":                            83,
	"CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED":               84,
	"ONLY_ONE_DELIVERY_OPTION_IS_ALLOWED":                        85,
	"NO_DELIVERY_OPTION_IS_SET":                                  86,
	"INVALID_CONVERSION_REPORTING_STATE":                         87,
	"IMAGE_SIZE_WRONG":                                           88,
	"EMAIL_DELIVERY_NOT_AVAILABLE_IN_COUNTRY":                    89,
	"AUTO_REPLY_NOT_AVAILABLE_IN_COUNTRY":                        90,
	"INVALID_LATITUDE_VALUE":                                     91,
	"INVALID_LONGITUDE_VALUE":                                    92,
	"TOO_MANY_LABELS":                                            93,
	"INVALID_IMAGE_URL":                                          94,
	"MISSING_LATITUDE_VALUE":                                     95,
	"MISSING_LONGITUDE_VALUE":                                    96,
	"ADDRESS_NOT_FOUND":                                          97,
	"ADDRESS_NOT_TARGETABLE":                                     98,
}

func (x FeedItemValidationErrorEnum_FeedItemValidationError) String() string {
	return proto.EnumName(FeedItemValidationErrorEnum_FeedItemValidationError_name, int32(x))
}

func (FeedItemValidationErrorEnum_FeedItemValidationError) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_40745eedd4c58492, []int{0, 0}
}

// Container for enum describing possible validation errors of a feed item.
type FeedItemValidationErrorEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FeedItemValidationErrorEnum) Reset()         { *m = FeedItemValidationErrorEnum{} }
func (m *FeedItemValidationErrorEnum) String() string { return proto.CompactTextString(m) }
func (*FeedItemValidationErrorEnum) ProtoMessage()    {}
func (*FeedItemValidationErrorEnum) Descriptor() ([]byte, []int) {
	return fileDescriptor_40745eedd4c58492, []int{0}
}

func (m *FeedItemValidationErrorEnum) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_FeedItemValidationErrorEnum.Unmarshal(m, b)
}
func (m *FeedItemValidationErrorEnum) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_FeedItemValidationErrorEnum.Marshal(b, m, deterministic)
}
func (m *FeedItemValidationErrorEnum) XXX_Merge(src proto.Message) {
	xxx_messageInfo_FeedItemValidationErrorEnum.Merge(m, src)
}
func (m *FeedItemValidationErrorEnum) XXX_Size() int {
	return xxx_messageInfo_FeedItemValidationErrorEnum.Size(m)
}
func (m *FeedItemValidationErrorEnum) XXX_DiscardUnknown() {
	xxx_messageInfo_FeedItemValidationErrorEnum.DiscardUnknown(m)
}

var xxx_messageInfo_FeedItemValidationErrorEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v3.errors.FeedItemValidationErrorEnum_FeedItemValidationError", FeedItemValidationErrorEnum_FeedItemValidationError_name, FeedItemValidationErrorEnum_FeedItemValidationError_value)
	proto.RegisterType((*FeedItemValidationErrorEnum)(nil), "google.ads.googleads.v3.errors.FeedItemValidationErrorEnum")
}

func init() {
	proto.RegisterFile("google/ads/googleads/v3/errors/feed_item_validation_error.proto", fileDescriptor_40745eedd4c58492)
}

var fileDescriptor_40745eedd4c58492 = []byte{
	// 1665 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0x6d, 0x73, 0x1b, 0xb7,
	0x11, 0xae, 0x9d, 0x36, 0x69, 0xe1, 0x26, 0x86, 0xe1, 0x57, 0xd9, 0xb2, 0x6c, 0xcb, 0x8e, 0xed,
	0x38, 0x0e, 0x95, 0x56, 0x4d, 0xd3, 0xd0, 0x6d, 0x52, 0xf0, 0xb0, 0x47, 0xa2, 0xc2, 0x01, 0x67,
	0x00, 0x47, 0x8a, 0xaa, 0x5a, 0x54, 0x29, 0x59, 0x8d, 0x66, 0x2c, 0xd1, 0x23, 0xaa, 0xfe, 0x41,
	0xfd, 0xd8, 0x3f, 0xd2, 0x99, 0xfe, 0x91, 0xce, 0xf4, 0x0f, 0xf4, 0x6b, 0x67, 0x71, 0x2f, 0x3c,
	0x89, 0x92, 0x27, 0x9f, 0x44, 0x01, 0xbb, 0x0b, 0xec, 0xb3, 0xcf, 0x3e, 0x8b, 0x23, 0xdf, 0xed,
	0xcf, 0x66, 0xfb, 0x6f, 0xa6, 0x1b, 0x7b, 0x93, 0xf9, 0x46, 0xf9, 0x13, 0x7f, 0xbd, 0xdb, 0xdc,
	0x98, 0x1e, 0x1f, 0xcf, 0x8e, 0xe7, 0x1b, 0x7f, 0x9b, 0x4e, 0x27, 0xe1, 0xe0, 0x64, 0x7a, 0x18,
	0xde, 0xed, 0xbd, 0x39, 0x98, 0xec, 0x9d, 0x1c, 0xcc, 0x8e, 0x42, 0xdc, 0xeb, 0xbc, 0x3d, 0x9e,
	0x9d, 0xcc, 0xd8, 0x5a, 0xe9, 0xd5, 0xd9, 0x9b, 0xcc, 0x3b, 0x4d, 0x80, 0xce, 0xbb, 0xcd, 0x4e,
	0x19, 0xe0, 0xee, 0x6a, 0x7d, 0xc0, 0xdb, 0x83, 0x8d, 0xbd, 0xa3, 0xa3, 0xd9, 0x49, 0x0c, 0x31,
	0x2f, 0xbd, 0xd7, 0xff, 0xb3, 0x42, 0xee, 0xa5, 0xd3, 0xe9, 0x44, 0x9e, 0x4c, 0x0f, 0x87, 0xcd,
	0x01, 0x80, 0xae, 0x70, 0xf4, 0xf7, 0xc3, 0xf5, 0x7f, 0xad, 0x90, 0xdb, 0x17, 0xec, 0xb3, 0xab,
	0xe4, 0x4a, 0xa1, 0x5d, 0x0e, 0x89, 0x4c, 0x25, 0x08, 0xfa, 0x23, 0x76, 0x85, 0x7c, 0x54, 0xe8,
	0x2d, 0x6d, 0x46, 0x9a, 0x5e, 0x62, 0x37, 0x08, 0x75, 0xde, 0x4a, 0xdd, 0x0f, 0xde, 0x98, 0xe0,
	0x06, 0xc6, 0x7a, 0x7a, 0x99, 0x5d, 0x27, 0x57, 0x5b, 0xab, 0xca, 0xe8, 0x3e, 0xfd, 0x80, 0xdd,
	0x26, 0xd7, 0x87, 0x5c, 0x15, 0x10, 0xb4, 0xf1, 0x61, 0x11, 0xf0, 0xc7, 0xec, 0x39, 0x79, 0x22,
	0xf5, 0x90, 0x2b, 0x29, 0x82, 0x30, 0x19, 0x38, 0x2f, 0x93, 0x90, 0x0f, 0x8c, 0x86, 0xa0, 0x8b,
	0xac, 0x07, 0x36, 0xa4, 0xc6, 0x66, 0xdc, 0xd3, 0x9f, 0xb0, 0x3b, 0xe4, 0x46, 0x6d, 0xd9, 0x36,
	0xa0, 0x1f, 0xb2, 0x17, 0xe4, 0xe9, 0x29, 0x97, 0x78, 0x46, 0x91, 0xe7, 0xc6, 0x7a, 0x10, 0x18,
	0x20, 0x24, 0xa6, 0xd0, 0xde, 0x8e, 0xe9, 0x47, 0xec, 0x31, 0x79, 0x90, 0x5b, 0xc8, 0x64, 0x91,
	0x05, 0xcb, 0xfd, 0x29, 0x17, 0xae, 0x94, 0x19, 0x81, 0xa0, 0x3f, 0x65, 0x77, 0xc9, 0x2d, 0x21,
	0x5d, 0xf5, 0x7f, 0x6d, 0xe2, 0xc7, 0x39, 0xd0, 0x9f, 0xb1, 0x5b, 0x84, 0x95, 0x99, 0x98, 0xc2,
	0x07, 0x93, 0x06, 0xcb, 0x75, 0x1f, 0x28, 0xc1, 0x4b, 0x24, 0x5c, 0x29, 0x6f, 0x79, 0xb2, 0x85,
	0xc9, 0x5f, 0x7c, 0x89, 0x2b, 0xec, 0x0b, 0xf2, 0x59, 0x52, 0x38, 0x6f, 0xb2, 0xea, 0xe4, 0xd1,
	0x40, 0x7a, 0x50, 0xd2, 0x35, 0x96, 0xad, 0x40, 0xf4, 0xe7, 0xed, 0xcc, 0xab, 0x18, 0x21, 0x31,
	0x02, 0xe8, 0xc7, 0x8c, 0x91, 0x4f, 0xea, 0x1d, 0x9e, 0xe7, 0x41, 0x0a, 0xfa, 0x09, 0x7b, 0x44,
	0xee, 0x67, 0xd2, 0x39, 0xbc, 0x03, 0xf7, 0xde, 0xca, 0x5e, 0xe1, 0xc1, 0xc5, 0xb0, 0xa9, 0x04,
	0x25, 0x1c, 0xbd, 0x8a, 0x25, 0xaa, 0xdd, 0x30, 0x2b, 0xf4, 0xa3, 0x6c, 0x85, 0xdc, 0xac, 0x17,
	0x21, 0xe3, 0x52, 0x05, 0x2e, 0x84, 0x05, 0xe7, 0xe8, 0x35, 0x76, 0x93, 0x5c, 0xab, 0xb7, 0x06,
	0xde, 0xe7, 0x2e, 0x14, 0x56, 0x51, 0xc6, 0x56, 0xc9, 0x9d, 0xfa, 0x24, 0x01, 0x4a, 0x0e, 0xc1,
	0x8e, 0x1b, 0xa7, 0xeb, 0xec, 0x3e, 0x59, 0x71, 0x9e, 0x5b, 0x1f, 0x04, 0xe2, 0xcc, 0x53, 0x0f,
	0x36, 0x80, 0x16, 0xf1, 0x5f, 0x7a, 0x83, 0x3d, 0x24, 0xab, 0xb5, 0x73, 0x0a, 0x20, 0x82, 0xf4,
	0x90, 0x85, 0xd2, 0xc1, 0xcb, 0x0c, 0xe8, 0x4d, 0xb6, 0x46, 0xee, 0x2e, 0x5b, 0x60, 0x84, 0xb8,
	0x7f, 0x0b, 0x61, 0x59, 0xde, 0x97, 0x82, 0xde, 0xc6, 0x22, 0x0f, 0xb9, 0x96, 0x7e, 0x1c, 0x96,
	0x78, 0x51, 0x17, 0xf9, 0x0e, 0x7b, 0x42, 0x1e, 0xd6, 0x49, 0x59, 0x18, 0x4a, 0x18, 0x05, 0xd8,
	0xf6, 0xa0, 0x9d, 0x34, 0x3a, 0x38, 0x2d, 0xf3, 0x1c, 0x3c, 0x5d, 0x69, 0xa3, 0x72, 0x9a, 0x90,
	0x77, 0x91, 0xd3, 0x0d, 0x75, 0x31, 0xc5, 0x6a, 0xe3, 0xde, 0x29, 0xa6, 0x5a, 0x99, 0x34, 0x3b,
	0xab, 0x88, 0x49, 0xd5, 0x3e, 0x21, 0x57, 0x3c, 0x81, 0x81, 0x51, 0x02, 0xaa, 0xc2, 0xd0, 0xfb,
	0xac, 0x43, 0x5e, 0xd4, 0x19, 0x81, 0x1e, 0x70, 0x9d, 0x80, 0x08, 0x2e, 0x52, 0x43, 0x6f, 0x05,
	0x01, 0x2e, 0xb1, 0x32, 0xf7, 0x78, 0x3f, 0x25, 0x35, 0xd0, 0x35, 0xf6, 0x94, 0xac, 0x2f, 0x5f,
	0xdd, 0x14, 0x36, 0x81, 0x20, 0x35, 0x28, 0xd9, 0x97, 0x3d, 0x05, 0xf4, 0x01, 0x7b, 0x46, 0x1e,
	0x0f, 0xc6, 0xf9, 0x00, 0xb4, 0x0b, 0x52, 0x5f, 0x9c, 0xed, 0x43, 0x24, 0xa6, 0x30, 0x45, 0x4f,
	0x41, 0x78, 0x5d, 0x18, 0xa4, 0xcd, 0xfb, 0xcc, 0x1f, 0xe1, 0xf9, 0x3f, 0xc0, 0x6e, 0x9d, 0x3d,
	0x20, 0xf7, 0x6a, 0x40, 0x10, 0x8a, 0x00, 0x1a, 0xf9, 0x2b, 0x42, 0xce, 0x2d, 0xcf, 0x1c, 0x7d,
	0x8c, 0xa5, 0xae, 0x0d, 0x0a, 0xab, 0xca, 0x75, 0x40, 0xc2, 0x68, 0x9e, 0x01, 0x7d, 0x82, 0x50,
	0x6b, 0x13, 0xfa, 0x60, 0x12, 0x23, 0x10, 0x1d, 0x0b, 0xae, 0x50, 0x9e, 0x7e, 0x8a, 0xf2, 0x51,
	0x25, 0x8c, 0x96, 0xe7, 0x5e, 0xc3, 0xc3, 0xb6, 0xa7, 0x4f, 0x63, 0xcf, 0x71, 0x6b, 0x25, 0xd8,
	0x5a, 0x7f, 0x92, 0x52, 0xb2, 0xce, 0x63, 0xc7, 0x33, 0xa4, 0x67, 0x53, 0xc3, 0xb3, 0x95, 0x42,
	0x92, 0x3d, 0x6f, 0x37, 0x11, 0xde, 0xd9, 0xf3, 0x3e, 0xfd, 0x8c, 0x5d, 0x23, 0x1f, 0x63, 0x1f,
	0x2f, 0xa4, 0xef, 0x05, 0x5b, 0x27, 0x6b, 0x4d, 0x8f, 0x2e, 0xfa, 0x31, 0x31, 0x59, 0x4f, 0x6a,
	0x8e, 0xd5, 0xa4, 0x9f, 0xa3, 0x92, 0x8a, 0x22, 0x57, 0x32, 0x41, 0x1e, 0x45, 0x79, 0x71, 0xf4,
	0x25, 0xfb, 0x94, 0x3c, 0x6a, 0xfa, 0x9e, 0x2b, 0x15, 0x12, 0xa3, 0x87, 0x60, 0x63, 0x52, 0x3c,
	0x89, 0x3c, 0x90, 0x82, 0x7e, 0x81, 0x0d, 0x9f, 0x70, 0x1d, 0xf5, 0x06, 0x7c, 0x18, 0x49, 0x3f,
	0x40, 0x69, 0x4a, 0xa5, 0xe6, 0x0a, 0x6f, 0xe6, 0x68, 0x07, 0xb9, 0x5e, 0xea, 0x43, 0x10, 0x06,
	0x9c, 0xf6, 0x01, 0xb6, 0xf1, 0x96, 0x52, 0x47, 0xd9, 0x70, 0xde, 0x58, 0xa0, 0x1b, 0xed, 0x36,
	0x6f, 0xbc, 0xe9, 0x97, 0x6d, 0x3a, 0x37, 0xea, 0x86, 0x3b, 0xbf, 0x40, 0xcd, 0x5b, 0x72, 0x88,
	0x4a, 0x83, 0x51, 0x85, 0x19, 0x69, 0x65, 0x78, 0x44, 0x87, 0xfe, 0x12, 0xa5, 0xaa, 0x41, 0xa6,
	0x1c, 0x15, 0x9b, 0xed, 0x0e, 0x2a, 0x1c, 0xd8, 0x2a, 0x2b, 0xfa, 0xab, 0xf6, 0x4d, 0xa2, 0x40,
	0x45, 0x1a, 0x7c, 0xd5, 0xe6, 0x11, 0x0c, 0x41, 0xfb, 0x90, 0x0c, 0x50, 0x7d, 0x51, 0x36, 0x7c,
	0xe1, 0xe8, 0xaf, 0xd9, 0x3d, 0x72, 0xbb, 0x36, 0xa8, 0xd8, 0xe7, 0xc2, 0x00, 0xb8, 0x00, 0x4b,
	0xbf, 0x46, 0xb9, 0x6a, 0x0a, 0xa1, 0x85, 0x35, 0x95, 0x68, 0x62, 0x73, 0xd1, 0xdf, 0xb0, 0x57,
	0xe4, 0xeb, 0x96, 0xd0, 0x47, 0x18, 0xc3, 0x0f, 0x14, 0xf4, 0x6f, 0x70, 0x60, 0x58, 0x70, 0x60,
	0x87, 0x20, 0xc2, 0x16, 0x8c, 0x47, 0xc6, 0x8a, 0x60, 0xfc, 0x00, 0x2c, 0xed, 0xe2, 0x9d, 0x16,
	0xb5, 0x35, 0x55, 0xff, 0xf2, 0x1e, 0x28, 0x47, 0x5f, 0xa1, 0x20, 0x2c, 0x6d, 0xe6, 0x16, 0x52,
	0xa9, 0x94, 0xa3, 0xbf, 0x45, 0xe8, 0x0b, 0x0d, 0xaf, 0x0b, 0xae, 0x42, 0x04, 0x4f, 0x81, 0xee,
	0xfb, 0x81, 0xa3, 0xbf, 0x2b, 0xa1, 0x48, 0x8c, 0x76, 0x38, 0x35, 0x10, 0x89, 0xc2, 0x5a, 0xd0,
	0x49, 0x39, 0x19, 0x1c, 0xfd, 0x36, 0x0e, 0xc5, 0x28, 0x3e, 0x8b, 0x4e, 0x18, 0x70, 0x17, 0x9a,
	0xd3, 0x44, 0x05, 0x8c, 0xa3, 0xdf, 0xa1, 0xee, 0x44, 0xf1, 0x3c, 0xd7, 0x00, 0xc1, 0x6a, 0x8b,
	0x0f, 0xfd, 0x3d, 0x12, 0xf3, 0xbc, 0xd8, 0x58, 0xda, 0x14, 0x46, 0x51, 0x88, 0x1d, 0xe5, 0x58,
	0xc5, 0x42, 0x2f, 0x20, 0x8b, 0xbc, 0xa6, 0xbd, 0x76, 0x1d, 0x4a, 0xd6, 0x64, 0xa6, 0x27, 0x15,
	0x44, 0x9e, 0x24, 0x6d, 0xd2, 0x57, 0x48, 0x2a, 0x70, 0x2e, 0x70, 0x11, 0x6c, 0xa1, 0xa0, 0x44,
	0x8e, 0x0a, 0x94, 0xb4, 0x72, 0x0c, 0xc7, 0xfa, 0xb4, 0x15, 0xa3, 0x5d, 0x26, 0x0a, 0x88, 0xc3,
	0xd2, 0x25, 0x90, 0xf8, 0x0e, 0x14, 0x24, 0xb8, 0xa2, 0xb8, 0xee, 0x17, 0xbc, 0x0f, 0x34, 0x6d,
	0x33, 0x5d, 0x1a, 0xb7, 0x60, 0x47, 0x9f, 0xbd, 0x24, 0xcf, 0x6b, 0x65, 0x6e, 0xef, 0x04, 0x63,
	0x9b, 0xff, 0x63, 0x17, 0x61, 0x47, 0x0e, 0x90, 0x0e, 0xb9, 0x35, 0x99, 0x29, 0x7b, 0xb4, 0x26,
	0x32, 0x4e, 0x2d, 0xc9, 0xbe, 0x21, 0x5f, 0x2d, 0xf6, 0x5a, 0x7d, 0x9b, 0x83, 0x4d, 0xb0, 0x90,
	0x26, 0x4d, 0x23, 0xe2, 0x99, 0xd1, 0x30, 0x0e, 0x3c, 0x43, 0x8e, 0xe1, 0x22, 0xfd, 0x03, 0xfb,
	0x96, 0x74, 0xcf, 0x77, 0x5d, 0x2c, 0x1a, 0x01, 0xd1, 0xdb, 0x58, 0x2c, 0x6d, 0x30, 0x43, 0xac,
	0x5f, 0x8c, 0x41, 0xb7, 0x10, 0x5a, 0x2c, 0x51, 0xc6, 0xf5, 0x38, 0x08, 0x48, 0x64, 0xc6, 0x55,
	0x29, 0x6e, 0xae, 0xf5, 0x24, 0x53, 0x28, 0xc6, 0x5c, 0x84, 0xf2, 0x81, 0x22, 0x77, 0x30, 0x4c,
	0x5b, 0x1a, 0xb3, 0xf6, 0x48, 0xac, 0xb1, 0x2b, 0xdf, 0x23, 0xba, 0xe4, 0xeb, 0x02, 0xec, 0x06,
	0x5a, 0x13, 0x3b, 0x33, 0x0d, 0x69, 0xa1, 0x4b, 0xe1, 0x6a, 0x47, 0xcc, 0x97, 0x19, 0x81, 0x3a,
	0xe2, 0x8a, 0x34, 0x95, 0xdb, 0xf4, 0x35, 0x4e, 0xf3, 0x06, 0x43, 0xde, 0xc7, 0xda, 0x2d, 0x19,
	0xd9, 0xb6, 0xd1, 0xd9, 0xdd, 0x7a, 0xfc, 0x3a, 0xf6, 0x25, 0x79, 0xd9, 0xbc, 0xbb, 0xb0, 0x77,
	0x10, 0xef, 0xfa, 0xbd, 0x15, 0x2c, 0x24, 0xc6, 0x56, 0xd3, 0xe5, 0x75, 0x21, 0x2d, 0x08, 0xea,
	0x91, 0x66, 0x46, 0xab, 0x71, 0xc0, 0x57, 0x44, 0xf3, 0xc6, 0xa9, 0xfa, 0x54, 0xba, 0x26, 0x85,
	0x02, 0x1b, 0x59, 0x9b, 0xf3, 0x4c, 0x1c, 0x78, 0x3a, 0xc4, 0x49, 0xb9, 0x78, 0xc2, 0x35, 0x2a,
	0x6e, 0x01, 0x81, 0xc2, 0x23, 0x51, 0xc1, 0x80, 0x8e, 0x70, 0x10, 0xc8, 0x0c, 0x01, 0x75, 0x72,
	0x07, 0xc2, 0xc8, 0xe2, 0x08, 0xd9, 0x66, 0x9f, 0x93, 0x67, 0xe5, 0x93, 0xac, 0x89, 0x1f, 0xf1,
	0x1b, 0x72, 0xa9, 0x38, 0x0e, 0x6b, 0xa9, 0x1b, 0x2d, 0x1a, 0xe3, 0x95, 0x79, 0xe1, 0x0d, 0x06,
	0x57, 0xef, 0x31, 0xdc, 0x41, 0x96, 0x2e, 0xea, 0xe8, 0xa5, 0x2f, 0x44, 0x35, 0x7b, 0xe8, 0x1f,
	0xdb, 0x42, 0x8a, 0x63, 0xac, 0xbd, 0xb9, 0x8b, 0x93, 0xaf, 0xe1, 0x51, 0xa5, 0x64, 0x7f, 0x6a,
	0x4b, 0x76, 0x99, 0x01, 0xb6, 0xf3, 0x9f, 0xf1, 0x90, 0xba, 0x71, 0xce, 0x1c, 0x12, 0xf0, 0x90,
	0x66, 0xef, 0xcc, 0x21, 0x7f, 0xc1, 0x78, 0xd5, 0x5b, 0x32, 0xe6, 0x90, 0x9a, 0x42, 0x0b, 0xba,
	0x87, 0xf1, 0xda, 0xcb, 0x9e, 0xdb, 0x3e, 0x78, 0xcc, 0x8d, 0x7e, 0xdf, 0xfb, 0xdf, 0x25, 0xb2,
	0xfe, 0xd7, 0xd9, 0x61, 0xe7, 0xfd, 0x9f, 0x4b, 0xbd, 0xd5, 0x0b, 0xbe, 0x76, 0x72, 0xfc, 0x5c,
	0xca, 0x2f, 0xed, 0x88, 0xca, 0x7f, 0x7f, 0xf6, 0x66, 0xef, 0x68, 0xbf, 0x33, 0x3b, 0xde, 0xdf,
	0xd8, 0x9f, 0x1e, 0xc5, 0x8f, 0xa9, 0xfa, 0xfb, 0xed, 0xed, 0xc1, 0xfc, 0xa2, 0xcf, 0xb9, 0x57,
	0xe5, 0x9f, 0x7f, 0x5c, 0xfe, 0xa0, 0xcf, 0xf9, 0x3f, 0x2f, 0xaf, 0xf5, 0xcb, 0x60, 0x7c, 0x32,
	0xef, 0x94, 0x3f, 0xf1, 0xd7, 0x70, 0xb3, 0x13, 0x8f, 0x9c, 0xff, 0xbb, 0x36, 0xd8, 0xe5, 0x93,
	0xf9, 0x6e, 0x63, 0xb0, 0x3b, 0xdc, 0xdc, 0x2d, 0x0d, 0xfe, 0x7b, 0x79, 0xbd, 0x5c, 0xed, 0x76,
	0xf9, 0x64, 0xde, 0xed, 0x36, 0x26, 0xdd, 0xee, 0x70, 0xb3, 0xdb, 0x2d, 0x8d, 0xbe, 0xff, 0x30,
	0xde, 0x6e, 0xf3, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6a, 0x84, 0x4d, 0xa4, 0x6b, 0x0e, 0x00,
	0x00,
}
