+----------------------------+
|Changes from v5.713 to 5.714|
+----------------------------+
	1. Add PlayerVar ident to define var that are player variable and visible on each event .
	  Event OnLapperStart()
	  	PlayerVar $myvar = 12;
	  EndEvent
	  
	  This var now it's visible in all player event and can be used or changed. All modification are visible
	  on other player event for current player.	
	
	 2. Add new event : 
	 	OnRotateCar -> When car is changed on rotation
	 	OnRotateTrack -> When track is changed on rotation
	 	
	 3. Suppress message "car changed go to pit". You must do in in correct Rotate Event
	 	
	 4. Add new built-in vars
	 	$CurrRotateCar -> Current rotated Car
	 	$CurrRotateTrack -> Current rotated Track
		CurrLongRotateTrack -> Current rotated Track
	 	$NextRotateCar -> Next rotated Car
	 	$NextRotateTrack -> Next rotated Track
	 	$NextLongRotateTrack -> Next rotated Track
	 	
	 	

	+----------------------------+
|Changes from v5.712 to 5.713|
+----------------------------+
	1. Flags players for current player tested also when on track and changed( mouse,view,...,etc)
	
	2. Add new event : OnLapperStart
	  this event is triggereg when lapper start
	  
	3. Add GlobalVar ident to define var that are global and visible on each event.
	  Event OnLapperStart()
	  	GlobalVar $myvar;
	  
	  	$myvar = "it's a test";
	  EndEvent
	  
	  This var now it's visible in all event and can be used or changed. All modification are visible
	  on other event.
	  

+----------------------------+
|Changes from v5.711 to 5.712|
+----------------------------+
1. Fix EnterPitAction

2. Fix Idling when in pit ( teleported  shift+P )

3. Fix center text in button under certain condition

4. You can call a sub or event in other event, be carrefully do not do an infinite Loop

5. Fix Swearword count

6. Remove warning messages on PENR_UNKNOWN

7. Remove warning "Sub '' not found in your config file"

8. $RotateTracks and $RotateCars are independent
	if $RotateCars = "" or RotateCars = "Onecar" , rotate only on track and current car
	if $RotateTrack = "" or $RotateTrack = "Onetrack", rotate only on car and this track or current track
	
9. Correct bug on test time value


+----------------------------+
|Changes from v5.710 to 5.711|
+----------------------------+
1. Fix username issue for kick/ban/spec in demo host

+----------------------------+
|Changes from v5.706 to 5.710|
+----------------------------+
1. AvgSpeed is allowed in all player event

2. Fix $allow regression

3. Allow && ( and ), || ( or ) in expression
	example:
		IF( $var > 2 && $var < 5 ) THEN
		  ...
		ENDIF
4. Add new Var
	$HostName -> Current host Name

+----------------------------+
|Changes from v5.706 to 5.707|
+----------------------------+
1. Add new var
	$isBestSectorSplit1 -> 1 if this sector split is best than previous Best, otherwise 0
	$isBestSectorSplit2 -> 1 if this sector split is best than previous Best, otherwise 0
	$isBestSectorSplit3 -> 1 if this sector split is best than previous Best, otherwise 0
	$isBestSectorSplitLast -> 1 if this sector split is best than previous Best, otherwise 0

2. Remove var
	$CurSplit         	-> Split duration for the last sector
	$BestSplit        	-> Best Split duration for the last sector
	$DiffSplit        	-> CurSplit - BestSplit
	$BestSPB		-> is the last sector is best than previous Best
	$SplitNumber		-> Split number

3. Remove event
	OnSpbSplit

4. Add event
	OnSpbSplit1		-> Event triggered when sector split is done and showsplit on config player is true
	OnSpbSplit2		-> Event triggered when sector split is done and showsplit on config player is true
	OnSpbSplit3		-> Event triggered when sector split is done and showsplit on config player is true
	OnSpbSplitLast		-> Event triggered when sector split is done and showsplit on config player is true

5. Add Var
	$PBLapTime		-> Current PB on current Combo
	$diffLapTimeToPb	-> Laptime - PBLTime

6. Now +-/* work also on time value
	example
		"0.10.10" + "0.01.20" = "0.11.30".

7. Fix disconnection when request button sended to fast to host ( LFS bug )

8. Add event
	OnSplit1		-> Event triggered when sector split is done
	OnSplit2		-> Event triggered when sector split is done
	OnSplit3		-> Event triggered when sector split is done
	OnLap			-> Event triggered when sector split is done

+----------------------------+
|Changes from v5.705 to 5.706|
+----------------------------+

1. Add new var
	$SectorSplit1       -> Last First sector Split, updated when doing new Split1
	$SectorSplit2       -> Last second sector Split, erased when doing Split1
	$SectorSplit3       -> Last third sector Split, erased when doing Split1
	$SectorSplitLast    -> Last Last sector Split, erased when doing Split1

	$SectorBestSplit1   -> Best Split duration for the sector 1
	$SectorBestSplit2   -> Best Split duration for the sector 2
	$SectorBestSplit3   -> Best Split duration for the sector 3
	$SectorBestSplitLast-> BestSplit duration for the last sector

	$DiffSectorSplit1       -> $SectorSplit1 - $SectorBestSplit1
	$DiffSectorSplit2       -> $SectorSplit2 - $SectorBestSplit2
	$DiffSectorSplit3       -> $SectorSplit3 - $SectorBestSplit3
	$DiffSectorSplitLast    -> $SectorSplitLast - $SectorBestSplitLast

+----------------------------+
|Changes from v5.704 to 5.705|
+----------------------------+

1. Add new var
	$Split1             -> Last First Split, updated when doing new Split1
	$Split2             -> Last second Split, erased when doing Split1
	$Split3             -> Last Third Split, erased when doing Split1
	$LapTime           -> Current Lap Time, erased when doing new LapTime

2. New script command
	console( string_text );
	output Text to console windows ( for debugging script )

3. Fix $LongTrackName and $ShortTrackName not displayed

+----------------------------+
|Changes from v5.703 to 5.704|
+----------------------------+

1. Fix wrong decimal value in driftscore.

2. Many modification and Upgrade in expression evaluator
	operator allowed:
		+,-,/,*,^,==,!=,>,<,<=,>=
3. You can use IF( expr ) THEN ... ELSE ... ENDIF in script, take a look on onSpbSplit for an averview
	Exemple if you want kick unnamed on OnConnectClose Sub called when player click Accept
	Sub OnConnectClose()
		closePrivButton("welc&pos&clos&ref");
		IF( $Nickname == "unnamed" )
		THEN
			cmdLFS( "/kick " . $Username );
		ENDIF
	EndSub
	You can also test this when a player join a race


4. Event removed in config file:
                OnSpb1Up
                OnSpb1Low
                OnSpb2Up
                OnSpb2Low
                OnSpb3Up
                OnSpb3Low
                OnSpbLastUp
                OnSpbLastLow

5. New Event in config file
        OnSpbSplit When a split is done
        OnSpbLast When a lap is done

6. Remove turn off button when spectated

7. Add config version file from Yisc[NL]

8. New color syntax file for PSPPAD editor in doc folder



+----------------------------+
|Changes from v5.702 to 5.703|
+----------------------------+

1. Fix wrong value for acceleration Time display in Acceleration options.

2. Corrected config file by Yisc[NL]

3. Fix issue when wr not present on lfs world or not loaded

+----------------------------+
|Changes from v5.701 to 5.702|
+----------------------------+

1. Fix issue when config file is in utf-8 format. This file must be in UTF-8 or ansi
	solve somme bug on autokick, and $allow


+----------------------------+
|Changes from v5.700 to 5.701|
+----------------------------+

1. Idle Time out wrong Unit in config file, now second

2. Laptime and averagespeed (unknown) when new PB

3. Car can be put in lower or uppercase in !top

4. Corrected config file



+----------------------------+
|Changes from v5.641 to 5.700|
+----------------------------+
1. Change config file, new version, it's more easy to create and read

2. Change in trackinfo file for the split actions. Now split action reference to sub in config file

3. You can search specific user with !nearqual and !near
		without arg, you can view you nearqual position
		with arg you can view nearqual position for a player
		  arg can be a partial name !nearqual gai-lu

+----------------------------+
|Changes from v5.640 to 5.641|
+----------------------------+
1. Fix bug on button

2. Fix bug on OnIdleTimeout1 et OnIdleTimeout2. Now in second

+----------------------------+
|Changes from v5.632 to 5.640|
+----------------------------+
1. Change in interval configuration management ( for future extension ))
  AuthPrivMess : removed
  OnAuthReached : Added to replace AuthPrivMess
  
2. Fix bug in /http commands

3. Add switch in command Line
	-help -> Show command line parameter
	-debug -> put LFSLapper in debug mode
	-dumpvar -> Dump all variable used by LFSLapper and set by config file
	
4. Add Var IdleExclude. User to exclude to idle action. Only username, no nickname
	because in future version all player were registered
	Exemple :
		IdleExclude = Lagamel,Gai-Luron;
		
5. Remove Var, this var are obsolete
        AutoAction
        AutoMsgPrivate

6. New config ability : addCmd to add a new command to lapper

 Action to do on special command typed in message line
 Syntax
     addCmd( "command[|command]"[,"allowedUser"]) = command text

 "allowedUser" is optional if you wish to specify users, that are allowed to execute action
 You can specify more user separated by '|'
   Exemple  :
     addCmd("!ver","Gai-Luron|Lagamel") = /ver;
 If ! before a name, force nickName authentification if UseUsernameForAuthentication=true
 If ! before a name, force userName authentification if UseUsernameForAuthentication=false
 You can use regexp expression in userName pattern, type regex=your regular expression
			Exemple : if UseUsernameForAuthentication=treu
				!regex=^\[COP\].*
				Find all user who nickname begin with [COP]
				regex=^Gai.*
				Find all user who username begin with Gai
 		See regular expression on web for more info how it work
 Use & sign at end of patterns, if you wish to specify a file containing users, that are allowed to execute action. users separate by \n

 Use & sign at beginning of "allowedUser", if you wish to specify a file containing users, that are allowed to execute action. users separate by \n
   Exemple  :
     addCmd("!ver","&./cmd.flt") = /ver:
     
7. Add internal var for config file. A local variable can be defined to put in another configration variable
	To define a var
		<myVar> = /pm i'm very happy;

	You can include this local variable in configuration variable
		PBAction = /msg New PB by {Nickname}^8|<myVar>;

	In fine PBAction look like this for LFSLapper
		PBAction = /msg New PB by {Nickname}^8|/pm i'm very happy;
	



  
+----------------------------+
|Changes from v5.632 to 5.633|
+----------------------------+
1. Remove LapperAdminVote, obsolete
	if VoteRestart or VoteQualify or VoteEnd = -1, not catched by LFSLapper

2. Add some vote variables
 VoteLifeSec = Second for the life for a vote

	VoteRestart = percent of player vote on track need to restart race, LFS admin this if set to -1
	onVoteRestartChange = Command to do when player vote to restart
	onVoteRestartReach = Command to execute when VoteRestart is reached
	onVoteRestartZero = Command to execute when no nb of player reach zero

  VoteQualify = percent of player vote on track need to qualify, LFS admin this if set to -1
  onVoteQualifyChange = same as restart but for qualify
  onVoteQualifyReach = same as restart but for qualify
  onVoteQualifyZero = same as restart but for qualify

  VoteEnd = percent of player vote on track need to end race, LFS admin this if set to -1
  onVoteEndChange = same as restart but for qualify
  onVoteEndReach = same as restart but for qualify
  onVoteEndyZero = same as restart but for qualify

On this action you can use:
 	{Nickname} - Nickname of driver
 	{Username} - Username of driver
 	{Vote} - Player who have voted
 	{Remain} - Player remaining to vote
 	{Need} - Player needed for action

	
3. Add date and time format in cfg file
	 Date and time format for PB file

	 Look at C# format date, little help

	 HH = Hour in 0-23 format
	 hh = Hour in 0-12 format
	 mm = Minute
	 tt = PM or AM
	 dd = Day of the month
	 MM = Month
	 yyyy = year with 4 digits

	Exemple
		DateFormat = dd/MM/yyyy;
		TimeFormat = HH:mm;


+----------------------------+
|Changes from v5.631 to 5.632|
+----------------------------+

1. Add Lapper administration for vote
	LapperAdminVote = false; if set to true, Lapper admin all votes
	VoteRestart = 75; players percent needed to act this vote, host not include
	VoteQualify = 75; players percent needed to act this vote, host not include
	VoteEnd = 75;     players percent needed to act this vote, host not include
	
	VoteLifeSec = 30; Life in second for a vote

+----------------------------+
|Changes from v5.62 to 5.631 |
+----------------------------+
1. Add InRaceLapsVoteMinMax = Laps between Vote are allowed on race
	Exemple:
		InRaceLapsVoteMinMax = 0-0 Vote are never allowed
		InRaceLapsVoteMinMax = -5 Vote allowed between first lap and 5 lap
		InRaceLapsVoteMinMax = 2- Vote allowed between laps 2 and end of race
		InRaceLapsVoteMinMax = - Vote always allowed

2. Add {Username} var in trackinfo.cfg

3. Add AutoRestartRaceMn = Minute between End of a race and an automatic restart
 	AutoRestartRaceMn = 0; No restart

4. Add Automatic rotation for car and or track 
	Rotation work only if AutoRestartRaceMn is set

	EnableRotation = Allow or diallow rotation for track and/or car
		Values : true or false
	RotateTracks = track to rotate separated by ','
	RotateCars = cars to rotate separated by ',' Use LFS definition for car. , if not set, no car rotation
	RotateEveryNbRaces = Number of race to do before rotation


		

+---------------------------+
|Changes from v5.62 to 5.63 |
+---------------------------+
1. Check for bad words or swearwords
	SwearWordsList : 	is a list of bad words
 						- if you prefix with & , You can indicate a file name who contain list of swearWords, one word per line
 						- if you do not prefix, You can list word separated with ,
	Syntax :
		SwearWordsList = &./your_file;
		or
		SwearWordsList = word1,word2,...,wordn;

	SwearWordsMax : Max allowed bad words / session
	SwearWordsAction1 : 	is an action to do when user write bad words before reach SwearWordsMax
	SwearWordsAction2 : 	is an action to do when user write bad words when reach SwearWordsMax

	Variable avaiable on SwearWordsAction1 and SwearWordsAction2
		{Nickname} - Nickname of driver
 		{Username} - Username of driver
 		{SwearWordsMax} = Max allowed swearwords
 		{SwearWordsRem} = Remaining retry before SwearWordsAction2

2. Remove gcbut, deprecated

3. Add to pbut one argument. this is a line command Lapper Do when you click on this button.
	this command line must be quoted.
	/pbut id,ids_to_close,L,T,W,H,I,Time,one line message,"command"

4. /cpbut is now a Lapper command to close one Button.
	/cpbut id_buttontoclose&...&id_lastbuttonto close

+---------------------------+
|Changes from v5.61 to 5.62 |
+---------------------------+

1. Change line separation in message button form  to &. Bug on coding into some system character coding

2. Change command cbut in cpbut.

3. Add gbut command to display a global message to all players, 

4. Add gcbut command to put a close button for all player



+---------------------------+
|Changes from v5.60 to 5.61 |
+---------------------------+

1. !topqual, !nearqual, !top, !near, !help now are displayed on Message Box

2. Add new internal command : /cpbut
	to put a button to close one or more personnal message button, only one line in text parameter
Syntax :
	/cpbut id,ids_to_close,L,T,W,H,I,Time,one line message,"command"
	
	id = string id for the button
	ids_to_close = ids buttons of all messages button separated by &
	L = Left coordonate ( 0 to 200 )
	T = Top coordonate ( 0 to 200 )
	W = Width for the button ( 0 to 200 )
	H = Heigth for the button ( 0 to 200 )
	I = Separation bettween multi line message ( 0 to 200 )
	Time = Is the time in second that the button is displayed, -1 not closed and closed on click.
	Bstyle = Button style, look at insim.txt for value or below
	"command" = is a quoted list of Lapper command


+---------------------------+
|Changes from v5.54 to 5.60 |
+---------------------------+
1. Add some variables in AutoMsgPrivate var in config file {Posabs} {Posqual} {Groupqual} to display then in some case

2. New command /termlapper to close lapper in command line or scheduled action. Usefull for end pre-qualification

3. Add new internal command : /pbut
	to display a private message button, each line for message are separated by &
Syntax :
	/pbut id,L,T,W,H,I,Time,message line1&message line1&...&Message line n
	
	id = string id for the button
	L = Left coordonate ( 0 to 200 )
	T = Top coordonate ( 0 to 200 )
	W = Width for the button ( 0 to 200 )
	H = Heigth for the button ( 0 to 200 )
	I = Separation bettween multi line message ( 0 to 200 )
	Time = Is the time in second that the button is displayed, -1 not closed
	Bstyle = Button style, look at insim.txt for value or below

// BStyle byte : style flags for the button

#define ISB_C1			1		// you can choose a standard
#define ISB_C2			2		// interface colour using
#define ISB_C4			4		// these 3 lowest bits - see below
#define ISB_CLICK		8		// click this button to send IS_BTC
#define ISB_LIGHT		16		// light button
#define ISB_DARK		32		// dark button
#define ISB_LEFT		64		// align text to left
#define ISB_RIGHT		128		// align text to right

32+64 = 86
Exemple:
	If you set Bstyle = 86 your text is in dark button and align to left.

// colour 0 : light grey		(not user editable)
// colour 1 : title colour		(default:yellow)
// colour 2 : unselected text	(default:black)
// colour 3 : selected text		(default:white)
// colour 4 : ok				(default:green)
// colour 5 : cancel			(default:red)
// colour 6 : text string		(default:pale blue)
// colour 7 : unavailable		(default:grey)


+---------------------------+
|Changes from v5.53 to 5.54 |
+---------------------------+
1.	Add ability to select multi car in DefaultTopCar
		you can specify one or more car with "+" between car
		Ex : DefaultTopCar=XFG+XRG

		TBO    - same as XRT+RB4+FXO
		LRF    - same as LX6+RAC+FZ5
		GTR    - same as FXR+XRR+FZR

2.	You can use multi car in !top, !near, !topqual, !nearqual

3.	You can specify witch car is used by a user in QualUsers adding car after username separated by : 
		Example :  Gai-Luron:XFR,lagamel:UFR
		work also in qualusers file. 
		Don't forget to set DefaultTopCar in accordance with all car used in qualify session

4.	Fix Bug on dstats


+---------------------------+
|Changes from v5.52 to 5.53 |
+---------------------------+
1.	Fix Bug with mono

+---------------------------+
|Changes from v5.51 to 5.52 |
+---------------------------+
1.	?????, i don't remember

+---------------------------+
|Changes from v5.50 to 5.51 |
+---------------------------+

1.  Minor change in how work Handicap. Now 3 levels for handicap
		You can specify 3 level of handicap : for car, for car and track, for user
		Priority Level low to hight : HandicapCars, HandicapCarsTracks, HandicapUser.
		Prior the handicap are added, not now
	
	Priority to HandicapUser if exist, next HandicapCarsTracks if exist finally HandicapCars
	
	New var HandicapCarsTracks
		Syntax :
		HandicapCarsTracks = car/track:mass:irest,car/track:mass:irest,...,car/track:mass:irest;

2.  Now in AuthAllowPlayer you can specify also player allowed to access to track.
	Syntax:
		AuthAllowPlayer=Auth1|...|AuthX|@username1,username2,...,usernameN;

3.  Modification in Web register. Now it send LFSLapper's version.

4.  Registered page web modified with new infos.
		look at www.frh-team.net/reglapper

+---------------------------+
|Changes from v5.43 to 5.50 |
+---------------------------+

1. Fix Bug in Qualusers when you use a txt file. Defgroup:2:30:2 now work

2. New powerfull command

	/http url ( look at !powered in config file )

	- with this command you can query to a web the list of command to be execute when action containing /http 
	is triggered.

	- The web page can't contain HTML code but only LFSLapper command separate by | ( Like config file ).

		example: http://www.frh-team.net/reglapper/getserver.php 
				is a web page that return the number of Lapper up!
			The web page print only :
				/pm ^7Actually, there are ^335^7 LFSLapper powered servers

	- you can call your web page with Lapper's arguments ( like nickname, username depending on action trigered using php
	sending parameter ). Then your page return a set of command.

	- it is a powerfull command for guy knowing php programming.

	- This command run asynchronously with Lapper and may be take a while depending response of your web site
	i put a 5s timeout for slow web server, tell me if it's to short.

	- An http command don't block LFSLapper, it continue to run normally. When response is availlable, LFSLapper 
	execute the web response.



+---------------------------+
|Changes from v5.42 to 5.43 |
+---------------------------+

1. Allow or Disallow join Race relative to Flags for current the player,
	Racer flags													
		Y = Yes														
		N = No														
		* = Yes or No													

	SwapSide = *;
	AutoGears = *;
	Shifter = *;
	HelpBrake = *;
	AxisClutch = *;
	AutoClutch = *;
	Mouse = *;
	KbNoHelp = *;
	KbStabilised = *;
	CustomView = *;

	New
		OnNotMatchFlags action
		
		new vars 
			{PlayerFlags} = The current Player flags
			{RequiredFlags} = The current Required flags


+--------------------------+
|Changes from v5.41 to 5.42|
+--------------------------+

1. Fixes issue in automessage et autoaction


+--------------------------+
+--------------------------+
|Changes from v5.40 to 5.41|
+--------------------------+

1.	New penalties work
	OnFastDriveOnPitL1 = Actions on 30 Sec Penalty or drive-through
	OnFastDriveOnPitL2 = Actions on 45 Sec Penalty or Stop&Go
	MaxFastDriveOnPit = Max Fast Drive on Pit allowed per race
	OnMaxFastDriveOnPit = Actions on Max Fast Drive on Pit allowed
	OnFalseStartL1 = 30 Sec Penalty or drive-through
	OnFalseStartL2 = 45 Sec Penalty or Stop&Go
	
	Obsolete parameters
		MaxDriveThroughPenalties
		StopGoPenaltyAction
		MaxStopGoPenalties
		Time30PenaltyAction
		Time45PenaltyAction
2. New feature : execute an action whenever a user drives more laps in a single session than allowed
	New config vars:
		MaxSessionLaps = Number;
		OnMaxSessionLaps = Action;
	Add new var in onConnect action
		{MaxSessionLaps} -> Max laps allowed per session
		
3. You can Register your lfs name server on FRH TEAM WEB Server( Only name Server is transmitted look at RegisterWeb.cs )
	Soon ability to display the name server list Running Lapper on frh-team server
	This allow user to know where are server running Lapper and connect to them
	New config vars:
		EnableRegisterWeb = true;
		
4.	New command for command line to allow or no authorization mode
	/license on
	/license off
	/license ? 
	
	New command for text input in LFS
	!license on
	!license off
	!license ? 
5.	Add Minimum player config
 	this enable Authorization. if less: All player allowed, if upper: AuthAllowPlayer only allowed
	AuthMinPlayer = 0;



	
+--------------------------+
|Changes from v5.32 to 5.40|
+--------------------------+

1.	Reorganization in config file, some explications added. some : replaced with {colon}   (thank's Yisc[NL])
2.	Car Handicap mass and intake restriction added
3.	!hand command modified
	without argument show your required handicap and your actually configured handicap for you and car
	with username argument: Show required handicap for a specified user and current car
4. Add on var OnConnect: 
	{Nickname} - Nickname of driver
	{Username} - Username of driver
5.	Add new command in action
	/pm message - This command send a private message to player who generate this action
	some var is not bee continued because you can put private message on action
	I remove this var from config, but for compatibility, now you can continue to use it, 
	but please remove it at son as possible and add this var with command /pm in action
	Var concerned:
		ConnectMsg -> put values in OnConnect with /pm command
		PrivateMessageOnDriftScore -> put values in OnDriftScore with /pm command
		AccelerationPrivateMessage -> put values in OnAcceleration with /pm command
		BeginPitPrivMess -> put values in OnBeginPit with /pm command
		EndPitPrivMess -> put values in OnEndPit with /pm command
		PrivMessSpb1Up -> put values in OnSpb1Up with /pm command
		PrivMessSpb2Up -> put values in OnSpb2Up with /pm command
		PrivMessSpb3Up -> put values in OnSpb3Up with /pm command
		PrivMessSpb1Low -> put values in OnSpb1Low with /pm command
		PrivMessSpb2Low -> put values in OnSpb2Low with /pm command
		PrivMessSpb3Low -> put values in OnSpb3Low with /pm command
		PrivMessSpbLastUp -> put values in OnSpbLastUp with /pm command
		PrivMessSpbLastLow -> put values in OnSpbLastUp with /pm command
		
6.	You can use special command in action line
	/pm
	/cleanspb
	/spb
	/statsqual
	/stats
	/hand
	/dstats
	/ver
	/nearqual
	/near
	/drf
	/topqual
	/top
	/auth
	
7.	Add parameter for player to slow to accomplish a lap, this is relative to Maxlaptime from trackinfo.cfg
	2 Level
		MaxAllowedTime1 = % Max allowed time to complete a lap relative to MaxLapTime on trackInfo.cfg
			MaxAllowedTime1 = 100 # 100% of MaxLapTime
		MaxAllowedTime2 = % Max allowed time to complete a lap relative to MaxLapTime on trackInfo.cfg
			MaxAllowedTime2 = 150 # 100% of MaxLapTime

		OnMaxAllowedLapTime1 = Action To do when to Slow level 1
		OnMaxAllowedLapTime2 = Action To do when to Slow level 2

8.	Exclude a pitstop from the idle-check

9.	OnDisConnect action added

10.	New vars on AutoMsgPrivate
	{Dist} - Distance on current car and track
	{SessDist} - Distance on current car and track for session
	{UnitDist} - Unit for distance
	
	And New command
	
	!distance

			
+--------------------------+
|Changes from v5.31 to 5.32|
+--------------------------+

1. 	Use in !top and !near the last car used by player requesting this info. If no last car ( player joining ) use of defalutTopCar
	from the config file
2.	In autoaction add a switch !
	If ! before a name, force nickName authentification if UseUsernameForAuthentication=true
	If ! before a name, force userName authentification if UseUsernameForAuthentication=false
3.	In AutoAction, you can use regexp expression in user pattern, type regex=your regular expression instead of user name
			Exemple : if UseUsernameForAuthentication=true
				!regex=^\[COP\].*
				Find all user who nickname begin with [COP]
				regex=^Gai.*
				Find all user who username begin with Gai
 		See regular expression on web for more info how it work


+--------------------------+
|Changes from v5.30 to 5.31|
+--------------------------+

1. *** WARNING *** Configuration file is changed
	the terminator of each line is ";" now.
	I remove 'Tab' obligation for multiline command
	To avoid to retype all yours configs files, i do an Utility ConvCfg.exe to reconstruct all cfg file in directory where you launch ConfCfg.exe
2. Add 10 levels authorisation for access server relative to time do by user on Car/Track 
	( Automatised license management for two or more server with Sync PB Lapper feature )
	You can have one serveur for all Player, the second server with PB file synchronized 
	with the first and allows only user who have made a good PB on the first server
3. Add parameter in config file for this feature
	Auth1 = XFG:BL1:1.30.10	| XRT:SO4:1.20.20;
	Auth2 =	XFG:BL1:1.10.10	| XRT:SO4:1.20.20;
	Auth3 =	...;
	...
	Auth10 = ...;

	AuthAllowPlayer = Auth1|Auth2|...|AuthX;
	OnAuthAllowed = /msg {Nickname}^3 allowed on this server;
	OnAuthNotAllowed = /spec {Nickname}|
					/msg {Nickname}^3 not allowed on this Server|				
	;
	AuthPrivMess=^3You have got level {auth};		SyncID = Sync Unique ID for this Lapper
4. Add New command : /auth to know your level authorization on this server

+--------------------------+
|Changes from v5.20 to 5.30|
+--------------------------+

1. Add ability to sync PB.txt for 2 or more Lapper
2. Add parameter in config file
		SyncID = Sync Unique ID for this Lapper
		SyncDir = Sync Directory name for Synchronization, all Lappers to be Synchronized must have same Directory
		SyncIDsToSync = All Lappers ID To synchronize with you, you can't put here your current Sync Unique ID

+--------------------------+
|Changes from v5.15 to 5.20|
+--------------------------+

1. Compatibily with patch Y
2. Add FBM Car
3. Add SO6 Track

+--------------------------+
|Changes from v5.13 to 5.14|
+--------------------------+

1. Add variable {*} in AutoAction who is the rest of the line racer type in ( argument ).
	!ban@VANE|/ban {*}

+--------------------------+
|Changes from v5.12 to 5.13|
+--------------------------+

1. Fix stats bug and dstats bug

2. Add fields in trackinfo.cfg 
       -  lapTimeAction ( Action to do when a player to a specified time Lap )
       -  lapTime ( Time to trigger action )

+--------------------------+
|Changes from v5.11 to 5.12|
+--------------------------+

1. Fix PB bug when change track without restart LFSLapper

2. Fix display Bug of Unit Speed when do a new PB server

+--------------------------+
|Changes from v5.10 to 5.11|
+--------------------------+

1. LFSLapper Save Config of each Player in shift + i mode

2. Now Player can do the choice of display Speed Unit in config screen ( Shift + i )

3. Add Variable {UnitSpeed} to display the speed Unit of the racer in cfg file

4. Add variable to test acceleration for racer who have Mph unit. Now acceleration can be calculated for kmh racer and mph racer
	AccelerationStartSpeedMph ( in Mph )
	AccelerationEndSpeedMph  ( in Mph )
	
5. Fix bug of display product info in LFSLapper Screen	
	
+--------------------------+
|Changes from v5.01 to 5.10|
+--------------------------+

1. Add TCP connection to Insim ( Add a parameter in cfg file if you want disable and use UDP )

2. Add the test of the format time in trackInfo.cfg

3. Add {LongTrackName} variable in cfg file

4. Now old Lapper built-in command (!ver,!top,... ) can be put on private messages in the cfg file
	/ver -> Show version of LFSLapper
	/cleanspb -> Clean your current session of Spb
	/spb -> Show your SPB
	/hand -> Show your handicap or a player handicap
	/statsqual -> View stats of player container in FilterQual variable
	/dstats -> Drift Stats
	/stats -> Stats of a player
	/nearqual -> Top qual near your position if you are in FilterQual variable
	/near -> Top near you
	/topqual -> Top qual of player in FilterQual variable
	/top -> Top 
	/drf -> Drift Top
	
5. Add command in AutoMsgPrivate, copy this commands in this place or use new cfg file
AutoMsgPrivate =
	!ver|/ver|
	!cleanspb:!razspb|/cleanspb|
	!spb|/spb|
	!hand|/hand {*}|
	!statsqual|/statsqual {*}|
	!dstats|/dstats {*}|
	!stats|/stats {*}|
	!nearqual|/nearqual {*}|
	!near|/near {*}|
	!topqual|/topqual {*}|
	!top|/top {*}|
	!drf|/drf {*}|
	
	....  Rest of your AutoMsgPrivate ....
	
6. Add a variable {*} in AutoMsgPrivate who is the rest of the line racer type in ( argument )

7. All private messages are multiline messages, each line is separated by ':' in the command line


+--------------------------+
|Changes from v5.01 to 5.02|
+--------------------------+

1. Auto Fusion of duplicate username player ( Now not Case sensitive )

2. Remove "demo." in username of demo server due to difference between dedi and LFS Standart

3. If demo server, username = nickname even if a licensed player connect to this server

4. Default, view PB Spb on config player

5. Fix PB on rename player in demo mode, retrieve info of renamed player

6. Auto update of old Demo PB file to remove "demo." and fusion of dupplicate player


+--------------------------+
|Changes from v5.00 to 5.01|
+--------------------------+

1. Fix bug when Lapper not have an internet connection for getting WR on PubStat

2. Fix nickname not visible in splitting notification

3. Remove User and Pass for connect to pubstat, Only idk

4. Fix Issue with demo player on PB.TXT

5. Fix serveur SPB Problem when race restart or on shift+P and rejoin race

+--------------------------+
|Changes from v4.10 to 5.00|
+--------------------------+

1. Many internal change for add new possibility

2. Save Number of Lap do on car/track in PB file

3. Add on ConnectMsg
	. {SessLaps} - Number of Lap on current track and current Car for the session
	. {Laps} - Number of Lap on current track and default Car
	. {Car} - Default car, because at this time, Lapper don't know your car
	. {ShortTrackName} - Current short Trackname
	. {TotalPitTime} - Total time of pitting

4. Add on PrivMessSpb(X)Up and PrivMessSpb(X)Low
	. {SessLaps} - Number of Lap on current track and current Car for the session
	. {Laps} - Number of Lap on current track and default Car
	. {Car} - Default car, because at this time, Lapper don't know your car
	. {TotalPitTime} - Total time of pitting

5. Add on AutoMsgPrivate
	. {SessLaps} - Number of Lap on current track and current Car for the session
	. {Laps} - Number of Lap on current track and default Car
	. {Car} - Car of current player or default car if in spectate mode
	. {UserName} - Username of driver that sent message, if demo player username = demo.nickname
	. {TotalPitTime} - Total time of pitting

6. Add on PBAction, DriftPBAction,DriftLapAction, GoodDriftAction, DriftTooLowAction
	. {Laps} - Number of Lap on current track and current Car
	. {SessLaps} - Number of Lap on current track and current Car for the session
	. {Car} - Car of current player or default car if in spectate mode
	. {TotalPitTime} - Total time of pitting

5. Add in SPB type
	. {typ} 	= "Sess" if split PB of Session
				= "PB" if split PB of PB file
				= "WR" if split of WR 

6. Add identification for connecting on PubStat and retreive WR
	. Identification for connect to showplay
	 : To obtain PubStatIdk go to www.lfsworld.net, select My LFSW Setting and select tab Pubstat Access
		The better way is obtain and idk, send login and pass on net it's not safe
		PubStatIdk = 
		PubStatLogin =
		PubStatPass =

7. Add private config of Lapper for player : Shift + i
	. Type of Sector PB to be Displayed ( Relative to : Session, Saved PB or wr )
	. Display SPB or No
	
8. Add the possibility to indicate a required handicap for a player in the player HandicapUsers item

9. Add OnToLowHandicap action

10. Intercept special key to close properly insim connection 
	. CtrlC, CtrlClose, CtrlBreak, CtrlLogoff, CtrlShutdown
	
11. Add Private message "BeginPitPrivMess" when pitting

12. Add Private message "EndPitPrivMess" when pit is finished

13. Add action "OnBeginPit" when pitting

12. Add action "OnEndPit" when pit is finished

13.	Fix regression bug on command : ShowPlayerControl
				

+--------------------------+
|Changes from v4.00 to 4.10|
+--------------------------+
1. Now message with command like !help, !top, ... can be send to player in pit stop or in observation mode

2. Fix insim difference between insim3 and insim4, split infos differ

3. Add file trackInfo.cfg for splitting ( 100.5% of WR split ) action and track length . Multisplitting time action and MaxLapTime for track/car and 

4. Add the possibility to display average speed only for last split notify : {AvgSpeed}


+-------------------------+
|Changes from v3.8 to 4.00|
+-------------------------+
1. New insim compatible (X)

2. Possibility to indicate a file of player who can use action in autoaction

3. Add pattern in cfg file for splitting information ( spb )

4. Add the possibility to indicate filenane containing the list of authorized user for autoaction separate by \n

5. Add new command !near to show your position in top file with 7 racer before you and 7 after you

6. Add the possibility of indicating which are the players taking part in the qualifications. list of users or file containing users

7. Add the possibility of grouping ( one letter ) qualified according to their times. new parameters: Max Group, Max users per group, Min users in the last group

8. Add new command !topqual to show position of players taking part in the qualifications

9. Add new command !nearqual to show your position in top file with 7 racer before you and 7 after you if you taking part in the qualification 

10. Add some variables in cfg file {Posabs} {Posqual} {Groupqual} to display then in some case


+-------------------------+
|Changes from v3.6 to v3.7|
+-------------------------+
1. Some Bug fix

+-------------------------+
|Changes from v3.5 to v3.6|
+-------------------------+
1. Add splitting information and Best split PB for your session and Theorical Best PB

2. Add new command !spb to show your Split PB

3. Add new command !razspb to clean your Split PB

4. Add new command in cfg : ShowSplitPB = true or false to display split PB or No

+-------------------------+
|Changes from v3.4 to v3.5|
+-------------------------+
1. User Username instead nickname when possible for PB. Allow no duplicate value on same driver with different nickname.

+-------------------------+
|Changes from v3.3 to v3.4|
+-------------------------+

1.Bug fix: Drift scoring angle was calculated incorrectly (backward driving exploit)

2.Bug fix: rcm messages did not work when there was no schedule in script.

3.New actions for 30 and 45 seconds penalties. (only works in English language server)

+-------------------------+
|Changes from v3.2 to v3.3|
+-------------------------+

1.rcm_ply messages are also automatically deleted.

2.New flooding options (see default script for example).

3.New action that activates when player enters pits (by pits option or SHIFT+S shortcut).

4.New action that activates when player leaves race (spectates or disconnects).

5.Global variables that can be used in all actions: {ShortTime}, {LongTime}, {ShortDate}, {LongDate}, {ShortTrackName}

6.Reserved symbols can be also used in actions: ':','|' and '@'.

7.Action for repeatable drive-through penalties. (only works in English language server)

8.Action for repeatable stop-go penalties. (only works in English language server)

+-------------------------+
|Changes from v3.1 to v3.2|
+-------------------------+

1.Removed CarStateRefresh option. Now fixed to 0.1 s.

2.Every configuration option in script can consist of more lines (following lines must begin with TAB).

3.Drift score is shown after each complete drift, not every second (CarStateRefresh).

4.New action to execute on good drifting score.

5.Acceleration measurement support (see default script for example).


+-------------------------+
|Changes from v3.0 to v3.1|
+-------------------------+

1.Possibility to transfer results files to FTP server.

2.Idling action with two levels of operation.
Works only in race and qualifications now and counter is reset at race start.

3.New action that is activated after predefined number of AngleVelocity events.

4.New integrated command to show drift score and position of player - !dstats (analogue to !stats command)

+-------------------------+
|Changes from v2.9 to v3.0|
+-------------------------+

1.Added support for BF1.

2.Improved drift scoring system + new options.

3.Possibility to specify users that are allowed to execute AutoActions.

+-------------------------+
|Changes from v2.8 to v2.9|
+-------------------------+

1.Username variable added to all actions, where Nickname can be used (except split warnings).

2.OnIdleAction.

3.Experimental Drifting scoring support. Drift hotlap table and action options for drifting.

4.Changed names of variables.

+-------------------------+
|Changes from v2.7 to v2.8|
+-------------------------+

1.Bug fix for sorting in top list (mono).

+-------------------------+
|Changes from v2.6 to v2.7|
+-------------------------+

1.Bug fix for ScheduledActions, where more schedule/action pairs were present.

+-------------------------+
|Changes from v2.5 to v2.6|
+-------------------------+

1.Delayed action for race restart.

2.Scheduled actions.

3.Support for non-ascii characters.

+-------------------------+
|Changes from v2.4 to v2.5|
+-------------------------+

1.!top and !stats command do not show invalid split times.

2.More commands can be defined for AutoAction, SplitActions, PBAction and AngleVelocityAction.

3.!stats command also shows position of player for every car.

4.New option: DefaultTopCar, see sample script for description and examples.

5.New variable available to use at AutoAction command - Username. Usable in licensed servers only.

6.New option: MaxLapTime, see sample script for description and example.

7.New option: MessageTime, see sample script for description and example.

+-------------------------+
|Changes from v2.3 to v2.4|
+-------------------------+

1.More words can be specified for same action or private message.

2.Action possible when angle velocity of a car reaches specified value!

3.ShowSplitWarnings option removed. If you wish to disable option just change max times to high values.

+-------------------------+
|Changes from v2.2 to v2.3|
+-------------------------+

1. Split times are also recorded. -> Changed file format.
Warning! Old files must be converted to new format before use!

+-------------------------+
|Changes from v2.1 to v2.2|
+-------------------------+

1.Changed file format;additional line for track name;
Warning! Old files must be converted to new format before use!

2.Possibility to change PB Message.

3.Possibility to change Split warnings.

4.Use of variables in messages.

5.Every track has its own PB table. Changing tracks does not mix up results anymore.

6.Debugging option. See command line usage.
