Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Ceres neue Leela Engine auf C#-Grundlage
1 2 Previous Next  
- - By Lothar Jung Date 2020-12-31 17:13 Edited 2020-12-31 17:32
Heute hat auf Discord eine neue Engine für Lc0-Netze für Aufregung gesorgt: Ceres.

Hier die Einzelheiten auf github: https://github.com/dje-dev/Ceres

Die neue Engine ist schneller als LC0 26.3 und schneidet in Benchmarks auf unterschiedlich großen Lc0-Netzen deutlich besser ab.

Hier ein Test:

```
Match of LC0 vs. Ceres (a new MCTS engine leveraging the LC0 backend)
LC0 version: lc0-v0.26.3, backend=cuda-fp16
LC0 options: 703810 with nncache=5000000, deumux backend (2 GPUs)
Ceres version: 0.8
Ceres options: default (also with 703810)
Hardware: dual Intel 6142 CPU with 2 A100 GPU
Time control: 120s+0.5s
Book: TCEC19
Tablebases: Syzygy 5+6 man
Adjudication: tablebases or 4 consecutive play both 350cp
Software: Ceres integrated tournament manager
Comment: These first published results for Ceres require independent community verification.
Comment: The realized NPS ratio of Ceres vs LC0 was 2.3 in this test.
Comment: Ceres strength is massively exaggerated in this unrealistic combination of small nets and big hardware.
Comment: Ceres will be released under GPL3 on Github on Dec 31, 2020 (today).

   # PLAYER    :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 Ceres1    :     0.0   ----    67.5     102    66     100   33   69    0    68
   2 LC0_0     :  -128.6   38.4    34.5     102    34     ---    0   69   33    68

White advantage = 107.97 +/- 20.04
```

Besonders die Skalierung auf starker Hardware (A100) ist beeindruckend:

https://github.com/dje-dev/Ceres/blob/main/PerfScaling.png

Hier ein Benchmark auf 1 GPU (vgl. RTX 3090):

https://github.com/dje-dev/Ceres/blob/main/PerfTime1GPU.png

Ich hoffe bei wenigstens Einigen Interesse geweckt zu haben.

Lothar
Parent - - By Hauke Lutz Date 2020-12-31 18:09
Hallo Lothar,

ein schnelles LC0 klingt echt gut.
Gibt es schon einen Download-Link?

Gruß
Hauke
Parent - - By Lothar Jung Date 2020-12-31 18:37 Upvotes 1
Hallo Hauke,

noch nicht, aber eine Lc0.dll.

Es wird alles noch heiß diskutiert auf Discord Lc0 Test-discuss.

Lc0 wurde mit C++ und Python entwickelt.
C# hat eine eigene NN-Entwicklungsumgebung.

Noch fortschrittlicher wäre Julia.

2021 wird wohl für Leela spannend, besonders bei einer verbesserten und differenzierten Suche.

Lothar
Parent - By Lothar Jung Date 2021-01-01 09:24 Edited 2021-01-01 09:30
Hier ein aktueller Test auf Discord:

SSS but still
30b net 66938
1600 npm```
# PLAYER   :  RATING  ERROR  POINTS  PLAYED   (%)    W    D    L  D(%)  CFS(%)
1 ceres    :           0   ----    60.0     100  60.0   22   76    2  76.0     100
2 Lc0-v26.3:     -72     32    40.0     100  40.0    2   76   22  76.0     ---```

Hier läuft gerade Ceres/Lc0 26.3 auf Twitch:
Testing Ceres v Lc0 (Both 66740)
<https://www.twitch.tv/navratil25>

Lothar
Parent - - By Lothar Jung Date 2021-01-01 12:32 Edited 2021-01-01 12:38
In diesem Blog sind die Erweiterungen bei der Zugauswahl und Suche von Ceres aufgeführt:

https://www.themissingdocs.net/?p=874

Lothar
Parent - - By Lothar Jung Date 2021-01-02 09:10
Hier eine Anleitung zur Generierung von Ceres:

A very short summary of bullet-points of the quickest way to get going with ceres on  a win 10 box (have only tried on Intel cpu)

• Download Lc0 26.3

• Download .Net 5.0 & install
https://dotnet.microsoft.com/download/dotnet/thank-you/runtime-desktop-5.0.1-windows-x64-installer

• download Cuda 11.2 from
https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64 and install.. ensure path and CUDA_PATH point to the 11.2 directory.

• get the boxed version of ceres and put it in the 26.3 lc0 directory
https://www.chadhosting.xyz/programs/Ceres_boxed.exe

• get the ceres.json file place in the same directory 26.3 directory
https://cdn.discordapp.com/attachments/427066771627966466/794298546199068692/Ceres.json

• download lc0.dll (non mkl version)
https://cdn.discordapp.com/attachments/427066771627966466/794291040983056414/lc0.dll

• create a sub-directory to where you placed the ceres_boxed.exe named /runtimes/win-x64/native place the lc0.dll in the "native" directory

• Start ceres_boxed.exe and run go nodes 10 uci command to check.

Lothar
Parent - By Jörg Oster Date 2021-01-02 09:50 Upvotes 2
So einfach ist das? 

Spaß beiseite, das Projekt befindet sich ja noch in einer sehr frühen Entwicklungsphase.
Von daher würde ich einfach mal abwarten, da kommt in den nächsten Wochen bestimmt auch noch was anwenderfreundlicheres.
Parent - - By Peter Martan Date 2021-01-02 09:53
Danke, Lothar, ich schließe mich Jörgs Hoffnung an.

Was ich auch immer noch nicht verstehe, warum das "über LC0" läuft und dann viel schneller ist, aber wie gesagt, mal abwarten.
Parent - - By Lothar Jung Date 2021-01-02 11:02 Upvotes 1
Hallo Jörg und Peter,

das sehe ich auch so, ich wollte nur informieren.

Ein Compile von Ceres ist vom Entwickler noch nicht freigegeben.
Die „Beta-Version“ wird auf Discord aber schon fleißig getestet.

Wie ich das sehe gibt es zwei Linien:

1. Verbesserung von Ceres durch die Entwickler von Lc0.

2. Einbeziehung von Ideen und Algorithmen von Ceres in die kommende Lc0-Version.

Lothar
Parent - - By Hauke Lutz Date 2021-01-02 11:35
Hallo Lothar,

danke für die Infos.
Ich habe es gemacht, aber ich kriege es noch nicht hin ein bestimmtes WeightsFile zu laden.
Bisschen gucken werde ich noch, aber ich denke ich werde ebenfalls warten müssen bis etwas ausgereifteres erscheint.

Gruß
Hauke
Parent - - By Michael Hoeppenstein Date 2021-01-02 12:24
Die WeightsFile musst du in die .json Datei eintragen (Texteditor).
z.B. so...
Code:
"DefaultNetworkSpecString": "LC0:66740",
Parent - - By Hauke Lutz Date 2021-01-02 13:15
Danke, mit "Lc0:" klappt es natürlich
Parent - - By Lothar Jung Date 2021-01-03 13:11
Hallo Hauke,

jetzt läufst.
Wie kann man die Pfadangaben für die Engine (Path/weights/LC0:) über eine Datei einpflegen?

Lothar
Parent - - By Hauke Lutz Date 2021-01-03 14:19
Hallo Lothar,

genau, vergleich Michaels Beispiel die "66740" in das gewünschte File ändern.

Gruß
Hauke

Michael Hoeppenstein schrieb:

Die WeightsFile musst du in die .json Datei eintragen (Texteditor).
z.B. so...
Code:
"DefaultNetworkSpecString": "LC0:66740",

Parent - - By Lothar Jung Date 2021-01-03 17:46
Hallo Hauke,

hab ich gemacht und klappt.

Wenn ich "go nodes 10 ", kommen blitzschnell Meldungen und das Programm wird beendet.

Ich habe 3 GPUs. Was soll ich in bei GPU eintragen?

Lothar
Parent - - By Hauke Lutz Date 2021-01-03 18:19
Hallo Lothar,

das kann ich leider nicht sagen, weil ich nur eine GPU habe.
Bisher sehe habe ich noch keine Einstellung mit mehrere GPUs gesehen.

Hauke
Parent - - By Lothar Jung Date 2021-01-03 21:18
Hallo Hauke,

hier die Lösung:

Which syntax is correct for two GPU's

"gpu:0,1", or "GPU:0,1"

Lothar
Parent - - By Hauke Lutz Date 2021-01-03 21:39 Upvotes 1
Hallo Lothar,

danke für die Rückmeldung.
Das ist gut zu wissen, wenn die Preise fallen denke ich über ein Upgrade nach.

Viel Spaß mit den GPUs!

Hauke
Parent - - By Lothar Jung Date 2021-01-04 13:14 Upvotes 1
Hallo Hauke,

hier ein neuer Test auf Discord:

Lc0 - Stockfish +2=28-5
-30 elo(continues)
Ceres - Stockfish  +10=87-3
+24 elo
Ceres looks much better against stockfish under the same conditions on my pc. (3070-2700x). Leela makes unnecessary simple mistakes.

If we get a match between Leela and Ceres, the result is very close.  So I think it's unnecessary to play with each other, there should be more tests against Stockfish.  Whoever is better against Stockfish must either continue with it or be integrated into leela.  Right now Ceres is definitely better.  If Ceres can beat the stockfish in blitz games, he can also defeat it under TCEC conditions.

Lothar
Parent - - By Volker Göbel Date 2021-01-04 14:01
Hallo, bisher hab ich auf dem Server noch keinen gesehen, mit Ceres.
Und bei mir will er auch nicht laufen.
Scheint nicht so einfach zu sein, sonst wären sicher schon welche im Maschinenraum unterwegs mit Ceres.
Parent - - By Lothar Jung Date 2021-01-04 15:23
Hallo Volker,

ja, das ist so.
Bei mir läuft es auch nicht, obwohl die Engine startet.
Ich warte noch.
Ceres hat einen Testschub bei den Entwicklern ausgelöst.
Bei der Endrunde bei TCEC wird man entweder Ceres oder eine (stark) modifizierte und verbesserte Lc0 0.27 sehen.

Es tut sich viel Gutes bei Leela.

Lothar
Parent - - By Volker Göbel Date 2021-01-04 15:37 Upvotes 1
Hallo Lothar,

hört sich gut an!
Danke für die Info.

Volker
Parent - By Hauke Lutz Date 2021-01-04 23:46
Der Effekt von Ceres ist wirklich unglaublich.
Auch von mir vielen Dank für die neuen Infos.
Parent - By Lothar Jung Date 2021-01-05 13:50
Hallo Leela Liebhaber!

Hier ist ein Link auf ein Tool um den Suchbaum von Leela sichtbar zu machen:

https://github.com/jkormu/Leela-chess-Tree

Lothar
Parent - - By Lothar Jung Date 2021-01-02 12:57
Hallo Hauke, hallo Michael,

könntet ihr einen Link zum Download hier posten?

Lothar
Parent - - By Hauke Lutz Date 2021-01-02 13:17
Ich habe ausschließlich deine Links verwendet.
Parent - - By Damir Desevac Date 2021-01-02 19:10 Upvotes 1
Ceres.zip: https://www.swisstransfer.com/d/22e844cc-465a-4607-96f0-a7503fadb357

Die datei ist 130 MB gross. Das Link wird nach einen Monat entfernt worden
Parent - - By Thomas Lagershausen Date 2021-01-02 22:03
Danke, geht aber leider bei mir nicht.

Ich bekomme leider die Meldung das es keine Konfigurationsdatei gibt.

Habe als OS Windows7 64bit.

Schade.
Parent - By Lothar Jung Date 2021-01-02 22:15 Upvotes 1
Hallo Thomas,

ich bekomme es auch nicht zum laufen.
Ich glaube, man muss die Dateien in den Links herunterladen, damit es eingebunden wird.

Morgen ist auch noch ein Tag.

Lothar
Parent - - By Robert Söhnlein Date 2021-02-13 16:47
Thomas Lagershausen schrieb:

Danke, geht aber leider bei mir nicht.

Ich bekomme leider die Meldung das es keine Konfigurationsdatei gibt.

Habe als OS Windows7 64bit.

Schade.


Ich hab auch win 7 und bei mir geht es nun man musste etwas Umprogrammieren könnte dir meine Version senden
Parent - - By Lothar Jung Date 2021-02-13 17:03 Edited 2021-02-13 17:06
Hallo Robert,

was musstest Du umprogrammieren?
Ohne json.Datei läuft nichts.
Ich habe Windows 10 und ich kann Ceres starten, aber es müssen noch die Pfade in der Json-Datei gesetzt werden.

Die jetzige Version soll bei längerer Bedenkzeit abstürzen.
Heute soll noch eine neue Version 0.88 kommen.

Lothar
Parent - - By Robert Söhnlein Date 2021-02-13 17:06 Edited 2021-02-13 17:09
Lothar Jung schrieb:

Hallo Robert,

was musstest Du umprogrammieren?
Ohne json.Datei läuft nichts.
Ich habe Windows 10 und ich kann Ceres starten, aber es müssen noch die Pfade in der Json-Datei gesetzt werden.

Die jetzige Version soll bei längerer Bedenkzeit abstürzen.
Heute soll noch eine neue Version kommen.

Lothar

es musste was extra für das ceres umprogrammiert werden da ich nur win 7 hab
was genau kann ich dir nicht sagen da ich selber es nicht machen konnte
Nun bin ich am schauen wie diese .json am besten zu bearbeiten ist evtl kannst du mir mal deine config.json senden ?
Wegen tablebases und evtl andere parametereinstellungen die ceres benutzen soll .
Parent - - By Lothar Jung Date 2021-02-13 17:10
Hier ist die Rohfassung:

{
  "DirLC0Binaries": ".",
  "DirLC0Networks": ".",
  "DirEPD": ".",
  "DirPGN": ".",
  "DirCeresOutput": ".",
  "DirExternalEngines": ".",
  "DirTablebases": "",
  "DefaultNetworkSpecString": "LC0:703810",
  "DefaultDeviceSpecString": "GPU:0",
  "URLLC0Networks": "http://training.lczero.org/networks",
  "LaunchMonitor": false,
  "LogInfo": false,
  "LogWarn": false
}
Parent - By Robert Söhnlein Date 2021-02-13 17:17
Lothar Jung schrieb:

Hier ist die Rohfassung:


die hab ich auch aber ich benötige eine .json um die comandos richtig reinzuschreiben damit ceres auch läuft
als vergleich bzw vorlage .-)

so ungefär wie das hier -->
"DirLC0Binaries": "C:\\Users\\test\\Documents\\InfinityChess\\Data\\Engines\\ceres test\\cuda_v11.2",
  "DirLC0Networks": "C:\\Users\\test\\Documents\\InfinityChess\\Data\\Engines\\ceres test",
  "DirEPD": ".",
  "DirPGN": ".",
  "DirCeresOutput": ".",
  "DirExternalEngines": ".",
  "DefaultNetworkSpecString": "J94-100",
  "DefaultDeviceSpecString": "GPU:0,1",
  "URLLC0Networks": "http://training.lczero.org/networks",
  "DebugAllowed": false,
  "LaunchMonitor": false,
  "LogInfo": false,
  "LogWarn": false,
  "LogFile": null,
  "VerboseMoveStats": false,
  "SmartPruningFactor": null,
  "CPUCT": null,
  "CPUCTAtRoot": null,
  "CPUCTBase": null,
  "CPUCTBaseAtRoot": null,
  "CPUCTFactor": null,
  "CPUCTFactorAtRoot": null,
  "PolicyTemperature": null,
  "TablebaseDirectory": null,
  "DirTablebases": "E:\\tbs;E:\\7 man",
  "SyzygyPath": "E:\\tbs;E:\\7 man"
Parent - - By Lothar Jung Date 2021-02-13 17:31 Edited 2021-02-13 17:37
Hier der Beitrag von S. Pohl:

{
  "DirLC0Binaries": ".",
  "DirLC0Networks": "C:\Cutechess\Engines\Ceres\lc0_dev",
  "DirEPD": ".",
  "DirPGN": ".",
  "DirCeresOutput": ".",
  "DirExternalEngines": ".",
  "DirTablebases": "",
  "DefaultNetworkSpecString": "LC0:66680",
  "DefaultDeviceSpecString": "GPU:0",
  "URLLC0Networks": "http://training.lczero.org/networks",
  "DebugAllowed": false,
  "LaunchMonitor": false,
  "LogInfo": false,
  "LogWarn": false
}

Line "DirLC0Networks" must contain the full path to the net. And DefaultNetworkSpecString is the name. BUT the netfile name on my HDD is (in this example) 66680.pb.gz (!!!) But the extension (.pb.gz) must not be written here. And "LC0:" must be added. Strange. But works.
Parent - - By Robert Söhnlein Date 2021-02-13 17:59
Lothar Jung schrieb:

Hier der Beitrag von S. Pohl:

{
  "DirLC0Binaries": ".",
  "DirLC0Networks": "C:\Cutechess\Engines\Ceres\lc0_dev",
  "DirEPD": ".",
  "DirPGN": ".",
  "DirCeresOutput": ".",
  "DirExternalEngines": ".",
  "DirTablebases": "",
  "DefaultNetworkSpecString": "LC0:66680",
  "DefaultDeviceSpecString": "GPU:0",
  "URLLC0Networks": "<a class='ura' href='http://training.lczero.org/networks'>http://training.lczero.org/networks</a>",
  "DebugAllowed": false,
  "LaunchMonitor": false,
  "LogInfo": false,
  "LogWarn": false
}

Line "DirLC0Networks" must contain the full path to the net. And DefaultNetworkSpecString is the name. BUT the netfile name on my HDD is (in this example) 66680.pb.gz (!!!) But the extension (.pb.gz) must not be written here. And "LC0:" must be added. Strange. But works.


Danke dir sollte mir weiter helfen
Parent - - By Lothar Jung Date 2021-02-13 18:59
Robert,

wir schaffen Ceres!



Lothar
Parent - - By Damir Desevac Date 2021-02-13 19:43
Lothar Jung schrieb:

Robert,

wir schaffen Ceres!



Lothar


https://github.com/dje-dev/Ceres/releases/tag/v0.88
Parent - By Lothar Jung Date 2021-02-13 19:50 Edited 2021-02-13 19:53
Danke Damir,

für den Link!

Wir schaffen, Ceres zu testen, vor allem gegen FF2!

Innovation gegen Plagiate.

https://discord.com/channels/425419482568196106/425419483016855563/810213105770299392

LG

Lothar
Parent - - By Lothar Jung Date 2021-02-15 09:30
Hallo Robert,

hast Du Ceres 0.88 zum Laufen gebracht?

Gruß

Lothar
Parent - - By Robert Söhnlein Date 2021-02-15 09:48
Lothar Jung schrieb:

Hallo Robert,

hast Du Ceres 0.88 zum Laufen gebracht?

Gruß

Lothar


ja läuft bei mir brauchst du hilfe ?

Wenn ja könnte ich dir via teamviewer oder anydesk helfen
Parent - By Lothar Jung Date 2021-02-15 10:21
Ja, gerne Robert,

könntest Du mir als private Nachricht Deine Telefonnummer übermitteln und mir sagen, wann ich Dich heute Nachmittag anrufen könnte.

LG

Lothar
Parent - - By Daniel Reist Date 2021-01-06 00:49 Edited 2021-01-06 01:42
Wichtig ist , dass ihr Cuda 11.2 habt und alle Dateien von LC0 26.3. im Ceres Ordner
und dazu noch eine spezielle LC0.dll

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board


Das ist meine erste Gewinnpartie von Ceres gegen Stockfisch.
Viel Spass damit.
Parent - - By Lothar Jung Date 2021-01-06 11:53
Hallo Daniel,

könntest Du mir bitte die Dateien des Ordnerinhalts posten?
Wo finde ich die spezielle Lc0.dll?
CUDA 11.2 habe ich installiert.

Vielen Dank

Lothar
Parent - By Rainer Maikowski Date 2021-01-06 12:28
...und wo wird eingetragen, dass sich Lc0 26.3 mit Ceres verbindet? Welches ist wo die Startengine?
R.Maikowski
Parent - - By Daniel Reist Date 2021-01-06 21:51 Edited 2021-01-06 21:54
Hallo Lothar

Hier die Links:
https://cdn.discordapp.com/attachments/427066771627966466/796093632066486302/lc0.dll

https://cdn.discordapp.com/attachments/427066771627966466/796466137172410408/Ceres.7z

https://cdn.discordapp.com/attachments/427066771627966466/796093635120594974/cudart64_110.dll

und hier wie die Jason datei aussieht:

mine looks like this and works
{
  "DirLC0Binaries": "C:\Users\Jason\Desktop\Leelenstein 15",
  "DirLC0Networks": "C:\Users\Jason\Desktop\Leelenstein 15",
  "DirEPD": ".",
  "DirPGN": ".",
  "DirCeresOutput": ".",
  "DirExternalEngines": ".",
  "DirTablebases": "C:\syzygy",
  "DefaultNetworkSpecString": "LC0:20x256SE-jj-9-75000000",
  "DefaultDeviceSpecString": "GPU:0",
  "URLLC0Networks": "http://training.lczero.org/networks",
  "LaunchMonitor": false,
  "LogInfo": false,
  "LogWarn": false
}

https://cdn.discordapp.com/attachments/427066771627966466/795495705149833226/cudart64_110.dll

Ich habe einen Ordner mit dem Namen: Ceres.
Dort hat es alle Files drin von den Links
Auch die Lc0 Exe und die Files von LC0 sind dort.
Auch das Netfile oder Weightfile.pb ist dort
Dazu gibt es einen Unterordner der heisst: ref
Und einen Unterordner: runtimes
Parent - By Lothar Jung Date 2021-01-06 22:00
Herzlichen Dank Daniel,

jetzt ist mir vieles klar!!

Gerade wurde bei Discord eine neue Version von Ceres gepostet:

Okay for those, that cannot use Ceres in a GUI, one bug causes that, Ceres Wants to take a lot of memory on the command go infinite and than runs out of memory, this binary has a temporary fix, but maybe worse for Engine vs Engine as it makes it starting slower, but atleast it works now

Lothar
Parent - - By Lothar Jung Date 2021-01-07 20:33
Hier ein neuer Test auf Discord mit guter Hardware (RTX 3080) und TC 60sec. + 1:

**Match:** Ceres.J94-100 v. Lc0.J94-100
**Lc0 version:** v0.26.3
**Lc0 options:** default
**Ceres version:** v0.8, packaged by Redshift
**Ceres options:** default
**Hardware:** i7-4770 & RTX 3080
**Time control:** 60+1
**Book:** TCEC19_NoomenSelect.pgn, sequential/reversed
**Tablebases:** 5 piece syzygy
**Software:** Cutechess
**Adjudication:** After move 30 draw 4 moves <10cp, resign 4 moves 400cp or via tablebases
**Comments:** Similar length games this time with TC as my previous test with fixed 2s/move
**Comments:** Higher draw rate but otherwise identical result
**Comments:** Ceres did seem to usually end up with 10-15s more unused time at the end of game compared to Lc0

```   # PLAYER           :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
   1 ceres.J94-100    :       0     15    54.0     100  54.0      97   16   76    8  76.0
   2 lc0.J94-100      :     -30     15    46.0     100  46.0     ---    8   76   16  76.0

White advantage = 86.40 +/- 16.11
Draw rate (equal opponents) = 99.93 % +/- 0.63```

Gute Aussichten!

Lothar
Parent - - By Peter Martan Date 2021-01-09 07:30 Edited 2021-01-09 07:34
Lothar Jung schrieb:

Gute Aussichten!

Weniger gut bei Stefan Pohl:

https://www.sp-cc.de/nn-vs-sf-testing.htm

Zitat:
Latest update: 2020/01/08: Ceres 0.80 66680 net. Good news: Ceres played all 500 games without any problems (no timelosses, crashes). Bad news: Ceres is clearly weaker (Score: 65.0%) than Lc0 (Score: 70.9%) with the same huge 30x384 net. Next testrun: Ceres 0.80 with small J104.1-30 net


Aus den 100 Elo Plus, die auf CCC propagiert wurden, sind jetzt unter Stefans Bedingungen erstmal  minus 47 geworden, aber das Projekt steckt ja wohl auch noch etwas in den Kinderschuhen.
Up Topic Hauptforen / CSS-Forum / Ceres neue Leela Engine auf C#-Grundlage
1 2 Previous Next  

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill