//this file is part of eMule
//Copyright (C)2002-2006 Merkur ( strEmail.Format("%s@%s", "devteam", "emule-project.net" / http://www.emule-project.net )
//
//This program is free software; you can redistribute it and/or
//modify it under the terms of the GNU General Public License
//as published by the Free Software Foundation; either
//version 2 of the License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program; if not, write to the Free Software
//Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

#pragma once

// -- [TEST] -Config Fichier- Loulach -->>


#define INI_SAVE_COMMENTS			L"SaveComments" // MOD: XC - [ExtendedComments]
#define INI_KNOWN_COMMENTS			L"KnwonComments" // MOD: XCk - [ExtendedKnownComments]
#define INI_CUSTOM_SHARE_VIWE_PERMISSIONS L"UseCustonViewSharePermissions"

#define INI_SHOW_BANNER				L"ShowBanner"
// MOD: SI - [SysInfo]
#define INI_SYS_INFO_GRAPH			L"ShowSystemInfoGraph"
#define INI_SYS_INFO_TITLE			L"ShowSystemInfoInTitle"
// MOD: SI END
//-- [QuickStart] -- Loulach -->>
#define INI_USE_QUICK_START			L"UseQuickStart"
#define INI_QUICK_START_TIME		L"QuickStartTime"
#define INI_QUICK_START_TIME_PF		L"QuickStartTimePerFile"
#define INI_QUICK_START_MAX_CON_PER	L"QuickMaxConperFive"
#define INI_QUICK_START_MAX_HALF_CON L"QuickMaxHalfOpen"
#define INI_QUICK_START_MAX_CON		L"QuickMaxConnections"
//-- [QuickStart] -- Loulach --<<
#define INI_SAVE_QUEUE				L"SaveUploadQueueWaitTime" // MOD: SQ - [SaveUploadQueue]

#define INI_PART_TRAFFIC			L"UsePartTraffic" // MOD: NPT - [NeoPartTraffic]
#define INI_PART_TRSFFIC_COLLOR		L"PartTrafficCollorStyle" // MOD: NPT - [NeoPartTraffic]
#define INI_CLASSIC_SHARED_BARS		L"UseClassicShareStatusBar"


// MOD: TQ - [TweakUploadQueue]
#define INI_INFINITE_QUEUE			L"UseInfiniteQueue"

#define INI_QUEUE_OVERFLOW_RELEASE			L"AlowQueueOverflowRelease"
#define INI_QUEUE_OVERFLOW_RELEASE_LIMIT	L"AlowQueueOverflowReleaseLimit"

#define INI_QUEUE_OVERFLOW_EXTENDED			L"AlowQueueOverflowExtended"
#define INI_QUEUE_OVERFLOW_EXTENDED_LIMIT	L"AlowQueueOverflowExtendedLimit"

#define INI_QUEUE_OVERFLOW_DEFAULT			L"AlowQueueOverflowDefault"
#define INI_QUEUE_OVERFLOW_DEFAULT_LIMIT	L"AlowQueueOverflowDefaultLimit"

#define INI_QUEUE_OVERFLOW_COMFRIEND		L"AlowQueueOverflowComFriend"
#define INI_QUEUE_OVERFLOW_COMFRIEND_LIMIT	L"AlowQueueOverflowComFriendLimit"
// MOD: TQ END

#define INI_MULTI_QUEUE				L"UseOneQueuePerFile" // MOD: MQ - [MultiQueue]
#define INI_RANDOM_QUEUE			L"UseRandomQueue" // MOD: RQ - [RandomQueue]

#define INI_OLD_PRIOSYS				L"UseOldPriorityScore"


#ifdef ISPBYPASS // MOD: SCC - [SecureClinetConnection]
#define INI_SUPPORT_ISP_BYPASS		L"SupportISPBypass"
#define INI_ENCRYPTED_PORTS			L"EncryptedPorts"
#define INI_NEED_ISP_BYPASS			L"NeedISPBypass"
#endif // ISPBYPASS // MOD: SCC END

// MOD: TCR - [TCPConnectionRetry]
#define INI_TCP_CON_RETRY_ENABLE	L"UseTCPConnectionRetry"
#define INI_TCP_CON_RETRY_VALUE		L"TCPConnectionRetrys"
// MOD: TCR END
#define INI_TCP_DISABLE_NAGLE		L"TCPDisableNagle"

// MOD: IPS - [InteligentPartSharing]
#define INI_IPS_ENABLE				L"InteligentPartSharing"
#define INI_IPS_TIMER				L"InteligentPartSharingTimer"
#define INI_IPS_MAXIMUM				L"MaxProzentToHide"

#define INI_IPS_HIDE_OA				L"HideOverAvaliblyParts"
#define INI_IPS_OA_MODE				L"HideOverAvaliblyMode"
#define INI_IPS_OA_VALUE			L"HideOverAvaliblyValue"
#define INI_IPS_OA_CATCH			L"HideOverAvaliblyCatch"

#define INI_IPS_HIDE_OS				L"HideOverSharedParts"
#define INI_IPS_OS_MODE				L"HideOverSharedMode"
#define INI_IPS_OS_VALUE			L"HideOverSharedValue"
#define INI_IPS_OS_CALC				L"HideOverSharedCalc"
	
#define INI_IPS_SHOW_UA				L"DontHideUnderAvaliblyParts"
#define INI_IPS_UA_MODE				L"DontHideUnderAvaliblyMode"
#define INI_IPS_UA_VALUE			L"DontHideUnderAvaliblyValue"

#define INI_IPS_BLOCK_OA			L"BlockHighOverAvaliblyParts"
#define INI_IPS_OA_FACTOR			L"BlockHighOverAvaliblyFactor"

#define INI_IPS_BLOCK_OS			L"BlockHighOverSharedParts"
#define INI_IPS_OS_FACTOR			L"BlockHighOverSharedFactor"

#define INI_IPS_SHOW_ALWAYS_NEEDED	L"ShowAlwaysNeeded"
#define INI_IPS_SHOW_ALWAYS_PARTS	L"ShowAlwaysNeededValue"

#define INI_IPS_SHOW_ALWAYS_INCOMPLETE L"ShowAlwaysIncomplete"
// MOD: IPS END

// MOD: NA - [NeoArgos]
#define INI_USE_ARGOS_SYSTEM				L"UseArgosSystem"

#define INI_CREDIT_COMPENSATION				L"CreditCompensation"

#define INI_TRUST_UNARGOS_HASH_THIEF		L"TrustUnArgosHashThief"
#define INI_TRUST_UNARGOS_HASH_CHANGED		L"TrustUnArgosHashChanged"
#define INI_TRUST_UNARGOS_GHOST_MODE		L"TrustUnArgosGhostMode"
#define INI_TRUST_UNARGOS_AGRESSIV			L"TrustUnArgosAgressiv"
#define INI_ARGOS_TRUST_TIME				L"ArgosTrustTime"

#define INI_CLOSE_MAELLA_BACKDOOR			L"CloseMaellaBackdoor"

#define INI_DONT_BAN_FRIENDS				L"DontBanFriends"
#define INI_DONT_BAN_COMMUNITY				L"DontBanCommunity"

#define INI_ARGOS_PROCESS_TIME				L"ArgosProcessTime"
#define INI_ARGOS_TRACK_TIME				L"ArgosTrackTime"
#define INI_ARGOS_GENERIC_BAN_TIME			L"ArgosGenericBanTime"
#define INI_ARGOS_CORRUPTED_SENDER_TIME		L"ArgosCorruptedSenderTime"
#define INI_ARGOS_FILE_SCANNER_TIME			L"ArgosFileScannerTime"
#define INI_ARGOS_FILE_FAKER_TIME			L"ArgosFileFakerTime"
#define INI_ARGOS_AGRESSION_TIME			L"ArgosAgressionBanTime"
#define INI_ARGOS_OPCODE_TIME				L"ArgosOpCodeTime"
#define INI_ARGOS_HASH_CHANGED_TIME			L"ArgosHashChangedTime"
#define INI_ARGOS_RANK_FLOODER_TIME			L"ArgosRankFlooderTime"
#define INI_ARGOS_GHOST_MODE_TIME			L"ArgosGhostModeTime"	
#define INI_ARGOS_FAILED_TIME				L"ArgosFailedTime"
#define INI_ARGOS_XS_EXPLOIT_TIME			L"ArgosXSExploitTime"
#define INI_ARGOS_SPAMTIME_TIME				L"ArgosSpamTime"
#define INI_ARGOS_BAD_HELLO_TIME			L"ArgosBadHelloTime"
		
#define INI_ARGOS_GPL_BREAKER_PUNISHMENT	L"ArgosGPLBreakerPunishment"
#define INI_ARGOS_HARD_LEECHER_PUNISHMENT	L"ArgosHardLeecherPunishment"
#define INI_ARGOS_NORMAL_LEECHER_PUNISHMENT	L"ArgosNormalLeecherPunishment"
#define INI_ARGOS_SOFT_LEECHER_PUNISHMENT	L"ArgosSoftLeecherPunishment"
#define INI_ARGOS_BAD_MOD_PUNISHMENT		L"ArgosBadModPunishment"
#define INI_ARGOS_NICK_THIEF_PUNISHMENT		L"ArgosNickThiefPunishment"
#define INI_ARGOS_MOD_THIEF_PUNISHMENT		L"ArgosModThiefPunishment"
#define INI_ARGOS_HASH_THIEF_PUNISHMENT		L"ArgosHashThiefPunishment"
#define INI_ARGOS_CREDIT_HACK_PUNISHMENT	L"ArgosCreditHackPunishment"
#define INI_ARGOS_HASH_CHANGED_PUNISHMENT	L"ArgosHashChangedPunishment"
#define INI_ARGOS_GHOST_MODE_PUNISHMENT		L"ArgosGhostModePunishment"
#define INI_ARGOS_FAKE_CLIENT_PUNISHMENT	L"ArgosFakeClientPunishment"
#define INI_ARGOS_AGRESSON_PUNISHMENT		L"ArgosAgressonPunishment"
#define INI_ARGOS_FILE_SCANNER_PUNISHMENT	L"ArgosFileScannerPunishment"
#define INI_ARGOS_FILE_FAKER_PUNISHMENT		L"ArgosFileFakerPunishment"
#define INI_ARGOS_CORRUPTED_SENDER_PUNISHMENT L"ArgosCorruptedSenderPunishment"
#define INI_ARGOS_RANK_FLOODER_PUNISHMENT	L"ArgosRankFlooderPunishment"
#define INI_ARGOS_FAILED_PUNISHMENT			L"ArgosFailedPunishment"
#define INI_ARGOS_XS_EXPLOIT_PUNISHMENT		L"ArgosXSExploitPunishment"
#define INI_ARGOS_SPAM_PUNISHMENT			L"ArgosSpamPunishment"
#define INI_ARGOS_BAD_HELLO_PUNISHMENT		L"ArgosBadHelloPunishment"

#define INI_ARGOS_LEECHER_MOD_DETECTION		L"ArgosLeecherModDetection"
#define INI_ARGOS_LEECHER_NICK_DETECTION	L"ArgosLeecherNickDetection"
#define INI_ARGOS_DETECTION_LEVEL			L"ArgosDetectionLevel"
#define INI_ARGOS_OPCODE_DETECTION			L"ArgosOpcodeDetection"
#define INI_ARGOS_LEECHER_HASH_DETECTION	L"ArgosLeecherHashDetection"
#define INI_ARGOS_NICK_THIEF_DETECTION		L"ArgosNickThiefDetection"
#define	INI_PLAIN_ANTI_NICKT_HIEF			L"PlainAntiNickThief"
#define INI_ARGOS_MOD_THIEF_DETECTION		L"ArgosModThiefDetection"
#define INI_ARGOS_HASH_THIEF_DETECTION		L"ArgosHashThiefDetection"
#define INI_ARGOS_THIEF_ZONE_DETECTION		L"ArgosThiefZoneDetection"
#define INI_ARGOS_CREDIT_HACK_DETECTION		L"ArgosCreditHackDetection"
#define INI_HASH_CHANGE_DETECTION			L"HashChangeDetection"
#define INI_HASH_CHANGE_DETECTION_MODE		L"HashChangeDetectionMode"
#define INI_ARGOS_GHOST_MOD_DETECTION		L"ArgosGhostModDetection"
#define INI_ARGOS_FAKE_CLIENT_DETECTION		L"ArgosFakeClientDetection"
#define INI_AGRESSION_DETECTION				L"AgressionDetection"
#define INI_AGRESSION_TIME					L"AgressionIntervals"
#define	INI_AGRESSION_THRESHOLD				L"AgressionThreshold"
#define INI_FILE_SCANNER_DETECTION			L"FileScannerDetection"
#define INI_FILE_FAKER_DETECTION			L"FileFakerDetection"
#define INI_BAD_SENDER_DETECTION			L"BadSenderDetection"
#define INI_RANK_FLOOD_DETECTION			L"RankFloodDetection"
#define INI_FAILED_DETECTION				L"FailedDetection"
#define	INI_FAILED_TRIES					L"FailedTries"
#define	INI_FAILED_THRESHOLD				L"FailedThreshold"
#define	INI_XS_EXPLOIT_DETECTION			L"XSExploitDetection"
#define	INI_XS_EXPLOIT_INTERVALS			L"XSExploitIntervals"
#define	INI_XS_EXPLOIT_THRESHOLD			L"XSExploitThreshold"
#define	INI_SPAM_DETECTION					L"SpamDetection"
#define	INI_BAD_HELLO_DETECTION				L"BadHelloDetection"
#define	INI_DLP_DETECTION					L"DLPDetection"

#define INI_ARGOS_LOG_LEECHERS				L"ArgosLogLeechers"
// ARGOS // MOD: NA END

// MOD: SR - [SpreadReask]
#define INI_SPREAD_REASK			L"UseSpreadReask"
#define INI_SPREAD_REASK_VALUE		L"SpreadReaskvalue"
// MOD: SR END


// MOD: DR - [DownloadReask]
#define INI_REASK_TIME				L"ReaskIntervals"
#define INI_REASK_NNP_OFF			L"DontAskNoNeedPartSources"
#define INI_REASK_NNP_TIME			L"NoNeedPartReaskIntervals"
#define INI_REASK_FULLQ_OFF			L"DontAskFullQueueSources"
#define INI_REASK_FULLQ_TIME		L"FullQueueReaskIntervals"
// MOD: DR END


// MOD: DS - [DropSources]
#define INI_DROP_NNP				L"DropNoNeedPartSources"
#define INI_DROP_NNP_LIMIT			L"DropNoNeedPartSourcesLimit"
#define INI_DROP_NNP_LIMIT_MODE		L"DropNoNeedPartSourcesLimitMode"
#define INI_DROP_NNP_TIMER			L"DropNoNeedPartSourcesIvtervals"
#define INI_DROP_FULLQ				L"DropFullQueueSources"
#define INI_DROP_FULLQ_LIMIT		L"DropFullQueueSourcesLimit"
#define INI_DROP_FULLQ_LIMIT_MODE	L"DropFullQueueSourcesLimitMode"
#define INI_DROP_FULLQ_TIMER		L"DropFullQueueSourcesIvtervals"
#define INI_DROP_HIGHQ				L"DropHighQueueSources"
#define INI_DROP_HIGHQ_VALUE		L"DropHighQueueSourcesValue"
#define INI_DROP_HIGHQ_LIMIT		L"DropHighQueueSourcesLimit"
#define INI_DROP_HIGHQ_LIMIT_MODE	L"DropHighQueueSourcesLimitMode"
#define INI_DROP_HIGHQ_TIMER		L"DropHighQueueSourcesIvtervals"

#define INI_USE_DONT_ASK_THIS_IP	L"UseDontAskThisIP"
#define INI_DONT_ASK_THIS_IP_TIME	L"DontAskThisIPTime"
// MOD: DS END

// -- [ReaskOnIDChange] -- Loulach -->>
#define INI_CHECK_ID_CHANGE			L"CheckIDChange"
#define INI_INFORM_ON_ID_CHANGE		L"InformClientsOnIDChange"
#define INI_REASK_ON_ID_CHANGE		L"ReaskSourcesOnIDChange"
#define INI_QUICK_START_ON_ID_CHANGE L"RedoQuickStartOnIDChange" // MOD: QS - [QuickStart]
#define INI_CHECK_L2H_ID_CHANGE		L"CheckLowID2HidhIDChanges"
#define	INI_RECONNECTKAD_ON_ID_CHANGE L"ReconnectKadOnIPChange"
#define INI_REBIND_SOCKETS_ON_IP_CHANGE L"RebindSocketsOnIPChange"
// -- [ReaskOnIDChange] -- Loulach --<<
#define INI_USE_FAKE_CHECK			L"UseFakeCheck" //--- [FakeCheck] <<-- Loulach --
// MOD: AU - [AutoUpdate]
#define INI_USE_LUGDUNUM_CREDITS	L"UseLugdunumCredits" // MOD: KLC - [KhaosLugdunumCredits]
#define INI_AUTO_RUNTIME_UPDATE		L"AutoRuntimeUpdate"
#define INI_RUNTIME_UPDATE_INTERVALS L"RuntimeUpdateIntervals"

#define INI_UPDATE_URL_IP_FILTER	L"UpdateURLIPFilter"
#define INI_AUTO_UPDATE_IP_FILTER	L"AutoUpdateIPFilter"
#define INI_IP_FILTER_VERSION		L"IPFilterVersion"

#ifdef ARGOS // MOD: NA - [NeoArgos]
#define INI_UPDATE_URL_LEECHERS_LIST L"UpdateURLLeechersList"
#define INI_UPDATE_LEECHERS_STARTUP	L"UpdateLeechersStartup"
#define INI_LEECHERS_VERSION		L"LeechersVersion"
#endif // ARGOS // MOD: NA END

//--- [FakeCheck] -- Loulach -->>
#define INI_UPDATE_URL_FAKE_LIST	L"UpdateURLFakeList"
#define INI_UPDATE_FAKE_STARTUP		L"UpdateFakeStartup"
#define INI_FAKES_VERSION			L"FakesVersion"
//--- [FakeCheck] -- Loulach -->>
// MOD: IFWS - [ICSFirewall]
#define INI_ICF_SUPPORT				L"ICFSupport"
#define INI_ICF_CLEAR_ON_CLOSE		L"ICFClearOnClose"
// MOD: IFWS END

#ifdef UPNPNAT // MOD: UPNP - [UPnPNat]
#define INI_UPNP_NAT				L"UPnPNAT"
#define INI_UPNP_CLEAR_ON_CLOSE		L"UPnPClearOnClose"

#define INI_UPNP_VERBOSE_LOG		L"UPnPVerbose"
#define INI_UPNP_PORT				L"UPnPPort"
#define INI_UPNP_LIMIT_TO_FIRST_CONNECTION 	L"UPnPLimitToFirstConnection"
#endif // UPNPNAT // MOD: UPNP END

// -- [TEST] -Config Fichier- Loulach --<<