/*
 * Copyright (c) 2011-2014 The Linux Foundation. All rights reserved.
 *
 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
 *
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

/*
 * This file was originally distributed by Qualcomm Atheros, Inc.
 * under proprietary terms before Copyright ownership was assigned
 * to the Linux Foundation.
 */

/*
 * DO NOT EDIT - This file is generated automaticlly
 */

/*
 * IMPORTANT:  This file is for system that supports STA mode ONLY.
 */
#include "cfgPriv.h"

unsigned char *gCfgParamName[] = {
	(unsigned char *)"STA_ID",
	(unsigned char *)"CF_POLLABLE",
	(unsigned char *)"CFP_PERIOD",
	(unsigned char *)"CFP_MAX_DURATION",
	(unsigned char *)"SSID",
	(unsigned char *)"BEACON_INTERVAL",
	(unsigned char *)"DTIM_PERIOD",
	(unsigned char *)"WEP_KEY_LENGTH",
	(unsigned char *)"WEP_DEFAULT_KEY_1",
	(unsigned char *)"WEP_DEFAULT_KEY_2",
	(unsigned char *)"WEP_DEFAULT_KEY_3",
	(unsigned char *)"WEP_DEFAULT_KEY_4",
	(unsigned char *)"WEP_DEFAULT_KEYID",
	(unsigned char *)"EXCLUDE_UNENCRYPTED",
	(unsigned char *)"RTS_THRESHOLD",
	(unsigned char *)"SHORT_RETRY_LIMIT",
	(unsigned char *)"LONG_RETRY_LIMIT",
	(unsigned char *)"FRAGMENTATION_THRESHOLD",
	(unsigned char *)"ACTIVE_MINIMUM_CHANNEL_TIME",
	(unsigned char *)"ACTIVE_MAXIMUM_CHANNEL_TIME",
	(unsigned char *)"PASSIVE_MINIMUM_CHANNEL_TIME",
	(unsigned char *)"PASSIVE_MAXIMUM_CHANNEL_TIME",
	(unsigned char *)"JOIN_FAILURE_TIMEOUT",
	(unsigned char *)"AUTHENTICATE_FAILURE_TIMEOUT",
	(unsigned char *)"AUTHENTICATE_RSP_TIMEOUT",
	(unsigned char *)"ASSOCIATION_FAILURE_TIMEOUT",
	(unsigned char *)"REASSOCIATION_FAILURE_TIMEOUT",
	(unsigned char *)"RA_PERIODICITY_TIMEOUT_IN_PS",
	(unsigned char *)"PS_ENABLE_BCN_FILTER",
	(unsigned char *)"PS_ENABLE_HEART_BEAT",
	(unsigned char *)"PS_ENABLE_RSSI_MONITOR",
	(unsigned char *)"PS_DATA_INACTIVITY_TIMEOUT",
	(unsigned char *)"RF_SETTLING_TIME_CLK",
	(unsigned char *)"SUPPORTED_RATES_11B",
	(unsigned char *)"SUPPORTED_RATES_11A",
	(unsigned char *)"PHY_MODE",
	(unsigned char *)"DOT11_MODE",
	(unsigned char *)"OPERATIONAL_RATE_SET",
	(unsigned char *)"EXTENDED_OPERATIONAL_RATE_SET",
	(unsigned char *)"PROPRIETARY_OPERATIONAL_RATE_SET",
	(unsigned char *)"BSSID",
	(unsigned char *)"LISTEN_INTERVAL",
	(unsigned char *)"VALID_CHANNEL_LIST",
	(unsigned char *)"CURRENT_CHANNEL",
	(unsigned char *)"DEFAULT_RATE_INDEX_5GHZ",
	(unsigned char *)"DEFAULT_RATE_INDEX_24GHZ",
	(unsigned char *)"RATE_ADAPTATION_TYPE",
	(unsigned char *)"FIXED_RATE",
	(unsigned char *)"FIXED_RATE_MULTICAST_24GHZ",
	(unsigned char *)"FIXED_RATE_MULTICAST_5GHZ",
	(unsigned char *)"RETRYRATE_POLICY",
	(unsigned char *)"RETRYRATE_SECONDARY",
	(unsigned char *)"RETRYRATE_TERTIARY",
	(unsigned char *)"APSD_ENABLED",
	(unsigned char *)"SHARED_KEY_AUTH_ENABLE",
	(unsigned char *)"OPEN_SYSTEM_AUTH_ENABLE",
	(unsigned char *)"AUTHENTICATION_TYPE",
	(unsigned char *)"CF_POLL_REQUEST",
	(unsigned char *)"PRIVACY_ENABLED",
	(unsigned char *)"SHORT_PREAMBLE",
	(unsigned char *)"SHORT_SLOT_TIME",
	(unsigned char *)"ACCEPT_SHORT_SLOT_ASSOC_ONLY",
	(unsigned char *)"QOS_ENABLED",
	(unsigned char *)"HCF_ENABLED",
	(unsigned char *)"RSN_ENABLED",
	(unsigned char *)"BACKGROUND_SCAN_PERIOD",
	(unsigned char *)"MAX_NUM_PRE_AUTH",
	(unsigned char *)"PREAUTH_CLNUP_TIMEOUT",
	(unsigned char *)"RELEASE_AID_TIMEOUT",
	(unsigned char *)"HEART_BEAT_THRESHOLD",
	(unsigned char *)"PROBE_AFTER_HB_FAIL_TIMEOUT",
	(unsigned char *)"MANUFACTURER_OUI",
	(unsigned char *)"MANUFACTURER_NAME",
	(unsigned char *)"MODEL_NUMBER",
	(unsigned char *)"MODEL_NAME",
	(unsigned char *)"MANUFACTURER_PRODUCT_NAME",
	(unsigned char *)"MANUFACTURER_PRODUCT_VERSION",
	(unsigned char *)"11D_ENABLED",
	(unsigned char *)"MAX_TX_POWER_2_4",
	(unsigned char *)"MAX_TX_POWER_5",
	(unsigned char *)"NETWORK_DENSITY",
	(unsigned char *)"ADAPTIVE_THRESHOLD_ALGORITHM",
	(unsigned char *)"CURRENT_TX_ANTENNA",
	(unsigned char *)"CURRENT_RX_ANTENNA",
	(unsigned char *)"CURRENT_TX_POWER_LEVEL",
	(unsigned char *)"POWER_STATE_PER_CHAIN",
	(unsigned char *)"NEW_BSS_FOUND_IND",
	(unsigned char *)"PROPRIETARY_ANI_FEATURES_ENABLED",
	(unsigned char *)"PROPRIETARY_RATES_ENABLED",
	(unsigned char *)"AP_NODE_NAME",
	(unsigned char *)"COUNTRY_CODE",
	(unsigned char *)"11H_ENABLED",
	(unsigned char *)"WT_CNF_TIMEOUT",
	(unsigned char *)"KEEPALIVE_TIMEOUT",
	(unsigned char *)"PROXIMITY",
	(unsigned char *)"LOG_LEVEL",
	(unsigned char *)"OLBC_DETECT_TIMEOUT",
	(unsigned char *)"PROTECTION_ENABLED",
	(unsigned char *)"11G_PROTECTION_ALWAYS",
	(unsigned char *)"FORCE_POLICY_PROTECTION",
	(unsigned char *)"11G_SHORT_PREAMBLE_ENABLED",
	(unsigned char *)"11G_SHORT_SLOT_TIME_ENABLED",
	(unsigned char *)"CAL_PERIOD",
	(unsigned char *)"STATS_PERIOD",
	(unsigned char *)"CAL_CONTROL",
	(unsigned char *)"11G_ONLY_POLICY",
	(unsigned char *)"PACKET_CLASSIFICATION",
	(unsigned char *)"WME_ENABLED",
	(unsigned char *)"ADDTS_RSP_TIMEOUT",
	(unsigned char *)"MAX_SP_LENGTH",
	(unsigned char *)"KEEP_ALIVE_STA_LIMIT_THRESHOLD",
	(unsigned char *)"SEND_SINGLE_SSID_ALWAYS",
	(unsigned char *)"WSM_ENABLED",
	(unsigned char *)"PROP_CAPABILITY",
	(unsigned char *)"EDCA_PROFILE",
	(unsigned char *)"EDCA_ANI_ACBK_LOCAL",
	(unsigned char *)"EDCA_ANI_ACBE_LOCAL",
	(unsigned char *)"EDCA_ANI_ACVI_LOCAL",
	(unsigned char *)"EDCA_ANI_ACVO_LOCAL",
	(unsigned char *)"EDCA_ANI_ACBK",
	(unsigned char *)"EDCA_ANI_ACBE",
	(unsigned char *)"EDCA_ANI_ACVI",
	(unsigned char *)"EDCA_ANI_ACVO",
	(unsigned char *)"EDCA_WME_ACBK_LOCAL",
	(unsigned char *)"EDCA_WME_ACBE_LOCAL",
	(unsigned char *)"EDCA_WME_ACVI_LOCAL",
	(unsigned char *)"EDCA_WME_ACVO_LOCAL",
	(unsigned char *)"EDCA_WME_ACBK",
	(unsigned char *)"EDCA_WME_ACBE",
	(unsigned char *)"EDCA_WME_ACVI",
	(unsigned char *)"EDCA_WME_ACVO",
	(unsigned char *)"EDCA_TIT_DEMO_ACBK_LOCAL",
	(unsigned char *)"EDCA_TIT_DEMO_ACBE_LOCAL",
	(unsigned char *)"EDCA_TIT_DEMO_ACVI_LOCAL",
	(unsigned char *)"EDCA_TIT_DEMO_ACVO_LOCAL",
	(unsigned char *)"EDCA_TIT_DEMO_ACBK",
	(unsigned char *)"EDCA_TIT_DEMO_ACBE",
	(unsigned char *)"EDCA_TIT_DEMO_ACVI",
	(unsigned char *)"EDCA_TIT_DEMO_ACVO",
	(unsigned char *)"RDET_FLAG",
	(unsigned char *)"RADAR_CHANNEL_LIST",
	(unsigned char *)"LOCAL_POWER_CONSTRAINT",
	(unsigned char *)"ADMIT_POLICY",
	(unsigned char *)"ADMIT_BWFACTOR",
	(unsigned char *)"MAX_CONSECUTIVE_BACKGROUND_SCAN_FAILURE",
	(unsigned char *)"CHANNEL_BONDING_MODE",
	(unsigned char *)"CB_SECONDARY_CHANNEL_STATE",
	(unsigned char *)"DYNAMIC_THRESHOLD_ZERO",
	(unsigned char *)"DYNAMIC_THRESHOLD_ONE",
	(unsigned char *)"DYNAMIC_THRESHOLD_TWO",
	(unsigned char *)"TRIG_STA_BK_SCAN",
	(unsigned char *)"DYNAMIC_PROFILE_SWITCHING",
	(unsigned char *)"SCAN_CONTROL_LIST",
	(unsigned char *)"MIMO_ENABLED",
	(unsigned char *)"BLOCK_ACK_ENABLED",
	(unsigned char *)"BA_ACTIVITY_CHECK_TIMEOUT",
	(unsigned char *)"HT_RX_STBC",
	(unsigned char *)"HT_CAP_INFO",
	(unsigned char *)"HT_AMPDU_PARAMS",
	(unsigned char *)"SUPPORTED_MCS_SET",
	(unsigned char *)"EXT_HT_CAP_INFO",
	(unsigned char *)"TX_BF_CAP",
	(unsigned char *)"AS_CAP",
	(unsigned char *)"HT_INFO_FIELD1",
	(unsigned char *)"HT_INFO_FIELD2",
	(unsigned char *)"HT_INFO_FIELD3",
	(unsigned char *)"BASIC_MCS_SET",
	(unsigned char *)"CURRENT_MCS_SET",
	(unsigned char *)"GREENFIELD_CAPABILITY",
	(unsigned char *)"VHT_MAX_MPDU_LENGTH",
	(unsigned char *)"VHT_SUPPORTED_CHAN_WIDTH_SET",
	(unsigned char *)"VHT_LDPC_CODING_CAP",
	(unsigned char *)"VHT_SHORT_GI_80MHZ",
	(unsigned char *)"VHT_SHORT_GI_160_AND_80_PLUS_80MHZ",
	(unsigned char *)"VHT_TXSTBC",
	(unsigned char *)"VHT_RXSTBC",
	(unsigned char *)"VHT_SU_BEAMFORMER_CAP",
	(unsigned char *)"VHT_SU_BEAMFORMEE_CAP",
	(unsigned char *)"VHT_CSN_BEAMFORMEE_ANT_SUPPORTED",
	(unsigned char *)"VHT_NUM_SOUNDING_DIMENSIONS",
	(unsigned char *)"VHT_MU_BEAMFORMER_CAP",
	(unsigned char *)"VHT_MU_BEAMFORMEE_CAP",
	(unsigned char *)"VHT_TXOP_PS",
	(unsigned char *)"VHT_HTC_VHTC_CAP",
	(unsigned char *)"VHT_AMPDU_LEN_EXPONENT",
	(unsigned char *)"VHT_LINK_ADAPTATION_CAP",
	(unsigned char *)"VHT_RX_ANT_PATTERN",
	(unsigned char *)"VHT_TX_ANT_PATTERN",
	(unsigned char *)"VHT_RX_MCS_MAP",
	(unsigned char *)"VHT_TX_MCS_MAP",
	(unsigned char *)"VHT_RX_HIGHEST_SUPPORTED_DATA_RATE",
	(unsigned char *)"VHT_TX_HIGHEST_SUPPORTED_DATA_RATE",
	(unsigned char *)"VHT_CHANNEL_WIDTH",
	(unsigned char *)"VHT_CHANNEL_CENTER_FREQ_SEGMENT1",
	(unsigned char *)"VHT_CHANNEL_CENTER_FREQ_SEGMENT2",
	(unsigned char *)"VHT_BASIC_MCS_SET",
	(unsigned char *)"VHT_MU_MIMO_CAP_STA_COUNT",
	(unsigned char *)"VHT_SS_UNDER_UTIL",
	(unsigned char *)"VHT_40MHZ_UTILIZATION",
	(unsigned char *)"VHT_80MHZ_UTILIZATION",
	(unsigned char *)"VHT_160MHZ_UTILIZATION",
	(unsigned char *)"MAX_AMSDU_LENGTH",
	(unsigned char *)"MPDU_DENSITY",
	(unsigned char *)"NUM_BUFF_ADVERT",
	(unsigned char *)"MAX_RX_AMPDU_FACTOR",
	(unsigned char *)"SHORT_GI_20MHZ",
	(unsigned char *)"SHORT_GI_40MHZ",
	(unsigned char *)"RIFS_ENABLED",
	(unsigned char *)"MAX_PS_POLL",
	(unsigned char *)"NUM_BEACON_PER_RSSI_AVERAGE",
	(unsigned char *)"RSSI_FILTER_PERIOD",
	(unsigned char *)"MIN_RSSI_THRESHOLD",
	(unsigned char *)"NTH_BEACON_FILTER",
	(unsigned char *)"BROADCAST_FRAME_FILTER_ENABLE",
	(unsigned char *)"SCAN_IN_POWERSAVE",
	(unsigned char *)"IGNORE_DTIM",
	(unsigned char *)"WOWLAN_UCAST_PATTERN_FILTER_ENABLE",
	(unsigned char *)"WOWLAN_CHANNEL_SWITCH_ENABLE",
	(unsigned char *)"WOWLAN_DEAUTH_ENABLE",
	(unsigned char *)"WOWLAN_DISASSOC_ENABLE",
	(unsigned char *)"WOWLAN_MAX_MISSED_BEACON",
	(unsigned char *)"WOWLAN_MAX_SLEEP_PERIOD",
	(unsigned char *)"BA_TIMEOUT",
	(unsigned char *)"BA_THRESHOLD_HIGH",
	(unsigned char *)"MAX_BA_BUFFERS",
	(unsigned char *)"MAX_BA_SESSIONS",
	(unsigned char *)"BA_AUTO_SETUP",
	(unsigned char *)"ADDBA_REQ_DECLINE",
	(unsigned char *)"DEL_ALL_RX_BA_SESSIONS_2_4_G_BTC",
	(unsigned char *)"BG_SCAN_CHANNEL_LIST",
	(unsigned char *)"MAX_MEDIUM_TIME",
	(unsigned char *)"MAX_MPDUS_IN_AMPDU",
	(unsigned char *)"IBSS_AUTO_BSSID",
	(unsigned char *)"PROBE_REQ_ADDNIE_FLAG",
	(unsigned char *)"PROBE_REQ_ADDNIE_DATA",
	(unsigned char *)"PROBE_RSP_ADDNIE_FLAG",
	(unsigned char *)"PROBE_RSP_ADDNIE_DATA1",
	(unsigned char *)"PROBE_RSP_ADDNIE_DATA2",
	(unsigned char *)"PROBE_RSP_ADDNIE_DATA3",
	(unsigned char *)"ASSOC_RSP_ADDNIE_FLAG",
	(unsigned char *)"ASSOC_RSP_ADDNIE_DATA",
	(unsigned char *)"PROBE_REQ_ADDNP2PIE_FLAG",
	(unsigned char *)"PROBE_REQ_ADDNP2PIE_DATA",
	(unsigned char *)"PROBE_RSP_BCN_ADDNIE_FLAG",
	(unsigned char *)"PROBE_RSP_BCN_ADDNIE_DATA",
	(unsigned char *)"WPS_ENABLE",
	(unsigned char *)"WPS_STATE",
	(unsigned char *)"WPS_PROBE_REQ_FLAG",
	(unsigned char *)"WPS_VERSION",
	(unsigned char *)"WPS_REQUEST_TYPE",
	(unsigned char *)"WPS_CFG_METHOD",
	(unsigned char *)"WPS_UUID",
	(unsigned char *)"WPS_PRIMARY_DEVICE_CATEGORY",
	(unsigned char *)"WPS_PIMARY_DEVICE_OUI",
	(unsigned char *)"WPS_DEVICE_SUB_CATEGORY",
	(unsigned char *)"WPS_ASSOCIATION_STATE",
	(unsigned char *)"WPS_CONFIGURATION_ERROR",
	(unsigned char *)"WPS_DEVICE_PASSWORD_ID",
	(unsigned char *)"WPS_ASSOC_METHOD",
	(unsigned char *)"LOW_GAIN_OVERRIDE",
	(unsigned char *)"ENABLE_PHY_AGC_LISTEN_MODE",
	(unsigned char *)"RPE_POLLING_THRESHOLD",
	(unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC0_REG",
	(unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC1_REG",
	(unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC2_REG",
	(unsigned char *)"RPE_AGING_THRESHOLD_FOR_AC3_REG",
	(unsigned char *)"NO_OF_ONCHIP_REORDER_SESSIONS",
	(unsigned char *)"SINGLE_TID_RC",
	(unsigned char *)"RRM_ENABLED",
	(unsigned char *)"RRM_OPERATING_CHAN_MAX",
	(unsigned char *)"RRM_NON_OPERATING_CHAN_MAX",
	(unsigned char *)"TX_PWR_CTRL_ENABLE",
	(unsigned char *)"MCAST_BCAST_FILTER_SETTING",
	(unsigned char *)"BTC_DHCP_BT_SLOTS_TO_BLOCK",
	(unsigned char *)"DYNAMIC_PS_POLL_VALUE",
	(unsigned char *)"PS_NULLDATA_AP_RESP_TIMEOUT",
	(unsigned char *)"TELE_BCN_WAKEUP_EN",
	(unsigned char *)"TELE_BCN_TRANS_LI",
	(unsigned char *)"TELE_BCN_TRANS_LI_IDLE_BCNS",
	(unsigned char *)"TELE_BCN_MAX_LI",
	(unsigned char *)"TELE_BCN_MAX_LI_IDLE_BCNS",
	(unsigned char *)"BTC_A2DP_DHCP_BT_SUB_INTERVALS",
	(unsigned char *)"INFRA_STA_KEEP_ALIVE_PERIOD",
	(unsigned char *)"ASSOC_STA_LIMIT",
	(unsigned char *)"SAP_CHANNEL_SELECT_START_CHANNEL",
	(unsigned char *)"SAP_CHANNEL_SELECT_END_CHANNEL",
	(unsigned char *)"SAP_CHANNEL_SELECT_OPERATING_BAND",
	(unsigned char *)"AP_DATA_AVAIL_POLL_PERIOD",
	(unsigned char *)"ENABLE_CLOSE_LOOP",
	(unsigned char *)"ENABLE_LTE_COEX",
	(unsigned char *)"AP_KEEP_ALIVE_TIMEOUT",
	(unsigned char *)"GO_KEEP_ALIVE_TIMEOUT",
	(unsigned char *)"ENABLE_MC_ADDR_LIST",
	(unsigned char *)"ENABLE_UC_FILTER",
	(unsigned char *)"ENABLE_LPWR_IMG_TRANSITION",
	(unsigned char *)"ENABLE_MCC_ADAPTIVE_SCHED",
	(unsigned char *)"DISABLE_LDPC_WITH_TXBF_AP",
	(unsigned char *)"AP_LINK_MONITOR_TIMEOUT",
	(unsigned char *)"TDLS_QOS_WMM_UAPSD_MASK",
	(unsigned char *)"TDLS_BUF_STA_ENABLED",
	(unsigned char *)"TDLS_PUAPSD_INACT_TIME",
	(unsigned char *)"TDLS_RX_FRAME_THRESHOLD",
	(unsigned char *)"ENABLE_ADAPT_RX_DRAIN",
	(unsigned char *)"FLEX_CONNECT_POWER_FACTOR",
	(unsigned char *)"ANTENNA_DIVESITY",
	(unsigned char *)"GO_LINK_MONITOR_TIMEOUT",
	(unsigned char *)"ATH_DISABLE",
	(unsigned char *)"BTC_ACTIVE_WLAN_LEN",
	(unsigned char *)"BTC_ACTIVE_BT_LEN",
	(unsigned char *)"BTC_SAP_ACTIVE_WLAN_LEN",
	(unsigned char *)"BTC_SAP_ACTIVE_BT_LEN",
	(unsigned char *)"RMC_ACTION_PERIOD_FREQUENCY",
	(unsigned char *)"ASD_PROBE_INTERVAL",
	(unsigned char *)"ASD_TRIGGER_THRESHOLD",
	(unsigned char *)"ASD_RTT_RSSI_HYST_THRESHOLD",
	(unsigned char *)"DEBUG_P2P_REMAIN_ON_CHANNEL",
	(unsigned char *)"BTC_CTS2S_DURING_SCO",
	(unsigned char *)"CHANNEL_BONDING_24G",
	(unsigned char *)"OBSS_HT40_SCAN_PASSIVE_DWELL_TIME",
	(unsigned char *)"OBSS_HT40_SCAN_ACTIVE_DWELL_TIME",
	(unsigned char *)"OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL",
	(unsigned char *)"OBSS_HT40_SCAN_PASSIVE_TOTAL_PER_CHANNEL",
	(unsigned char *)"OBSS_HT40_SCAN_ACTIVE_TOTAL_PER_CHANNEL",
	(unsigned char *)"OBSS_HT40_WIDTH_CHANNEL_TRANSITION_DELAY_FACTOR",
	(unsigned char *)"OBSS_HT40_SCAN_ACTIVITY_THRESHOLD",
	(unsigned char *)"TDLS_OFF_CHANNEL_ENABLED",
	(unsigned char *)"PMF_SA_QUERY_MAX_RETRIES",
	(unsigned char *)"PMF_SA_QUERY_RETRY_INTERVAL",
};



