; SokEvo configuration file.

; SokEvo loads its settings from a file called 'SETTINGS.txt'.  If
; 'SETTINGS.txt' does not exist it is created for you by renaming
; 'DEFAULTS.txt', which comes from the archive.  When downloading a
; new version, please check the 'DEFAULTS.txt' file for new settings.

; Any setting not specified will revert to the default listed for it.
; Overrides may be specified on the command line for any value using
; the format <name>=<value>, e.g. memory=64.

; CHANGES TO THIS FILE WILL NOT TAKE EFFECT UNTIL SokEvo IS RESTARTED.





; ********************************************************************
; INITIALISATION
; ********************************************************************



; The port that should be used for the web server.  Always using the
; same port number helps to ensure that two copies of the application
; cannot run at the same time, as only one will be able to become a
; server for a particular port at any given time.  Note that the
; chosen port may be accessible by other computers on the Internet,
; and any other network to which the computer is connected.
; Default: 2015

Port=2015



; Indicates if the default web browser should be launched
; automatically whenever the server process is started (yes) or only
; the first time the program runs (no).  It is expected that this be
; switched off when the auto-restart option (see below) is used, so
; that processing can continue in the background.
; Default: yes

AutoLaunch=yes



; Indicates if the evolver should automatically continue processing
; the last set when the application is started (yes) or should instead
; wait for manual instructions (no) from a web browser.  Automatically
; restarting is of particular use when the program is run as part of
; the computer's start-up sequence.  The set to continue is identified
; as the one with the most recent file modification time.
; Default: no

AutoRestart=no



; Amount of time to wait, measured in seconds, when the program is
; about to automatically restart processing of a set (see above).
; This delay is intended to give the computer a chance to finish
; starting-up and allow time to load other applications.
; Note: The web server will not respond during this initial delay.
; Default: 0

Delay=0



; Indicates if a beep/bell sound should be made when the program has
; finished initialising (see settings below).
; Default: yes

BeepNow=yes



; Controls the volume/duration of the beep/bell sound that is used by
; the computer running SokEvo to indicate when a new, best puzzle is
; found (and when the program has finished initialising, see above).
; Valid values are from 0 (off) to 100 (longest/loudest).  Note that
; no beeps occur until the active set is initially filled with puzzles
; and has none of its original templates left.
; Default: 50.
; NOTE: For MS Windows '95 and '98 the actual value specified is
;       ignored - set to 0 for no beeps, non-zero for default beep.

BeepDuration=50



; Controls the frequency of the beep/bell sound, if enabled (see
; above).  Valid values are from 0 (low) to 100 (high).
; NOTE: For MS Windows '95 and '98 the actual value specified is
;       ignored but should be non-zero if sound is required.
; Default: 50

BeepFrequency=50





; ********************************************************************
; SET-UP FORM DEFAULTS
; ********************************************************************



; The number of states that the generator may process before it should
; give up, measured in thousands of states, e.g. 10 = 10 thousand.
; Specify a blank value for no limit.  The limit allows the evolver to
; avoid wasting too much time exploring puzzles with wide, open spaces
; where boxes can be pushed into an enormous number of possible
; configurations.  If the value is set too low or too high then the
; resulting puzzles will lack complexity and the number of pushes
; required to solve them will remain low.
; Default: (unlimited)

MaxOpen=



; The number of best puzzles to retain and display as a population.
; Each new puzzle is a descendant of one of the best puzzles created
; so far.  There should be a large enough population to provide some
; diversity, but the worst puzzles in the list are chosen the least
; often so there is no need for the list to be very large.
; Default: 105.

PopulationSize=105



; The amount of memory that the generator is to use, measured in
; megabytes (MB).  When the generator is running it will access this
; amount of memory, continuously and at random.  Any attempt by the
; computer to swap the memory out to disk could cause the computer to
; become unresponsive and cause a loss of data, because the running
; generator will immediately access the memory, causing it to be
; swapped back in again.  Note that there is a security limit on this
; value - see SECURITY SETTINGS, below.
; WARNING: This value should never exceed available, physical memory!
; Default: 64 (MB).

Memory=64



; The height and width of the puzzles to be generated, excluding the
; outer wall.
; Note: For interesting results, the puzzle area should be kept
;       reasonably small, e.g. 6 by 10 or 8 by 8.  Please read the
;       documentation for further suggestions when using larger areas.
; Default: 7 rows by 11 columns

Height=7
Width=11



; The maximum number of boxes to place in each puzzle.  Specify a
; blank value for an unlimited number of boxes.
; Note: A box which doesn't move as part of a puzzle's solution is
;       effectively a wall, and is treated as such.
; Default: (unlimited)

MaxBoxes=



; Indicates if each new template puzzle should have 2 or more
; mutations (yes) or if single mutations are also made (no).  When a
; new puzzle is generated, there is a high probability of few
; mutations and a low probability of many mutations.  Enabling the
; faster rate simply means that there are guaranteed to be at least 2
; mutations for every new template puzzle.
; Default: no

FastRate=no



; Indicates if walls should be scattered at random in the initial set
; of template puzzles (yes) or if all templates initially consist of
; mainly floor cells (no).  Starting with random walls gives a
; significant head-start to the complexity of puzzles.
; Default: yes

RandomWalls=yes



; The type of target selection which may have one of 6 possible values
; as follows.
;
;    none - start with no goal cells.
;    random - scatter goals at random.
;    single - build up a single target area by ensuring that all
;             goal cells form a single group of linked cells.
;    strict - as single, except that puzzles are discarded if boxes
;             that do not move are required to form a single group of
;             goal cells.
;    single+middle - single target with goal cells fixed in the middle
;    strict+middle - strict target with goal cells fixed in the middle
;
; Default: random

Targets=random



; The type of fitness calculation to apply when deciding which puzzles
; to keep and which to discard.  This can either be based on the
; number of pushes, with the number of lines as a tie-breaker (pushes)
; or based on the number of lines, with the number of pushes as the
; tie-breaker (lines).  Selecting the former may result in longer
; solutions, but the latter might give greater complexity and result
; in many pushes in the long run anyway.
; Default: pushes

FitnessType=pushes





; ********************************************************************
; WEB PAGE SETTINGS
; ********************************************************************



; Indicates if the display page for an individual puzzle should show
; a simplified version of the puzzle by default (yes), or if it should
; show the raw version that will be used by the evolver (no).
; Default: yes

DoStrip=yes



; Indicates if the simplified version of a puzzle should fill in
; unused areas with wall cells, giving a continuous outer wall at the
; edge (yes), or if those cells should be shown as floor cells (no).
; Default: no

OuterWall=no



; Indicates if the display page for an individual puzzle should show
; the solution (yes) or hide it (no) if it is available.
; Default: yes

ShowSolution=yes



; The number of columns that the set summary page should use when
; displaying the table of best puzzles.
; Default: 15

TableColumns=15



; The length of each line to be used when showing a solution.
; Default: 78

SolutionWidth=78



; The minimum and maximum refresh rates, measured in seconds, that the
; set summary page may use to keep itself updated.  Some browsers may
; completely ignore the instruction to refresh or allow page refreshes
; to be disabled.  For example, Lynx provides a link to allow a manual
; refresh, so that people using a braille interface have time to read
; the page.  The actual time for a refresh is the time since the last
; addition (as shown on the set summary page) but it is forced to fit
; within this range.  This setting only applies to the active set.
; WARNING: If the refresh is too fast it may cause the web browser to
;          become unresponsive, or make it too difficult to control.
; Minimum default: 5
; Maximum default: 60

MinRefresh=5
MaxRefresh=60



; Indicates a graphical representation of a puzzle should be shown
; above the text representation (yes), or vice versa (no).  Having
; the text version appear first may be preferred when using a slow
; network connection.
; Default: yes

GraphicFirst=yes





; ********************************************************************
; SECURITY SETTINGS
; ********************************************************************



; Indicates if host names of clients should be resolved (yes) or not
; (no).  It may be necessary to disable look-ups to avoid long time-
; outs when a name server is unavailable - but then it will not be
; possible to authenticate hosts by name (see other settings below).
; Default: yes

ResolveHosts=yes



; A list of host names and/or IP addresses, separated by spaces, that
; have full control over the evolver - including the deletion of
; files - without having to enter a user name or password.
; WARNING: This list should only be used to list fully-trusted hosts.
;          Where trust is an issue, please ensure that a user name and
;          password are used instead of listing a host here.
; Default: localhost 127.0.0.1

AdminHosts=localhost 127.0.0.1



; A list of host names and/or IP addresses, separated by spaces, that
; are allowed to connect to the web server.
;
; > If this list is blank, any host may connect provided that it is
;   not denied access explicitly (see below) - this should only be
;   done if a password file is being used.  Note that not giving a
;   value is NOT the same as setting it to blank, as it has a default.
; > Otherwise, only the hosts listed here, and as administrator hosts
;   (above), may connect.
;
; By default, these hosts are only allowed to view the evolver state.
; If an attempt is made to control the evolver then the host will
; either:
;
; (a) be allowed as an administrator host (see above),
; (b) be prompted for a user name and password if one is defined,
; (c) be forbidden.
;
; Default: localhost 127.0.0.1

AllowHosts=localhost 127.0.0.1



; A list of host names and/or IP addresses, separated by spaces, that
; are explicitly forbidden from any access to the web server.  These
; hosts will be denied access even if they are present in the list of
; allowed hosts and/or the list of administrator hosts.
; Default: (empty list)

DenyHosts=



; The maximum amount of memory that the generator may use, measured in
; megabytes.  This should always be set to the maximum amount of
; physical memory that the computer is expected to have available, to
; prevent accidental use or unauthorised attempts to exceed the amount
; of physical memory - which could cause a serious loss of performance
; and a loss of data.
; Default: 512 (MB)

MaxMemory=512



; Enables use of the basic authentication scheme (yes) or disables it
; (no).  By default, SokEvo only allows the use of digest access
; authentication which is considerably more secure.  The basic scheme
; essentially passes the password as plain text across the network,
; which may allow it to be easily intercepted.  However, some web
; browsers - such as Lynx - do not support the digest scheme.  If this
; option is enabled, then both schemes will be available.
; Note: The user name and password are held in the PASSWORD.txt file.
;       See the documentation for more information.
; Default: no

EnableBasic=no



; The number of minutes for which an authentication key is valid when
; a password is being used.  Setting this to a low value will provide
; greater security, but results in requests having to be re-sent more
; often.  If a zero (0) value is given, all keys issued will be
; single-use (i.e. they expire as soon they are first used) and have
; a short life-time of 1 minute.
; Default: 5

KeyExpiry=5



; The maximum number of connections to the web server that are allowed
; at any one time.  Note that this includes multiple connections from
; one web browser which may, for example, be trying to download
; several images at the same time.  If a password is in use, this also
; limits the number of active authentication keys.
; Default: 15

MaxConnections=15



; Time between auto-saves, in minutes.  This is primarily used to
; avoid significant data loss as a result of a power-cut or brown-out.
; The entire snapshot file is saved each time, so a reasonable delay
; should be specified.  The saving process will NOT result in a
; corrupt file if only part of the new data could be written, instead
; the original file will remain effective where applicable.
; Note: The current state is automatically saved whenever a new, best
;       puzzle has been found, and as the program exits normally.
; Default: 15 (minutes).

SaveTime=15





; ********************************************************************
; SERVER LOG SETTINGS
; ********************************************************************



; The server always writes serious run-time errors to a file called
; stderr.txt.  If required, additional messages can be selected to be
; written to a file called stdout.txt, as follows.
; Note: Only the request and response lines will be logged, not the
;       entire set of headers associated with them.



; Log both successful actions and errors (yes) or only log hosts and
; responses when an error occurs (no).  An error may be a failed
; operation or an authentication failure.
; Note: This has no effect on the logging of requests.
; Default: no

LogAll=no



; If yes, log connections and, where available, host names.
; Default: yes

LogHosts=yes



; If yes, log incoming client requests.
; Default: no

LogRequests=no



; If yes, log outgoing server response codes and messages.
; Default: no

LogResponses=no





; ********************************************************************
; DIRECTORY SETTINGS
; ********************************************************************



; The name of the directory that is used to hold snapshots of evolver
; states.  No other files should be placed in this directory.
; Note: This directory will be created automatically if it does not
;       already exist, provided that the parent directory does exist.
; Default: Snapshots

SnapshotDir=Snapshots



; The name of the directory that is used to hold the ancestral
; histories for each puzzle in each set.  Set this to a blank value
; if no history is required.
; Note: This directory will be created automatically if it does not
;       already exist, provided that the parent directory does exist.
; Default: History

HistoryDir=History



; The name of the directory that contains files to be publicly shared.
; The files provided in this directory are required for SokEvo to
; operate correctly.
; Default: Public

PublicDir=Public



; The name of the directory that contains template pages used to
; control the evolver and present information about its current state.
; These files contain special 'tokens', surrounded by at ('@') symbols
; which indicate where substitutions are to take place.  The files in
; this directory are also required for SokEvo to operate correctly.
; Default: Public/HTML-Templates

HTMLDir=Public/HTML-Templates



; The name of the directory that contains 'template' puzzles which can
; be used to seed the evolver when it starts.
; Note: This directory will be created automatically if it does not
;       already exist, provided that the parent directory does exist.
; Default: Templates

TemplateDir=Templates



; The name of the directory that is used to hold snapshots of evolver
; states.  No other files should be placed in this directory.
; Note: This directory will be created automatically if it does not
;       already exist, provided that the parent directory does exist.
; Default: Snapshots

SnapshotDir=Snapshots





; ********************************************************************
; END OF CONFIGURATION FILE
; ********************************************************************

