// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/ads/googleads/v3/errors/ad_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

// Enum describing possible ad errors.
type AdErrorEnum_AdError int32

const (
	// Enum unspecified.
	AdErrorEnum_UNSPECIFIED AdErrorEnum_AdError = 0
	// The received error code is not known in this version.
	AdErrorEnum_UNKNOWN AdErrorEnum_AdError = 1
	// Ad customizers are not supported for ad type.
	AdErrorEnum_AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE AdErrorEnum_AdError = 2
	// Estimating character sizes the string is too long.
	AdErrorEnum_APPROXIMATELY_TOO_LONG AdErrorEnum_AdError = 3
	// Estimating character sizes the string is too short.
	AdErrorEnum_APPROXIMATELY_TOO_SHORT AdErrorEnum_AdError = 4
	// There is a problem with the snippet.
	AdErrorEnum_BAD_SNIPPET AdErrorEnum_AdError = 5
	// Cannot modify an ad.
	AdErrorEnum_CANNOT_MODIFY_AD AdErrorEnum_AdError = 6
	// business name and url cannot be set at the same time
	AdErrorEnum_CANNOT_SET_BUSINESS_NAME_IF_URL_SET AdErrorEnum_AdError = 7
	// The specified field is incompatible with this ad's type or settings.
	AdErrorEnum_CANNOT_SET_FIELD AdErrorEnum_AdError = 8
	// Cannot set field when originAdId is set.
	AdErrorEnum_CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET AdErrorEnum_AdError = 9
	// Cannot set field when an existing ad id is set for sharing.
	AdErrorEnum_CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING AdErrorEnum_AdError = 10
	// Cannot set allowFlexibleColor false if no color is provided by user.
	AdErrorEnum_CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE AdErrorEnum_AdError = 11
	// When user select native, no color control is allowed because we will
	// always respect publisher color for native format serving.
	AdErrorEnum_CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING AdErrorEnum_AdError = 12
	// Cannot specify a url for the ad type
	AdErrorEnum_CANNOT_SET_URL AdErrorEnum_AdError = 13
	// Cannot specify a tracking or mobile url without also setting final urls
	AdErrorEnum_CANNOT_SET_WITHOUT_FINAL_URLS AdErrorEnum_AdError = 14
	// Cannot specify a legacy url and a final url simultaneously
	AdErrorEnum_CANNOT_SET_WITH_FINAL_URLS AdErrorEnum_AdError = 15
	// Cannot specify a urls in UrlData and in template fields simultaneously.
	AdErrorEnum_CANNOT_SET_WITH_URL_DATA AdErrorEnum_AdError = 17
	// This operator cannot be used with a subclass of Ad.
	AdErrorEnum_CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR AdErrorEnum_AdError = 18
	// Customer is not approved for mobile ads.
	AdErrorEnum_CUSTOMER_NOT_APPROVED_MOBILEADS AdErrorEnum_AdError = 19
	// Customer is not approved for 3PAS richmedia ads.
	AdErrorEnum_CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS AdErrorEnum_AdError = 20
	// Customer is not approved for 3PAS redirect richmedia (Ad Exchange) ads.
	AdErrorEnum_CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS AdErrorEnum_AdError = 21
	// Not an eligible customer
	AdErrorEnum_CUSTOMER_NOT_ELIGIBLE AdErrorEnum_AdError = 22
	// Customer is not eligible for updating beacon url
	AdErrorEnum_CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL AdErrorEnum_AdError = 23
	// There already exists an ad with the same dimensions in the union.
	AdErrorEnum_DIMENSION_ALREADY_IN_UNION AdErrorEnum_AdError = 24
	// Ad's dimension must be set before setting union dimension.
	AdErrorEnum_DIMENSION_MUST_BE_SET AdErrorEnum_AdError = 25
	// Ad's dimension must be included in the union dimensions.
	AdErrorEnum_DIMENSION_NOT_IN_UNION AdErrorEnum_AdError = 26
	// Display Url cannot be specified (applies to Ad Exchange Ads)
	AdErrorEnum_DISPLAY_URL_CANNOT_BE_SPECIFIED AdErrorEnum_AdError = 27
	// Telephone number contains invalid characters or invalid format. Please
	// re-enter your number using digits (0-9), dashes (-), and parentheses
	// only.
	AdErrorEnum_DOMESTIC_PHONE_NUMBER_FORMAT AdErrorEnum_AdError = 28
	// Emergency telephone numbers are not allowed. Please enter a valid
	// domestic phone number to connect customers to your business.
	AdErrorEnum_EMERGENCY_PHONE_NUMBER AdErrorEnum_AdError = 29
	// A required field was not specified or is an empty string.
	AdErrorEnum_EMPTY_FIELD AdErrorEnum_AdError = 30
	// A feed attribute referenced in an ad customizer tag is not in the ad
	// customizer mapping for the feed.
	AdErrorEnum_FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID AdErrorEnum_AdError = 31
	// The ad customizer field mapping for the feed attribute does not match the
	// expected field type.
	AdErrorEnum_FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH AdErrorEnum_AdError = 32
	// The use of ad customizer tags in the ad text is disallowed. Details in
	// trigger.
	AdErrorEnum_ILLEGAL_AD_CUSTOMIZER_TAG_USE AdErrorEnum_AdError = 33
	// Tags of the form {PH_x}, where x is a number, are disallowed in ad text.
	AdErrorEnum_ILLEGAL_TAG_USE AdErrorEnum_AdError = 34
	// The dimensions of the ad are specified or derived in multiple ways and
	// are not consistent.
	AdErrorEnum_INCONSISTENT_DIMENSIONS AdErrorEnum_AdError = 35
	// The status cannot differ among template ads of the same union.
	AdErrorEnum_INCONSISTENT_STATUS_IN_TEMPLATE_UNION AdErrorEnum_AdError = 36
	// The length of the string is not valid.
	AdErrorEnum_INCORRECT_LENGTH AdErrorEnum_AdError = 37
	// The ad is ineligible for upgrade.
	AdErrorEnum_INELIGIBLE_FOR_UPGRADE AdErrorEnum_AdError = 38
	// User cannot create mobile ad for countries targeted in specified
	// campaign.
	AdErrorEnum_INVALID_AD_ADDRESS_CAMPAIGN_TARGET AdErrorEnum_AdError = 39
	// Invalid Ad type. A specific type of Ad is required.
	AdErrorEnum_INVALID_AD_TYPE AdErrorEnum_AdError = 40
	// Headline, description or phone cannot be present when creating mobile
	// image ad.
	AdErrorEnum_INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE AdErrorEnum_AdError = 41
	// Image cannot be present when creating mobile text ad.
	AdErrorEnum_INVALID_ATTRIBUTES_FOR_MOBILE_TEXT AdErrorEnum_AdError = 42
	// Invalid call to action text.
	AdErrorEnum_INVALID_CALL_TO_ACTION_TEXT AdErrorEnum_AdError = 43
	// Invalid character in URL.
	AdErrorEnum_INVALID_CHARACTER_FOR_URL AdErrorEnum_AdError = 44
	// Creative's country code is not valid.
	AdErrorEnum_INVALID_COUNTRY_CODE AdErrorEnum_AdError = 45
	// Invalid use of Expanded Dynamic Search Ads tags ({lpurl} etc.)
	AdErrorEnum_INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG AdErrorEnum_AdError = 47
	// An input error whose real reason was not properly mapped (should not
	// happen).
	AdErrorEnum_INVALID_INPUT AdErrorEnum_AdError = 48
	// An invalid markup language was entered.
	AdErrorEnum_INVALID_MARKUP_LANGUAGE AdErrorEnum_AdError = 49
	// An invalid mobile carrier was entered.
	AdErrorEnum_INVALID_MOBILE_CARRIER AdErrorEnum_AdError = 50
	// Specified mobile carriers target a country not targeted by the campaign.
	AdErrorEnum_INVALID_MOBILE_CARRIER_TARGET AdErrorEnum_AdError = 51
	// Wrong number of elements for given element type
	AdErrorEnum_INVALID_NUMBER_OF_ELEMENTS AdErrorEnum_AdError = 52
	// The format of the telephone number is incorrect. Please re-enter the
	// number using the correct format.
	AdErrorEnum_INVALID_PHONE_NUMBER_FORMAT AdErrorEnum_AdError = 53
	// The certified vendor format id is incorrect.
	AdErrorEnum_INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID AdErrorEnum_AdError = 54
	// The template ad data contains validation errors.
	AdErrorEnum_INVALID_TEMPLATE_DATA AdErrorEnum_AdError = 55
	// The template field doesn't have have the correct type.
	AdErrorEnum_INVALID_TEMPLATE_ELEMENT_FIELD_TYPE AdErrorEnum_AdError = 56
	// Invalid template id.
	AdErrorEnum_INVALID_TEMPLATE_ID AdErrorEnum_AdError = 57
	// After substituting replacement strings, the line is too wide.
	AdErrorEnum_LINE_TOO_WIDE AdErrorEnum_AdError = 58
	// The feed referenced must have ad customizer mapping to be used in a
	// customizer tag.
	AdErrorEnum_MISSING_AD_CUSTOMIZER_MAPPING AdErrorEnum_AdError = 59
	// Missing address component in template element address field.
	AdErrorEnum_MISSING_ADDRESS_COMPONENT AdErrorEnum_AdError = 60
	// An ad name must be entered.
	AdErrorEnum_MISSING_ADVERTISEMENT_NAME AdErrorEnum_AdError = 61
	// Business name must be entered.
	AdErrorEnum_MISSING_BUSINESS_NAME AdErrorEnum_AdError = 62
	// Description (line 2) must be entered.
	AdErrorEnum_MISSING_DESCRIPTION1 AdErrorEnum_AdError = 63
	// Description (line 3) must be entered.
	AdErrorEnum_MISSING_DESCRIPTION2 AdErrorEnum_AdError = 64
	// The destination url must contain at least one tag (e.g. {lpurl})
	AdErrorEnum_MISSING_DESTINATION_URL_TAG AdErrorEnum_AdError = 65
	// The tracking url template of ExpandedDynamicSearchAd must contain at
	// least one tag. (e.g. {lpurl})
	AdErrorEnum_MISSING_LANDING_PAGE_URL_TAG AdErrorEnum_AdError = 66
	// A valid dimension must be specified for this ad.
	AdErrorEnum_MISSING_DIMENSION AdErrorEnum_AdError = 67
	// A display URL must be entered.
	AdErrorEnum_MISSING_DISPLAY_URL AdErrorEnum_AdError = 68
	// Headline must be entered.
	AdErrorEnum_MISSING_HEADLINE AdErrorEnum_AdError = 69
	// A height must be entered.
	AdErrorEnum_MISSING_HEIGHT AdErrorEnum_AdError = 70
	// An image must be entered.
	AdErrorEnum_MISSING_IMAGE AdErrorEnum_AdError = 71
	// Marketing image or product videos are required.
	AdErrorEnum_MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS AdErrorEnum_AdError = 72
	// The markup language in which your site is written must be entered.
	AdErrorEnum_MISSING_MARKUP_LANGUAGES AdErrorEnum_AdError = 73
	// A mobile carrier must be entered.
	AdErrorEnum_MISSING_MOBILE_CARRIER AdErrorEnum_AdError = 74
	// Phone number must be entered.
	AdErrorEnum_MISSING_PHONE AdErrorEnum_AdError = 75
	// Missing required template fields
	AdErrorEnum_MISSING_REQUIRED_TEMPLATE_FIELDS AdErrorEnum_AdError = 76
	// Missing a required field value
	AdErrorEnum_MISSING_TEMPLATE_FIELD_VALUE AdErrorEnum_AdError = 77
	// The ad must have text.
	AdErrorEnum_MISSING_TEXT AdErrorEnum_AdError = 78
	// A visible URL must be entered.
	AdErrorEnum_MISSING_VISIBLE_URL AdErrorEnum_AdError = 79
	// A width must be entered.
	AdErrorEnum_MISSING_WIDTH AdErrorEnum_AdError = 80
	// Only 1 feed can be used as the source of ad customizer substitutions in a
	// single ad.
	AdErrorEnum_MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED AdErrorEnum_AdError = 81
	// TempAdUnionId must be use when adding template ads.
	AdErrorEnum_MUST_USE_TEMP_AD_UNION_ID_ON_ADD AdErrorEnum_AdError = 82
	// The string has too many characters.
	AdErrorEnum_TOO_LONG AdErrorEnum_AdError = 83
	// The string has too few characters.
	AdErrorEnum_TOO_SHORT AdErrorEnum_AdError = 84
	// Ad union dimensions cannot change for saved ads.
	AdErrorEnum_UNION_DIMENSIONS_CANNOT_CHANGE AdErrorEnum_AdError = 85
	// Address component is not {country, lat, lng}.
	AdErrorEnum_UNKNOWN_ADDRESS_COMPONENT AdErrorEnum_AdError = 86
	// Unknown unique field name
	AdErrorEnum_UNKNOWN_FIELD_NAME AdErrorEnum_AdError = 87
	// Unknown unique name (template element type specifier)
	AdErrorEnum_UNKNOWN_UNIQUE_NAME AdErrorEnum_AdError = 88
	// Unsupported ad dimension
	AdErrorEnum_UNSUPPORTED_DIMENSIONS AdErrorEnum_AdError = 89
	// URL starts with an invalid scheme.
	AdErrorEnum_URL_INVALID_SCHEME AdErrorEnum_AdError = 90
	// URL ends with an invalid top-level domain name.
	AdErrorEnum_URL_INVALID_TOP_LEVEL_DOMAIN AdErrorEnum_AdError = 91
	// URL contains illegal characters.
	AdErrorEnum_URL_MALFORMED AdErrorEnum_AdError = 92
	// URL must contain a host name.
	AdErrorEnum_URL_NO_HOST AdErrorEnum_AdError = 93
	// URL not equivalent during upgrade.
	AdErrorEnum_URL_NOT_EQUIVALENT AdErrorEnum_AdError = 94
	// URL host name too long to be stored as visible URL (applies to Ad
	// Exchange ads)
	AdErrorEnum_URL_HOST_NAME_TOO_LONG AdErrorEnum_AdError = 95
	// URL must start with a scheme.
	AdErrorEnum_URL_NO_SCHEME AdErrorEnum_AdError = 96
	// URL should end in a valid domain extension, such as .com or .net.
	AdErrorEnum_URL_NO_TOP_LEVEL_DOMAIN AdErrorEnum_AdError = 97
	// URL must not end with a path.
	AdErrorEnum_URL_PATH_NOT_ALLOWED AdErrorEnum_AdError = 98
	// URL must not specify a port.
	AdErrorEnum_URL_PORT_NOT_ALLOWED AdErrorEnum_AdError = 99
	// URL must not contain a query.
	AdErrorEnum_URL_QUERY_NOT_ALLOWED AdErrorEnum_AdError = 100
	// A url scheme is not allowed in front of tag in tracking url template
	// (e.g. http://{lpurl})
	AdErrorEnum_URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG AdErrorEnum_AdError = 102
	// The user does not have permissions to create a template ad for the given
	// template.
	AdErrorEnum_USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE AdErrorEnum_AdError = 103
	// Expandable setting is inconsistent/wrong. For example, an AdX ad is
	// invalid if it has a expandable vendor format but no expanding directions
	// specified, or expanding directions is specified, but the vendor format is
	// not expandable.
	AdErrorEnum_INCONSISTENT_EXPANDABLE_SETTINGS AdErrorEnum_AdError = 104
	// Format is invalid
	AdErrorEnum_INVALID_FORMAT AdErrorEnum_AdError = 105
	// The text of this field did not match a pattern of allowed values.
	AdErrorEnum_INVALID_FIELD_TEXT AdErrorEnum_AdError = 106
	// Template element is mising
	AdErrorEnum_ELEMENT_NOT_PRESENT AdErrorEnum_AdError = 107
	// Error occurred during image processing
	AdErrorEnum_IMAGE_ERROR AdErrorEnum_AdError = 108
	// The value is not within the valid range
	AdErrorEnum_VALUE_NOT_IN_RANGE AdErrorEnum_AdError = 109
	// Template element field is not present
	AdErrorEnum_FIELD_NOT_PRESENT AdErrorEnum_AdError = 110
	// Address is incomplete
	AdErrorEnum_ADDRESS_NOT_COMPLETE AdErrorEnum_AdError = 111
	// Invalid address
	AdErrorEnum_ADDRESS_INVALID AdErrorEnum_AdError = 112
	// Error retrieving specified video
	AdErrorEnum_VIDEO_RETRIEVAL_ERROR AdErrorEnum_AdError = 113
	// Error processing audio
	AdErrorEnum_AUDIO_ERROR AdErrorEnum_AdError = 114
	// Display URL is incorrect for YouTube PYV ads
	AdErrorEnum_INVALID_YOUTUBE_DISPLAY_URL AdErrorEnum_AdError = 115
	// Too many product Images in GmailAd
	AdErrorEnum_TOO_MANY_PRODUCT_IMAGES AdErrorEnum_AdError = 116
	// Too many product Videos in GmailAd
	AdErrorEnum_TOO_MANY_PRODUCT_VIDEOS AdErrorEnum_AdError = 117
	// The device preference is not compatible with the ad type
	AdErrorEnum_INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE AdErrorEnum_AdError = 118
	// Call tracking is not supported for specified country.
	AdErrorEnum_CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY AdErrorEnum_AdError = 119
	// Carrier specific short number is not allowed.
	AdErrorEnum_CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED AdErrorEnum_AdError = 120
	// Specified phone number type is disallowed.
	AdErrorEnum_DISALLOWED_NUMBER_TYPE AdErrorEnum_AdError = 121
	// Phone number not supported for country.
	AdErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY AdErrorEnum_AdError = 122
	// Phone number not supported with call tracking enabled for country.
	AdErrorEnum_PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY AdErrorEnum_AdError = 123
	// Premium rate phone number is not allowed.
	AdErrorEnum_PREMIUM_RATE_NUMBER_NOT_ALLOWED AdErrorEnum_AdError = 124
	// Vanity phone number is not allowed.
	AdErrorEnum_VANITY_PHONE_NUMBER_NOT_ALLOWED AdErrorEnum_AdError = 125
	// Invalid call conversion type id.
	AdErrorEnum_INVALID_CALL_CONVERSION_TYPE_ID AdErrorEnum_AdError = 126
	// Cannot disable call conversion and set conversion type id.
	AdErrorEnum_CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID AdErrorEnum_AdError = 127
	// Cannot set path2 without path1.
	AdErrorEnum_CANNOT_SET_PATH2_WITHOUT_PATH1 AdErrorEnum_AdError = 128
	// Missing domain name in campaign setting when adding expanded dynamic
	// search ad.
	AdErrorEnum_MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME AdErrorEnum_AdError = 129
	// The associated ad is not compatible with restriction type.
	AdErrorEnum_INCOMPATIBLE_WITH_RESTRICTION_TYPE AdErrorEnum_AdError = 130
	// Consent for call recording is required for creating/updating call only
	// ads. Please see https://support.google.com/google-ads/answer/7412639.
	AdErrorEnum_CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED AdErrorEnum_AdError = 131
	// Either an image or a media bundle is required in a display upload ad.
	AdErrorEnum_MISSING_IMAGE_OR_MEDIA_BUNDLE AdErrorEnum_AdError = 132
	// The display upload product type is not supported in this campaign.
	AdErrorEnum_PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN AdErrorEnum_AdError = 133
	// The default value of an ad placeholder can not be the empty string.
	AdErrorEnum_PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE AdErrorEnum_AdError = 134
	// Ad placeholders with countdown functions must not have a default value.
	AdErrorEnum_PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE AdErrorEnum_AdError = 135
	// A previous ad placeholder that had a default value was found which means
	// that all (non-countdown) placeholders must have a default value. This
	// ad placeholder does not have a default value.
	AdErrorEnum_PLACEHOLDER_DEFAULT_VALUE_MISSING AdErrorEnum_AdError = 136
	// A previous ad placeholder that did not have a default value was found
	// which means that no placeholders may have a default value. This
	// ad placeholder does have a default value.
	AdErrorEnum_UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE AdErrorEnum_AdError = 137
	// Two ad customizers may not be directly adjacent in an ad text. They must
	// be separated by at least one character.
	AdErrorEnum_AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT AdErrorEnum_AdError = 138
	// The ad is not associated with any enabled AdGroupAd, and cannot be
	// updated.
	AdErrorEnum_UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION AdErrorEnum_AdError = 139
)

var AdErrorEnum_AdError_name = map[int32]string{
	0:   "UNSPECIFIED",
	1:   "UNKNOWN",
	2:   "AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE",
	3:   "APPROXIMATELY_TOO_LONG",
	4:   "APPROXIMATELY_TOO_SHORT",
	5:   "BAD_SNIPPET",
	6:   "CANNOT_MODIFY_AD",
	7:   "CANNOT_SET_BUSINESS_NAME_IF_URL_SET",
	8:   "CANNOT_SET_FIELD",
	9:   "CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET",
	10:  "CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING",
	11:  "CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE",
	12:  "CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING",
	13:  "CANNOT_SET_URL",
	14:  "CANNOT_SET_WITHOUT_FINAL_URLS",
	15:  "CANNOT_SET_WITH_FINAL_URLS",
	17:  "CANNOT_SET_WITH_URL_DATA",
	18:  "CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR",
	19:  "CUSTOMER_NOT_APPROVED_MOBILEADS",
	20:  "CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS",
	21:  "CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS",
	22:  "CUSTOMER_NOT_ELIGIBLE",
	23:  "CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL",
	24:  "DIMENSION_ALREADY_IN_UNION",
	25:  "DIMENSION_MUST_BE_SET",
	26:  "DIMENSION_NOT_IN_UNION",
	27:  "DISPLAY_URL_CANNOT_BE_SPECIFIED",
	28:  "DOMESTIC_PHONE_NUMBER_FORMAT",
	29:  "EMERGENCY_PHONE_NUMBER",
	30:  "EMPTY_FIELD",
	31:  "FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID",
	32:  "FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH",
	33:  "ILLEGAL_AD_CUSTOMIZER_TAG_USE",
	34:  "ILLEGAL_TAG_USE",
	35:  "INCONSISTENT_DIMENSIONS",
	36:  "INCONSISTENT_STATUS_IN_TEMPLATE_UNION",
	37:  "INCORRECT_LENGTH",
	38:  "INELIGIBLE_FOR_UPGRADE",
	39:  "INVALID_AD_ADDRESS_CAMPAIGN_TARGET",
	40:  "INVALID_AD_TYPE",
	41:  "INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE",
	42:  "INVALID_ATTRIBUTES_FOR_MOBILE_TEXT",
	43:  "INVALID_CALL_TO_ACTION_TEXT",
	44:  "INVALID_CHARACTER_FOR_URL",
	45:  "INVALID_COUNTRY_CODE",
	47:  "INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG",
	48:  "INVALID_INPUT",
	49:  "INVALID_MARKUP_LANGUAGE",
	50:  "INVALID_MOBILE_CARRIER",
	51:  "INVALID_MOBILE_CARRIER_TARGET",
	52:  "INVALID_NUMBER_OF_ELEMENTS",
	53:  "INVALID_PHONE_NUMBER_FORMAT",
	54:  "INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID",
	55:  "INVALID_TEMPLATE_DATA",
	56:  "INVALID_TEMPLATE_ELEMENT_FIELD_TYPE",
	57:  "INVALID_TEMPLATE_ID",
	58:  "LINE_TOO_WIDE",
	59:  "MISSING_AD_CUSTOMIZER_MAPPING",
	60:  "MISSING_ADDRESS_COMPONENT",
	61:  "MISSING_ADVERTISEMENT_NAME",
	62:  "MISSING_BUSINESS_NAME",
	63:  "MISSING_DESCRIPTION1",
	64:  "MISSING_DESCRIPTION2",
	65:  "MISSING_DESTINATION_URL_TAG",
	66:  "MISSING_LANDING_PAGE_URL_TAG",
	67:  "MISSING_DIMENSION",
	68:  "MISSING_DISPLAY_URL",
	69:  "MISSING_HEADLINE",
	70:  "MISSING_HEIGHT",
	71:  "MISSING_IMAGE",
	72:  "MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS",
	73:  "MISSING_MARKUP_LANGUAGES",
	74:  "MISSING_MOBILE_CARRIER",
	75:  "MISSING_PHONE",
	76:  "MISSING_REQUIRED_TEMPLATE_FIELDS",
	77:  "MISSING_TEMPLATE_FIELD_VALUE",
	78:  "MISSING_TEXT",
	79:  "MISSING_VISIBLE_URL",
	80:  "MISSING_WIDTH",
	81:  "MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED",
	82:  "MUST_USE_TEMP_AD_UNION_ID_ON_ADD",
	83:  "TOO_LONG",
	84:  "TOO_SHORT",
	85:  "UNION_DIMENSIONS_CANNOT_CHANGE",
	86:  "UNKNOWN_ADDRESS_COMPONENT",
	87:  "UNKNOWN_FIELD_NAME",
	88:  "UNKNOWN_UNIQUE_NAME",
	89:  "UNSUPPORTED_DIMENSIONS",
	90:  "URL_INVALID_SCHEME",
	91:  "URL_INVALID_TOP_LEVEL_DOMAIN",
	92:  "URL_MALFORMED",
	93:  "URL_NO_HOST",
	94:  "URL_NOT_EQUIVALENT",
	95:  "URL_HOST_NAME_TOO_LONG",
	96:  "URL_NO_SCHEME",
	97:  "URL_NO_TOP_LEVEL_DOMAIN",
	98:  "URL_PATH_NOT_ALLOWED",
	99:  "URL_PORT_NOT_ALLOWED",
	100: "URL_QUERY_NOT_ALLOWED",
	102: "URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG",
	103: "USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE",
	104: "INCONSISTENT_EXPANDABLE_SETTINGS",
	105: "INVALID_FORMAT",
	106: "INVALID_FIELD_TEXT",
	107: "ELEMENT_NOT_PRESENT",
	108: "IMAGE_ERROR",
	109: "VALUE_NOT_IN_RANGE",
	110: "FIELD_NOT_PRESENT",
	111: "ADDRESS_NOT_COMPLETE",
	112: "ADDRESS_INVALID",
	113: "VIDEO_RETRIEVAL_ERROR",
	114: "AUDIO_ERROR",
	115: "INVALID_YOUTUBE_DISPLAY_URL",
	116: "TOO_MANY_PRODUCT_IMAGES",
	117: "TOO_MANY_PRODUCT_VIDEOS",
	118: "INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE",
	119: "CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY",
	120: "CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED",
	121: "DISALLOWED_NUMBER_TYPE",
	122: "PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY",
	123: "PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY",
	124: "PREMIUM_RATE_NUMBER_NOT_ALLOWED",
	125: "VANITY_PHONE_NUMBER_NOT_ALLOWED",
	126: "INVALID_CALL_CONVERSION_TYPE_ID",
	127: "CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID",
	128: "CANNOT_SET_PATH2_WITHOUT_PATH1",
	129: "MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME",
	130: "INCOMPATIBLE_WITH_RESTRICTION_TYPE",
	131: "CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED",
	132: "MISSING_IMAGE_OR_MEDIA_BUNDLE",
	133: "PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN",
	134: "PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE",
	135: "PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE",
	136: "PLACEHOLDER_DEFAULT_VALUE_MISSING",
	137: "UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE",
	138: "AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT",
	139: "UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION",
}

var AdErrorEnum_AdError_value = map[string]int32{
	"UNSPECIFIED": 0,
	"UNKNOWN":     1,
	"AD_CUSTOMIZERS_NOT_SUPPORTED_FOR_AD_TYPE":                  2,
	"APPROXIMATELY_TOO_LONG":                                    3,
	"APPROXIMATELY_TOO_SHORT":                                   4,
	"BAD_SNIPPET":                                               5,
	"CANNOT_MODIFY_AD":                                          6,
	"CANNOT_SET_BUSINESS_NAME_IF_URL_SET":                       7,
	"CANNOT_SET_FIELD":                                          8,
	"CANNOT_SET_FIELD_WITH_ORIGIN_AD_ID_SET":                    9,
	"CANNOT_SET_FIELD_WITH_AD_ID_SET_FOR_SHARING":               10,
	"CANNOT_SET_ALLOW_FLEXIBLE_COLOR_FALSE":                     11,
	"CANNOT_SET_COLOR_CONTROL_WHEN_NATIVE_FORMAT_SETTING":       12,
	"CANNOT_SET_URL":                                            13,
	"CANNOT_SET_WITHOUT_FINAL_URLS":                             14,
	"CANNOT_SET_WITH_FINAL_URLS":                                15,
	"CANNOT_SET_WITH_URL_DATA":                                  17,
	"CANNOT_USE_AD_SUBCLASS_FOR_OPERATOR":                       18,
	"CUSTOMER_NOT_APPROVED_MOBILEADS":                           19,
	"CUSTOMER_NOT_APPROVED_THIRDPARTY_ADS":                      20,
	"CUSTOMER_NOT_APPROVED_THIRDPARTY_REDIRECT_ADS":             21,
	"CUSTOMER_NOT_ELIGIBLE":                                     22,
	"CUSTOMER_NOT_ELIGIBLE_FOR_UPDATING_BEACON_URL":             23,
	"DIMENSION_ALREADY_IN_UNION":                                24,
	"DIMENSION_MUST_BE_SET":                                     25,
	"DIMENSION_NOT_IN_UNION":                                    26,
	"DISPLAY_URL_CANNOT_BE_SPECIFIED":                           27,
	"DOMESTIC_PHONE_NUMBER_FORMAT":                              28,
	"EMERGENCY_PHONE_NUMBER":                                    29,
	"EMPTY_FIELD":                                               30,
	"FEED_ATTRIBUTE_MUST_HAVE_MAPPING_FOR_TYPE_ID":              31,
	"FEED_ATTRIBUTE_MAPPING_TYPE_MISMATCH":                      32,
	"ILLEGAL_AD_CUSTOMIZER_TAG_USE":                             33,
	"ILLEGAL_TAG_USE":                                           34,
	"INCONSISTENT_DIMENSIONS":                                   35,
	"INCONSISTENT_STATUS_IN_TEMPLATE_UNION":                     36,
	"INCORRECT_LENGTH":                                          37,
	"INELIGIBLE_FOR_UPGRADE":                                    38,
	"INVALID_AD_ADDRESS_CAMPAIGN_TARGET":                        39,
	"INVALID_AD_TYPE":                                           40,
	"INVALID_ATTRIBUTES_FOR_MOBILE_IMAGE":                       41,
	"INVALID_ATTRIBUTES_FOR_MOBILE_TEXT":                        42,
	"INVALID_CALL_TO_ACTION_TEXT":                               43,
	"INVALID_CHARACTER_FOR_URL":                                 44,
	"INVALID_COUNTRY_CODE":                                      45,
	"INVALID_EXPANDED_DYNAMIC_SEARCH_AD_TAG":                    47,
	"INVALID_INPUT":                                             48,
	"INVALID_MARKUP_LANGUAGE":                                   49,
	"INVALID_MOBILE_CARRIER":                                    50,
	"INVALID_MOBILE_CARRIER_TARGET":                             51,
	"INVALID_NUMBER_OF_ELEMENTS":                                52,
	"INVALID_PHONE_NUMBER_FORMAT":                               53,
	"INVALID_RICH_MEDIA_CERTIFIED_VENDOR_FORMAT_ID":             54,
	"INVALID_TEMPLATE_DATA":                                     55,
	"INVALID_TEMPLATE_ELEMENT_FIELD_TYPE":                       56,
	"INVALID_TEMPLATE_ID":                                       57,
	"LINE_TOO_WIDE":                                             58,
	"MISSING_AD_CUSTOMIZER_MAPPING":                             59,
	"MISSING_ADDRESS_COMPONENT":                                 60,
	"MISSING_ADVERTISEMENT_NAME":                                61,
	"MISSING_BUSINESS_NAME":                                     62,
	"MISSING_DESCRIPTION1":                                      63,
	"MISSING_DESCRIPTION2":                                      64,
	"MISSING_DESTINATION_URL_TAG":                               65,
	"MISSING_LANDING_PAGE_URL_TAG":                              66,
	"MISSING_DIMENSION":                                         67,
	"MISSING_DISPLAY_URL":                                       68,
	"MISSING_HEADLINE":                                          69,
	"MISSING_HEIGHT":                                            70,
	"MISSING_IMAGE":                                             71,
	"MISSING_MARKETING_IMAGE_OR_PRODUCT_VIDEOS":                 72,
	"MISSING_MARKUP_LANGUAGES":                                  73,
	"MISSING_MOBILE_CARRIER":                                    74,
	"MISSING_PHONE":                                             75,
	"MISSING_REQUIRED_TEMPLATE_FIELDS":                          76,
	"MISSING_TEMPLATE_FIELD_VALUE":                              77,
	"MISSING_TEXT":                                              78,
	"MISSING_VISIBLE_URL":                                       79,
	"MISSING_WIDTH":                                             80,
	"MULTIPLE_DISTINCT_FEEDS_UNSUPPORTED":                       81,
	"MUST_USE_TEMP_AD_UNION_ID_ON_ADD":                          82,
	"TOO_LONG":                                                  83,
	"TOO_SHORT":                                                 84,
	"UNION_DIMENSIONS_CANNOT_CHANGE":                            85,
	"UNKNOWN_ADDRESS_COMPONENT":                                 86,
	"UNKNOWN_FIELD_NAME":                                        87,
	"UNKNOWN_UNIQUE_NAME":                                       88,
	"UNSUPPORTED_DIMENSIONS":                                    89,
	"URL_INVALID_SCHEME":                                        90,
	"URL_INVALID_TOP_LEVEL_DOMAIN":                              91,
	"URL_MALFORMED":                                             92,
	"URL_NO_HOST":                                               93,
	"URL_NOT_EQUIVALENT":                                        94,
	"URL_HOST_NAME_TOO_LONG":                                    95,
	"URL_NO_SCHEME":                                             96,
	"URL_NO_TOP_LEVEL_DOMAIN":                                   97,
	"URL_PATH_NOT_ALLOWED":                                      98,
	"URL_PORT_NOT_ALLOWED":                                      99,
	"URL_QUERY_NOT_ALLOWED":                                     100,
	"URL_SCHEME_BEFORE_EXPANDED_DYNAMIC_SEARCH_AD_TAG":          102,
	"USER_DOES_NOT_HAVE_ACCESS_TO_TEMPLATE":                     103,
	"INCONSISTENT_EXPANDABLE_SETTINGS":                          104,
	"INVALID_FORMAT":                                            105,
	"INVALID_FIELD_TEXT":                                        106,
	"ELEMENT_NOT_PRESENT":                                       107,
	"IMAGE_ERROR":                                               108,
	"VALUE_NOT_IN_RANGE":                                        109,
	"FIELD_NOT_PRESENT":                                         110,
	"ADDRESS_NOT_COMPLETE":                                      111,
	"ADDRESS_INVALID":                                           112,
	"VIDEO_RETRIEVAL_ERROR":                                     113,
	"AUDIO_ERROR":                                               114,
	"INVALID_YOUTUBE_DISPLAY_URL":                               115,
	"TOO_MANY_PRODUCT_IMAGES":                                   116,
	"TOO_MANY_PRODUCT_VIDEOS":                                   117,
	"INCOMPATIBLE_AD_TYPE_AND_DEVICE_PREFERENCE":                118,
	"CALLTRACKING_NOT_SUPPORTED_FOR_COUNTRY":                    119,
	"CARRIER_SPECIFIC_SHORT_NUMBER_NOT_ALLOWED":                 120,
	"DISALLOWED_NUMBER_TYPE":                                    121,
	"PHONE_NUMBER_NOT_SUPPORTED_FOR_COUNTRY":                    122,
	"PHONE_NUMBER_NOT_SUPPORTED_WITH_CALLTRACKING_FOR_COUNTRY":  123,
	"PREMIUM_RATE_NUMBER_NOT_ALLOWED":                           124,
	"VANITY_PHONE_NUMBER_NOT_ALLOWED":                           125,
	"INVALID_CALL_CONVERSION_TYPE_ID":                           126,
	"CANNOT_DISABLE_CALL_CONVERSION_AND_SET_CONVERSION_TYPE_ID": 127,
	"CANNOT_SET_PATH2_WITHOUT_PATH1":                            128,
	"MISSING_DYNAMIC_SEARCH_ADS_SETTING_DOMAIN_NAME":            129,
	"INCOMPATIBLE_WITH_RESTRICTION_TYPE":                        130,
	"CUSTOMER_CONSENT_FOR_CALL_RECORDING_REQUIRED":              131,
	"MISSING_IMAGE_OR_MEDIA_BUNDLE":                             132,
	"PRODUCT_TYPE_NOT_SUPPORTED_IN_THIS_CAMPAIGN":               133,
	"PLACEHOLDER_CANNOT_HAVE_EMPTY_DEFAULT_VALUE":               134,
	"PLACEHOLDER_COUNTDOWN_FUNCTION_CANNOT_HAVE_DEFAULT_VALUE":  135,
	"PLACEHOLDER_DEFAULT_VALUE_MISSING":                         136,
	"UNEXPECTED_PLACEHOLDER_DEFAULT_VALUE":                      137,
	"AD_CUSTOMIZERS_MAY_NOT_BE_ADJACENT":                        138,
	"UPDATING_AD_WITH_NO_ENABLED_ASSOCIATION":                   139,
}

func (x AdErrorEnum_AdError) String() string {
	return proto.EnumName(AdErrorEnum_AdError_name, int32(x))
}

func (AdErrorEnum_AdError) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_55578c5f7a565f9a, []int{0, 0}
}

// Container for enum describing possible ad errors.
type AdErrorEnum struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AdErrorEnum proto.InternalMessageInfo

func init() {
	proto.RegisterEnum("google.ads.googleads.v3.errors.AdErrorEnum_AdError", AdErrorEnum_AdError_name, AdErrorEnum_AdError_value)
	proto.RegisterType((*AdErrorEnum)(nil), "google.ads.googleads.v3.errors.AdErrorEnum")
}

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

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